From 3cafac99ff5457fea4f1b2dc58082e90df672314 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 1 Mar 2025 11:54:20 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E5=9C=A8=E5=9B=A2?= =?UTF-8?q?=E9=98=9F=E7=AE=A1=E7=90=86=E6=89=93=E5=BC=80=E7=BE=A4=E8=81=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/DialogController.php | 3 ++ language/original-web.txt | 1 + resources/assets/js/pages/manage.vue | 2 +- .../manage/components/TeamManagement.vue | 32 +++++++++++++++++-- resources/assets/js/store/actions.js | 5 +-- 5 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 2216ebfd7..b3dd60d51 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -259,6 +259,9 @@ class DialogController extends AbstractController ->where('d.id', $dialog_id) ->whereNull('d.deleted_at') ->first(); + if (empty($item)) { + return Base::retError('不在成员列表内'); + } return Base::retSuccess('success', WebSocketDialog::synthesizeData($item, $user->userid)); } diff --git a/language/original-web.txt b/language/original-web.txt index f28a41221..7f66a92cc 100644 --- a/language/original-web.txt +++ b/language/original-web.txt @@ -1959,3 +1959,4 @@ API请求的URL路径 获取本地模型列表 任务超期未完成 +打开部门群 diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 9baad0242..1f8c26f68 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -299,7 +299,7 @@ v-model="allUserShow" placement="right" :size="1380"> - + diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue index b9f4603fa..daa1a91fd 100644 --- a/resources/assets/js/pages/manage/components/TeamManagement.vue +++ b/resources/assets/js/pages/manage/components/TeamManagement.vue @@ -31,7 +31,7 @@
  • {{$L('部门负责人')}}

    @@ -40,12 +40,16 @@
    {{$L('添加子部门')}}
    + +
    {{$L('打开部门群')}}
    +
    {{$L('编辑')}}
    @@ -795,6 +799,7 @@ export default { dialog_useid: 0 }, departmentList: [], + departmentOperation: 0, dialogLoad: false, dialogList: [], @@ -1259,17 +1264,38 @@ export default { this.departmentSelect = id }, + onVcDepartment(visible, id) { + this.departmentOperation = visible ? id : 0; + }, + onOpDepartment(val) { if ($A.leftExists(val, 'add_')) { this.onShowDepartment({ parent_id: parseInt(val.substr(4)) }) - } else if ($A.leftExists(val, 'edit_')) { + return + } + + if ($A.leftExists(val, 'edit_')) { const editItem = this.departmentList.find(({id}) => id === parseInt(val.substr(5))) if (editItem) { this.onShowDepartment(editItem) } - } else if ($A.leftExists(val, 'del_')) { + return; + } + + if ($A.leftExists(val, 'dialog_')) { + const dialogId = parseInt(val.substr(7)) + this.$store.dispatch("openDialog", dialogId).then(() => { + this.goForward({name: 'manage-messenger'}) + this.$emit('on-close') + }).catch(({msg}) => { + $A.modalError(msg || this.$L('打开会话失败')) + }) + return; + } + + if ($A.leftExists(val, 'del_')) { const delItem = this.departmentList.find(({id}) => id === parseInt(val.substr(4))) if (delItem) { $A.modalConfirm({ diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 69ec72ff9..64cc7cdf7 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2919,7 +2919,7 @@ export default { * @returns {Promise} */ openDialog({state, dispatch}, dialog_id) { - return new Promise(async resolve => { + return new Promise(async (resolve, reject) => { let search_msg_id; let dialog_msg_id; if ($A.isJson(dialog_id)) { @@ -2933,7 +2933,8 @@ export default { try { await dispatch("getDialogOne", dialog_id) } catch (e) { - console.warn(e); + reject(e); + return; } finally { dispatch("hiddenSpinner") }