From c77f109ade55f12043acc3a94d77fd5f85144ae8 Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期四, 15 八月 2024 17:37:13 +0800
Subject: [PATCH] 角色

---
 src/views/authority/role/index.vue |   72 ++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 24 deletions(-)

diff --git a/src/views/authority/role/index.vue b/src/views/authority/role/index.vue
index baa7842..7d1305d 100644
--- a/src/views/authority/role/index.vue
+++ b/src/views/authority/role/index.vue
@@ -111,8 +111,8 @@
       @cancel="handleCancel(1)"
       @ok="editHandleOk"
     >
-      <a-form :model="editform">
-        <a-form-item required field="roleName" label="瑙掕壊鍚�">
+      <a-form  ref="formRef" :model="editform">
+        <a-form-item required field="roleName" label="瑙掕壊鍚�" :rules="[{required:true,message:'瑙掕壊鍚嶅繀濉�'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="editform.roleName" />
         </a-form-item>
         <a-form-item field="remark" label="澶囨敞">
@@ -193,8 +193,8 @@
               </a-checkbox>
             </a-checkbox-group>
             <a-checkbox-group
-              v-model="checkedKeysDialog"
-              @change="onCheckDialog"
+              v-model="checkedKeysAgent"
+              @change="onCheckAgent"
             >
               <a-checkbox
                 v-for="(agent, index) of AgentList"
@@ -248,6 +248,13 @@
               @close="handleDialogRemove(tag)"
             >
               {{ tag.dialogName }}
+            </a-tag>
+            <a-tag
+              v-for="(tag, index) of checkStrictlyAgent"
+              :key="tag.agentId"
+              @close="handleDialogRemove(tag)"
+            >
+              {{ tag.agentTitle }}
             </a-tag>
           </a-space>
         </a-card>
@@ -414,7 +421,7 @@
       (tag) => tag !== key
     );
   };
-
+  let formRef = ref();
   const basePagination: Pagination = {
     current: 1,
     pageSize: 15,
@@ -480,6 +487,7 @@
   const editResourceHandleOk = async () => {
     let resources: Array = [],
       dialogs: Array = [],
+      agents: Array = [],
       Knowledges: Array = [],
       role: Role = { roleId: selectRole.value.roleId };
     checkStrictlyMenu.value.forEach((val) => {
@@ -497,32 +505,39 @@
     });
     role.dialogs = dialogs;
 
+    checkStrictlyAgent.value.forEach((val) => {
+      agents.push(val.agentId);
+    });
+    role.agents = agents;
+
     await RoleEdit(role).then((res) => {
       fetchData();
     });
   };
 
-  const editHandleOk = async () => {
-    if(editform.value.roleName==""){
-      Modal.warning({
-        title: '璀﹀憡',
-        content: '鍚嶇О涓嶈兘涓虹┖'
-      });
-      return;
-    }
-    if (editform.value.roleId.length > 0) {
-      await RoleEdit({
-        ...editform.value,
-      } as unknown as Role).then((res) => {
-        fetchData();
-      });
+  const cb = async (err) => {
+    if (err) {
+      visible.value = true;
     } else {
-      await RoleAdd({
-        ...editform.value,
-      } as unknown as Role).then((res) => {
-        fetchData();
-      });
+      if (editform.value.roleId.length > 0) {
+        await RoleEdit({
+          ...editform.value,
+        } as unknown as Role).then((res) => {
+          fetchData();
+        });
+      } else {
+        await RoleAdd({
+          ...editform.value,
+        } as unknown as Role).then((res) => {
+          fetchData();
+        });
+      }
     }
+
+  };
+
+  const editHandleOk =  () => {
+    formRef.value.validate(cb);
   };
   const operation = async (t, record) => {
     if (t == 0) {
@@ -580,6 +595,15 @@
           checkedKeysDialog.value.push(val.id);
         });
       }
+      if (record.agents) {
+        record.agents.forEach((val) => {
+          checkStrictlyAgent.value.push({
+            agentId: val.id,
+            agentTitle: val.title,
+          });
+          checkedKeysAgent.value.push(val.id);
+        });
+      }
     }
   };
 

--
Gitblit v1.8.0