From 7cc74731d2426123d5e4caa313c53d67a51550bc Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期五, 02 八月 2024 17:34:25 +0800 Subject: [PATCH] 智能体管理的页面开发和功能开发 --- src/views/authority/users/index.vue | 130 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 126 insertions(+), 4 deletions(-) diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue index d25c456..80bb673 100644 --- a/src/views/authority/users/index.vue +++ b/src/views/authority/users/index.vue @@ -79,7 +79,7 @@ </template> <template #dept="{ record }">{{ record.dept ? record.dept.deptName : "" }}</template> <template #status="{record}"> - <a-switch checked-value="0" unchecked-value="1" @change="statusChange(record.status,record)" + <a-switch checked-value="1" unchecked-value="0" @change="statusChange(record.status,record)" v-model="record.status" /> </template> <template #operations="{ record }"> @@ -179,14 +179,34 @@ <icon-clock-circle /> 鐭ヨ瘑搴� </template> - Content of Tab Panel 2 + <a-space direction="vertical" size="large"> + <a-checkbox-group v-model="checkedKeysKnowledge" direction="vertical" @change="onCheckKnowledge"> + <a-checkbox + v-for="(knowledg, index) of knowledgeList" + :value="knowledg.id" + :lable="knowledg.name" + @change="onCheckKnowledge" + > + {{ knowledg.name }} + </a-checkbox> + </a-checkbox-group> + </a-space> </a-tab-pane> <a-tab-pane key="3"> <template #title> <icon-user /> 鏅鸿兘浣� </template> - Content of Tab Panel 3 + <a-checkbox-group v-model="checkedKeysDialog" direction="vertical" @change="onCheckDialog"> + <a-checkbox + v-for="(dialog, index) of DialogsList" + :value="dialog.id" + :lable="dialog.name" + @change="onCheckDialog" + > + {{ dialog.name }} + </a-checkbox> + </a-checkbox-group> </a-tab-pane> </a-tabs> <a-card :style="{ width: '100%',height: '200px', 'overflow-y': 'auto', margin:'1px'}" @@ -195,12 +215,35 @@ hoverable > <a-space wrap> + 鑿滃崟鍔熻兘锛� <a-tag v-for="(tag, index) of checkStrictlyMenu" :key="tag.menuId" @close="handleMenuRemove(tag)" > {{ tag.menuName }} + </a-tag> + </a-space> + <a-divider /> + <a-space wrap> + 鐭ヨ瘑搴�: + <a-tag + v-for="(tag, index) of checkStrictlyKnowledge" + :key="tag.knowledgeId" + @close="handleKnowledgeRemove(tag)" + > + {{ tag.knowledgeName }} + </a-tag> + </a-space> + <a-divider /> + <a-space wrap> + 鏅鸿兘浣�: + <a-tag + v-for="(tag, index) of checkStrictlyDialog" + :key="tag.dialogId" + @close="handleDialogRemove(tag)" + > + {{ tag.dialogName }} </a-tag> </a-space> </a-card> @@ -217,6 +260,8 @@ import { Pagination } from "@/types/global"; import type { TableColumnData } from "@arco-design/web-vue/es/table/interface"; import { + DialogList, + KnowledgeList, OrganizationList, ResourceList, User, @@ -240,6 +285,15 @@ let checkedKeysMenu = ref([]); let expandKdysMenu = ref([]); let checkStrictlyMenu = ref([]); + +let checkedKeysKnowledge= ref([]); +let checkStrictlyKnowledge= ref([]); + +let checkedKeysDialog= ref([]); +let checkStrictlyDialog= ref([]); + +let knowledgeList = ref([]); +let DialogsList = ref([]); let menuTips = ref(["鏉冮檺绠$悊", "璐﹀彿"]); @@ -302,12 +356,51 @@ }); } }; +const onCheckKnowledge = (newCheckedKeys, event) => { + let o = { "knowledgeId": event.target.value, "knowledgeName": event.target.labels[0].innerText }; + if (event.target.checked) { + checkStrictlyKnowledge.value.push(o); + } else { + checkStrictlyKnowledge.value.forEach((val, idx, array) => { + // val: 褰撳墠鍊� + if (val.knowledgeId == event.target.value) { + checkStrictlyKnowledge.value.splice(idx, 1); + return true; + } + }); + } +}; + + +const onCheckDialog = (newCheckedKeys, event) => { + let o = { "dialogId": event.target.value, "dialogName": event.target.labels[0].innerText }; + if (event.target.checked) { + checkStrictlyDialog.value.push(o); + } else { + checkStrictlyDialog.value.forEach((val, idx, array) => { + // val: 褰撳墠鍊� + if (val.dialogId == event.target.value) { + checkStrictlyDialog.value.splice(idx, 1); + return true; + } + }); + } +}; + const handleRemove = (key) => { checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key); }; const handleMenuRemove = (key) => { checkStrictlyMenu.value = checkStrictlyMenu.value.filter((tag) => tag !== key); }; +const handleKnowledgeRemove = (key) => { + checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter((tag) => tag !== key); +}; +const handleDialogRemove = (key) => { + checkStrictlyDialog.value = checkStrictlyDialog.value.filter((tag) => tag !== key); +}; + + const basePagination: Pagination = { current: 1, pageSize: 20 @@ -396,11 +489,22 @@ }; const editResourceHandleOk = async () => { - let resources: Array = [], user: User = { "userId": selectUser.value.userId }; + let resources: Array = [],dialogs: Array = [],Knowledges: Array = [], user: User = { "userId": selectUser.value.userId }; checkStrictlyMenu.value.forEach((val) => { resources.push(val.menuId); }); user.resources = resources; + + checkStrictlyKnowledge.value.forEach((val) => { + Knowledges.push(val.knowledgeId); + }); + user.knowledges = Knowledges; + + checkStrictlyDialog.value.forEach((val) => { + dialogs.push(val.dialogId); + }); + user.dialogs = dialogs; + await UserEdit(user).then((res) => { fetchData(); }); @@ -471,11 +575,23 @@ checkedKeysMenu.value = []; expandKdysMenu.value = []; checkStrictlyMenu.value = []; + checkStrictlyKnowledge.value=[]; + checkedKeysKnowledge.value=[]; + checkStrictlyDialog.value=[]; + checkedKeysDialog.value=[]; selectUser.value = record; record.resources.forEach((val) => { checkStrictlyMenu.value.push({ "menuId": val.menuId, "menuName": val.menuName }); checkedKeysMenu.value.push(val.menuId); expandKdysMenu.value.push(val.menuId); + }); + record.knowledges.forEach((val) => { + checkStrictlyKnowledge.value.push({ "knowledgeId": val.id, "knowledgeName": val.name }); + checkedKeysKnowledge.value.push(val.id); + }); + record.dialogs.forEach((val) => { + checkStrictlyDialog.value.push({ "dialogId": val.id, "dialogName": val.name }); + checkedKeysDialog.value.push(val.id); }); } @@ -536,7 +652,13 @@ }); }; +KnowledgeList().then((res) => { + knowledgeList.value = res.rows; +}); +DialogList().then((res) => { + DialogsList.value = res.rows; +}); fetchData(); OrganizationData(""); MenuData(); -- Gitblit v1.8.0