From e2944f2120b860640fc2962d4043db9b42380f37 Mon Sep 17 00:00:00 2001 From: prr <3099672575@qq.com> Date: Mon, 4 Nov 2024 17:16:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=96=87=E4=BB=B6=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E5=8A=A0=E5=AF=86bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components.d.ts | 153 ------------------ frontend/src/components/builtin/FileList.vue | 4 +- frontend/src/components/builtin/FileProps.vue | 1 + .../src/components/chat/ChatUserSetting.vue | 98 +++++++---- frontend/src/components/computer/Computer.vue | 11 +- frontend/src/components/oa/ShareFiles.vue | 9 +- frontend/src/hook/useComputer.ts | 38 ++++- frontend/src/stores/file.ts | 36 +++++ frontend/src/system/core/FileOs.ts | 31 ++-- frontend/src/system/core/FileSystem.ts | 1 + 10 files changed, 176 insertions(+), 206 deletions(-) create mode 100644 frontend/src/stores/file.ts diff --git a/frontend/components.d.ts b/frontend/components.d.ts index fc576b9..e69de29 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -1,153 +0,0 @@ -/* eslint-disable */ -// @ts-nocheck -// Generated by unplugin-vue-components -// Read more: https://github.com/vuejs/core/pull/3399 -export {} - -/* prettier-ignore */ -declare module 'vue' { - export interface GlobalComponents { - Ad: typeof import('./src/components/desktop/Ad.vue')['default'] - AddApp: typeof import('./src/components/store/AddApp.vue')['default'] - AppIcon: typeof import('./src/components/taskbar/AppIcon.vue')['default'] - AppIconGroup: typeof import('./src/components/taskbar/AppIconGroup.vue')['default'] - AppItem: typeof import('./src/components/store/AppItem.vue')['default'] - Battery: typeof import('./src/components/taskbar/Battery.vue')['default'] - BatteryPop: typeof import('./src/components/taskbar/BatteryPop.vue')['default'] - Browser: typeof import('./src/components/builtin/Browser.vue')['default'] - Calendar: typeof import('./src/components/builtin/Calendar.vue')['default'] - Chat: typeof import('./src/components/chat/Chat.vue')['default'] - ChatBox: typeof import('./src/components/chat/ChatBox.vue')['default'] - ChatContent: typeof import('./src/components/localchat/ChatContent.vue')['default'] - ChatDomain: typeof import('./src/components/localchat/ChatDomain.vue')['default'] - ChatEditor: typeof import('./src/components/localchat/ChatEditor.vue')['default'] - ChatFoot: typeof import('./src/components/localchat/ChatFoot.vue')['default'] - ChatMenu: typeof import('./src/components/chat/ChatMenu.vue')['default'] - ChatMessage: typeof import('./src/components/chat/ChatMessage.vue')['default'] - ChatMsgList: typeof import('./src/components/chat/ChatMsgList.vue')['default'] - ChatNav: typeof import('./src/components/localchat/ChatNav.vue')['default'] - ChatUserInfo: typeof import('./src/components/chat/chatUserInfo.vue')['default'] - ChatUserList: typeof import('./src/components/chat/ChatUserList.vue')['default'] - ChatUserSetting: typeof import('./src/components/chat/ChatUserSetting.vue')['default'] - ChatWorkList: typeof import('./src/components/chat/ChatWorkList.vue')['default'] - CloseButton: typeof import('./src/components/ui/CloseButton.vue')['default'] - CloseDesktop: typeof import('./src/components/desktop/CloseDesktop.vue')['default'] - ColorPicker: typeof import('./src/components/setting/ColorPicker.vue')['default'] - Computer: typeof import('./src/components/computer/Computer.vue')['default'] - ComputerNavBar: typeof import('./src/components/computer/ComputerNavBar.vue')['default'] - ContextMenu: typeof import('./src/components/builtin/ContextMenu.vue')['default'] - CreateUrl: typeof import('./src/components/builtin/CreateUrl.vue')['default'] - CustomIcon: typeof import('./src/components/taskbar/CustomIcon.vue')['default'] - DateNote: typeof import('./src/components/builtin/DateNote.vue')['default'] - DateTime: typeof import('./src/components/taskbar/DateTime.vue')['default'] - DateTimePop: typeof import('./src/components/taskbar/DateTimePop.vue')['default'] - DeskItem: typeof import('./src/components/desktop/DeskItem.vue')['default'] - Desktop: typeof import('./src/components/desktop/Desktop.vue')['default'] - DesktopBackground: typeof import('./src/components/desktop/DesktopBackground.vue')['default'] - DialogProcess: typeof import('./src/components/window/DialogProcess.vue')['default'] - DialogTemp: typeof import('./src/components/window/DialogTemp.vue')['default'] - EditFileName: typeof import('./src/components/builtin/EditFileName.vue')['default'] - EditType: typeof import('./src/components/builtin/EditType.vue')['default'] - ElAside: typeof import('element-plus/es')['ElAside'] - ElAvatar: typeof import('element-plus/es')['ElAvatar'] - ElButton: typeof import('element-plus/es')['ElButton'] - ElCard: typeof import('element-plus/es')['ElCard'] - ElCarousel: typeof import('element-plus/es')['ElCarousel'] - ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem'] - ElCol: typeof import('element-plus/es')['ElCol'] - ElContainer: typeof import('element-plus/es')['ElContainer'] - ElDialog: typeof import('element-plus/es')['ElDialog'] - ElDrawer: typeof import('element-plus/es')['ElDrawer'] - ElFooter: typeof import('element-plus/es')['ElFooter'] - ElForm: typeof import('element-plus/es')['ElForm'] - ElFormItem: typeof import('element-plus/es')['ElFormItem'] - ElHeader: typeof import('element-plus/es')['ElHeader'] - ElIcon: typeof import('element-plus/es')['ElIcon'] - ElInput: typeof import('element-plus/es')['ElInput'] - ElMain: typeof import('element-plus/es')['ElMain'] - ElMenu: typeof import('element-plus/es')['ElMenu'] - ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] - ElPagination: typeof import('element-plus/es')['ElPagination'] - ElProgress: typeof import('element-plus/es')['ElProgress'] - ElRow: typeof import('element-plus/es')['ElRow'] - ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] - ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ElTransfer: typeof import('element-plus/es')['ElTransfer'] - ElTree: typeof import('element-plus/es')['ElTree'] - Error: typeof import('./src/components/taskbar/Error.vue')['default'] - FileIcon: typeof import('./src/components/builtin/FileIcon.vue')['default'] - FileIconImg: typeof import('./src/components/builtin/FileIconImg.vue')['default'] - FileIconIs: typeof import('./src/components/builtin/FileIconIs.vue')['default'] - FileList: typeof import('./src/components/builtin/FileList.vue')['default'] - FileProps: typeof import('./src/components/builtin/FileProps.vue')['default'] - FileTree: typeof import('./src/components/builtin/FileTree.vue')['default'] - FileViewer: typeof import('./src/components/builtin/FileViewer.vue')['default'] - IframeFile: typeof import('./src/components/window/IframeFile.vue')['default'] - ImageViewer: typeof import('./src/components/builtin/ImageViewer.vue')['default'] - Install: typeof import('./src/components/install/Install.vue')['default'] - InstallCompony: typeof import('./src/components/install/InstallCompony.vue')['default'] - InstallMember: typeof import('./src/components/install/InstallMember.vue')['default'] - InstallPerson: typeof import('./src/components/install/InstallPerson.vue')['default'] - LocalChat: typeof import('./src/components/localchat/LocalChat.vue')['default'] - LockDesktop: typeof import('./src/components/desktop/LockDesktop.vue')['default'] - Magnet: typeof import('./src/components/taskbar/Magnet.vue')['default'] - MarkDown: typeof import('./src/components/builtin/MarkDown.vue')['default'] - MenuBar: typeof import('./src/components/window/MenuBar.vue')['default'] - MenuList: typeof import('./src/components/taskbar/MenuList.vue')['default'] - MessageCenterPop: typeof import('./src/components/taskbar/MessageCenterPop.vue')['default'] - MessageIcon: typeof import('./src/components/taskbar/MessageIcon.vue')['default'] - MusicStore: typeof import('./src/components/builtin/MusicStore.vue')['default'] - MusicViewer: typeof import('./src/components/builtin/MusicViewer.vue')['default'] - NetWork: typeof import('./src/components/taskbar/NetWork.vue')['default'] - NetworkPop: typeof import('./src/components/taskbar/NetworkPop.vue')['default'] - NotFound: typeof import('./src/components/window/NotFound.vue')['default'] - Notice: typeof import('./src/components/desktop/Notice.vue')['default'] - NotifyGroup: typeof import('./src/components/builtin/NotifyGroup.vue')['default'] - OpeningDesktop: typeof import('./src/components/desktop/OpeningDesktop.vue')['default'] - OpenWiteDialog: typeof import('./src/components/builtin/OpenWiteDialog.vue')['default'] - OsImage: typeof import('./src/components/builtin/OsImage.vue')['default'] - PdfViewer: typeof import('./src/components/builtin/PdfViewer.vue')['default'] - PictureStore: typeof import('./src/components/builtin/PictureStore.vue')['default'] - PlanTasks: typeof import('./src/components/oa/PlanTasks.vue')['default'] - ProcessManager: typeof import('./src/components/setting/ProcessManager.vue')['default'] - QuickLink: typeof import('./src/components/computer/QuickLink.vue')['default'] - RectChosen: typeof import('./src/components/builtin/RectChosen.vue')['default'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] - Screen: typeof import('./src/components/desktop/Screen.vue')['default'] - ScreenContent: typeof import('./src/components/desktop/ScreenContent.vue')['default'] - ScreenRecorder: typeof import('./src/components/taskbar/ScreenRecorder.vue')['default'] - Screenshort: typeof import('./src/components/taskbar/Screenshort.vue')['default'] - SetAccount: typeof import('./src/components/setting/SetAccount.vue')['default'] - SetCustom: typeof import('./src/components/setting/SetCustom.vue')['default'] - SetFilePwd: typeof import('./src/components/setting/SetFilePwd.vue')['default'] - SetLang: typeof import('./src/components/setting/SetLang.vue')['default'] - SetSystem: typeof import('./src/components/setting/SetSystem.vue')['default'] - Setting: typeof import('./src/components/setting/Setting.vue')['default'] - SetUpdate: typeof import('./src/components/setting/SetUpdate.vue')['default'] - ShareFiles: typeof import('./src/components/oa/ShareFiles.vue')['default'] - ShowNews: typeof import('./src/components/taskbar/ShowNews.vue')['default'] - StartMenu: typeof import('./src/components/taskbar/StartMenu.vue')['default'] - StartOption: typeof import('./src/components/taskbar/StartOption.vue')['default'] - StateIcon: typeof import('./src/components/taskbar/StateIcon.vue')['default'] - Store: typeof import('./src/components/store/Store.vue')['default'] - Taskbar: typeof import('./src/components/taskbar/Taskbar.vue')['default'] - Upgrade: typeof import('./src/components/desktop/Upgrade.vue')['default'] - UpPopover: typeof import('./src/components/computer/UpPopover.vue')['default'] - UrlBrowser: typeof import('./src/components/builtin/UrlBrowser.vue')['default'] - Version: typeof import('./src/components/builtin/Version.vue')['default'] - VideoViewer: typeof import('./src/components/builtin/VideoViewer.vue')['default'] - WinButton: typeof import('./src/components/ui/WinButton.vue')['default'] - WinCheckBox: typeof import('./src/components/ui/WinCheckBox.vue')['default'] - WindowGroup: typeof import('./src/components/window/WindowGroup.vue')['default'] - WindowInner: typeof import('./src/components/window/WindowInner.vue')['default'] - WindowNode: typeof import('./src/components/window/WindowNode.vue')['default'] - WindowTemplate: typeof import('./src/components/window/WindowTemplate.vue')['default'] - WinInput: typeof import('./src/components/ui/WinInput.vue')['default'] - WinLoading: typeof import('./src/components/ui/WinLoading.vue')['default'] - WinLogo: typeof import('./src/components/ui/WinLogo.vue')['default'] - WinProcess: typeof import('./src/components/ui/WinProcess.vue')['default'] - WinSelect: typeof import('./src/components/ui/WinSelect.vue')['default'] - WinUpButtonGroup: typeof import('./src/components/ui/WinUpButtonGroup.vue')['default'] - } -} diff --git a/frontend/src/components/builtin/FileList.vue b/frontend/src/components/builtin/FileList.vue index d500e90..9e969c7 100644 --- a/frontend/src/components/builtin/FileList.vue +++ b/frontend/src/components/builtin/FileList.vue @@ -369,7 +369,7 @@ function handleRightClick(mouse: MouseEvent, item: OsFileWithoutContent, index: }, ]; - if (item.isShare && item.path.indexOf('/F/othershare') !== 0) { + if (!item.isShare || item.path.indexOf('/F/othershare') !== 0) { fileMenus.push({ label: t('delete'), click: async () => { @@ -385,7 +385,7 @@ function handleRightClick(mouse: MouseEvent, item: OsFileWithoutContent, index: }) } const userType = sys.getConfig('userType'); - if (userType == 'member' && !item.isShare) { + if (userType == 'member' && !item.isShare && !item.isDirectory) { menuArr.push( { diff --git a/frontend/src/components/builtin/FileProps.vue b/frontend/src/components/builtin/FileProps.vue index 47799c1..86be739 100644 --- a/frontend/src/components/builtin/FileProps.vue +++ b/frontend/src/components/builtin/FileProps.vue @@ -79,6 +79,7 @@ const file = ref(); const path = window?.config.content if(path.indexOf('/F') === 0) { file.value = (await useSystem()?.fs.getShareInfo(path)).fi + // file.value.path = file.value.titleName || file.value.path } else { file.value = await useSystem()?.fs.stat(path); } diff --git a/frontend/src/components/chat/ChatUserSetting.vue b/frontend/src/components/chat/ChatUserSetting.vue index a655261..9be4aa9 100644 --- a/frontend/src/components/chat/ChatUserSetting.vue +++ b/frontend/src/components/chat/ChatUserSetting.vue @@ -2,7 +2,8 @@ import { t } from '@/i18n'; import { ref, onMounted } from "vue"; import { useChatStore } from "@/stores/chat"; -import { fetchGet, getSystemConfig } from "@/system/config"; +import { notifyError, notifySuccess } from "@/util/msg"; +import { fetchGet, getSystemConfig, setSystemKey } from "@/system/config"; const store = useChatStore() const form = ref({ nickname: '', @@ -10,37 +11,49 @@ const form = ref({ const userInfo = getSystemConfig().userInfo const dialogShow = ref(false) let imgList = reactive([]) +let pos = ref(0) const showChange = (val) =>{ dialogShow.value = val } -const toChangeHead = ()=>{ - console.log('换头像'); +const toChangeHead = async ()=>{ + let res = await fetchGet(`${userInfo.url}/files/saveavatar?id=${userInfo.id}&name=${imgList[pos.value].name}`) + console.log('submit!:',res) + if (!res.ok) { + notifyError("头像换取失败") + } else { + res = await res.json() + notifySuccess(res.message) + userInfo.avatar = imgList[pos.value].name + store.userInfo.avatar = userInfo.url + '/upload/avatar/' + userInfo.avatar + setSystemKey('userInfo', userInfo) + } + showChange(false) } // 获取头像列表 -const getHeadList = async() => { - const res = await fetchGet(`${userInfo.url}/files/avatarlist`) +const getHeadList = async () => { + let res = await fetchGet (`${userInfo.url}/files/avatarlist`) + // const apiUrl = getSystemConfig().apiUrl + '/upload/avatar/'; + const apiUrl = userInfo.url + '/upload/avatar/'; if (res.ok) { - imgList = await res.json() - imgList = imgList.data.map(item => { - item.isChoose = false - return item - }) - imgList[0].isChoose = true + res = await res.json() + for (const item of res.data) { + imgList.push({ + url: apiUrl + item, + name: item + }) + } } - console.log('imgList:' , imgList); } -let pos = ref(0) // 换头像 const chooseImg = (index) => { - imgList.forEach(item => item.isChoose = false) - imgList[index].isChoose = true pos.value = index } -const onSubmit = () => { - console.log('submit!') +const onSubmit = async () => { + console.log('提交'); } onMounted(()=>{ getHeadList() + store.userInfo.avatar = userInfo.url + '/upload/avatar/' + userInfo.avatar })