From f03600bd650af2ab358175d10f2f2e0bf927b43c Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 3 Mar 2025 08:20:17 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=B7=BB=E5=8A=A0=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/components/SearchBox.vue | 44 ++++++++++++++++++-- resources/assets/js/pages/manage.vue | 5 ++- resources/assets/js/pages/manage/file.vue | 6 ++- resources/assets/js/store/state.js | 1 + 4 files changed, 50 insertions(+), 6 deletions(-) diff --git a/resources/assets/js/components/SearchBox.vue b/resources/assets/js/components/SearchBox.vue index f020af1cc..d7c67e94c 100755 --- a/resources/assets/js/components/SearchBox.vue +++ b/resources/assets/js/components/SearchBox.vue @@ -157,14 +157,14 @@ export default { switch (type) { case 'task': return this.$L('任务') + case 'project': + return this.$L('项目') case 'message': return this.$L('消息') case 'contact': return this.$L('联系人') case 'file': return this.$L('文件') - case 'project': - return this.$L('项目') } return type; }, @@ -182,7 +182,45 @@ export default { }, onClick(item) { - console.log(item); + switch (item.type) { + case 'task': + this.$store.dispatch('openTask', item.rawData) + this.onHide() + break; + + case 'project': + this.goForward({name: 'manage-project', params: {projectId: item.id}}) + this.onHide() + break; + + case 'message': + this.$store.dispatch("openDialog", item.id).then(() => { + this.onHide() + this.goForward({name: 'manage-messenger', params: {dialogAction: 'dialog'}}) + this.$store.state.dialogSearchMsgId = /^\d+$/.test(item.rawData.search_msg_id) ? item.rawData.search_msg_id : 0 + }).catch(({msg}) => { + $A.modalError(msg || this.$L('打开会话失败')) + }) + break; + + case 'contact': + this.$store.dispatch("openDialogUserid", item.id).then(_ => { + this.onHide() + this.goForward({name: 'manage-messenger', params: {dialogAction: 'dialog'}}) + }).catch(({msg}) => { + $A.modalError(msg || this.$L('打开会话失败')) + }); + break; + + case 'file': + this.goForward({name: 'manage-file', params: {folderId: item.rawData.pid, fileId: null, shakeId: item.id}}) + this.$store.state.fileShakeId = item.id + setTimeout(() => { + this.$store.state.fileShakeId = 0 + }, 1000) + this.onHide() + break; + } }, onShow() { diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 26c04a741..15d966a29 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -976,13 +976,14 @@ export default { this.onAddShow() break; - case 70: // F - 搜索 + case 70: + case 191: // F、/ - 搜索 e.preventDefault(); this.$refs.searchBox.onShow(); break; case 75: - case 78: // K/N - 新建任务 + case 78: // K、N - 新建任务 e.preventDefault(); this.onAddMenu('task') break; diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index 45bcd4a90..dae1a900b 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -761,7 +761,7 @@ export default { }, computed: { - ...mapState(['systemConfig', 'userIsAdmin', 'userInfo', 'fileLists', 'wsOpenNum', 'windowWidth', 'filePackLists']), + ...mapState(['systemConfig', 'userIsAdmin', 'userInfo', 'fileLists', 'wsOpenNum', 'windowWidth', 'filePackLists', 'fileShakeId']), pid() { const {folderId} = this.$route.params; @@ -959,6 +959,10 @@ export default { }, deep: true }, + + fileShakeId(shakeId) { + shakeId && this.shakeFile(shakeId) + } }, methods: { diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index 86de364e0..62dbf401c 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -138,6 +138,7 @@ export default { fileLists: [], fileLinks: [], filePackLists: [], + fileShakeId: 0, // 项目任务 projectId: 0,