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