From 2e9fb42825b850390cd4fbb61248d2778b111904 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期六, 17 八月 2024 18:54:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web

---
 src/views/authority/users/index.vue        |    6 +
 src/views/authority/organization/index.vue |   96 ++++++++++++++++--------
 src/views/authority/resource/index.vue     |  135 +++++++++++++++------------------
 3 files changed, 129 insertions(+), 108 deletions(-)

diff --git a/src/views/authority/organization/index.vue b/src/views/authority/organization/index.vue
index 03c4f6d..65ae930 100644
--- a/src/views/authority/organization/index.vue
+++ b/src/views/authority/organization/index.vue
@@ -34,16 +34,20 @@
                 "
                 @click="() => onIconClick(nodeData)"
               />
-              <IconDelete
-                style="
+              <a-popconfirm v-if="nodeData.deptName!='root'"
+                content="璇风‘璁ゆ槸鍚﹀垹闄わ紵"
+                type="success"
+                @ok="() => onIconClickDelete(nodeData)"
+              >
+                <IconDelete
+                  style="
                   position: absolute;
                   right: 40px;
                   font-size: 12px;
                   top: 10px;
                   color: #3370ff;
-                "
-                @click="() => onIconClickDelete(nodeData)"
-              />
+                " />
+              </a-popconfirm>
             </template>
           </a-tree>
         </a-card>
@@ -54,9 +58,9 @@
           :bordered="false"
           :style="{ width: '100%' }"
         >
-          <a-form :model="deptform" layout="horizontal">
-            <a-form-item field="parentName" label="涓婄骇鏈烘瀯">
-              <a-input v-model="deptform.parentId" />
+          <a-form :model="deptform" layout="horizontal" ref="formRef">
+            <a-form-item field="parentName" label="涓婄骇鏈烘瀯" disabled>
+              <a-input v-model="deptform.parentName" />
             </a-form-item>
             <a-form-item field="status" label="鏈烘瀯鐘舵��">
               <a-switch
@@ -65,13 +69,13 @@
                 v-model="deptform.status"
               ></a-switch>
             </a-form-item>
-            <a-form-item field="deptName" label="鏈烘瀯鍚嶇О">
+            <a-form-item field="deptName" label="鏈烘瀯鍚嶇О" :rules="[{required:true,message:'鏈烘瀯鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
               <a-input v-model="deptform.deptName" />
             </a-form-item>
-            <a-form-item field="leader" label="鑱旂郴浜�">
+            <a-form-item field="leader" label="鑱旂郴浜�" :rules="[{required:true,message:'鑱旂郴浜哄繀濉�'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
               <a-input v-model="deptform.leader" />
             </a-form-item>
-            <a-form-item field="phone" label="鑱旂郴鐢佃瘽">
+            <a-form-item field="phone" label="鑱旂郴鐢佃瘽" :rules="[{required:true,message:'鑱旂郴鐢佃瘽蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
               <a-input v-model="deptform.phone" />
             </a-form-item>
             <a-form-item field="address" label="鏈烘瀯鍦板潃" style="align: start">
@@ -94,8 +98,8 @@
       @cancel="handleCancel"
       @ok="addDept"
     >
-      <a-form :model="deptform" layout="horizontal">
-        <a-form-item field="parentName" label="涓婄骇鏈烘瀯">
+      <a-form :model="deptform" layout="horizontal" ref="addFormRef">
+        <a-form-item field="parentName" label="涓婄骇鏈烘瀯" disabled>
           <a-input v-model="deptform.parentName" />
         </a-form-item>
         <a-form-item field="status" label="鏈烘瀯鐘舵��">
@@ -105,13 +109,13 @@
             v-model="deptform.status"
           ></a-switch>
         </a-form-item>
-        <a-form-item field="deptName" label="鏈烘瀯鍚嶇О">
+        <a-form-item field="deptName" label="鏈烘瀯鍚嶇О" :rules="[{required:true,message:'鏈烘瀯鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="deptform.deptName" />
         </a-form-item>
-        <a-form-item field="leader" label="鑱旂郴浜�">
+        <a-form-item field="leader" label="鑱旂郴浜�" :rules="[{required:true,message:'鑱旂郴浜哄繀濉�'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="deptform.leader" />
         </a-form-item>
-        <a-form-item field="phone" label="鑱旂郴鐢佃瘽">
+        <a-form-item field="phone" label="鑱旂郴鐢佃瘽" :rules="[{required:true,message:'鑱旂郴鐢佃瘽蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="deptform.phone" />
         </a-form-item>
         <a-form-item field="address" label="鏈烘瀯鍦板潃" style="align: start">
@@ -131,11 +135,13 @@
     OrganizationById,
     OrganizationDelete,
     OrganizationList,
-    OrganizationUpdate,
-  } from '@/api/authority';
+    OrganizationUpdate, User, UserAdd, UserEdit
+  } from "@/api/authority";
   import Authheader from '@/views/authority/components/authheader.vue';
   import { Modal } from '@arco-design/web-vue';
 
+  let formRef = ref();
+  let addFormRef= ref();
   let visible = ref(false);
   let treeData = ref([]);
   let showLine = ref(true);
@@ -154,17 +160,35 @@
   });
 
   const onIconClick = (nodeData) => {
+    deptform.value.deptName = "";
+    deptform.value.email = "";
+    deptform.value.leader = "";
+    deptform.value.orderNum = "0";
+    deptform.value.phone = "";
+    deptform.value.status = "";
+    deptform.value.address = "";
+    deptform.value.deptId = "";
     deptform.value.parentName = nodeData.deptName;
     deptform.value.parentId = nodeData.deptId;
+
     visible.value = true;
   };
 
+  const addCb = async (err) => {
+    if (err) {
+      visible.value=true;
+    } else {
+      await OrganizationAdd({
+        ...deptform.value,
+      } as unknown as Organization).then((res) => {
+        OrganizationData('');
+      });
+    }
+    ;
+  }
+
   const addDept = async () => {
-    await OrganizationAdd({
-      ...deptform.value,
-    } as unknown as Organization).then((res) => {
-      OrganizationData('');
-    });
+    addFormRef.value.validate(addCb);
   };
 
   const onIconClickDelete = (nodeData) => {
@@ -178,16 +202,24 @@
       deptform.value = { ...res.data };
     });
   };
-  const editdept = () => {
-    OrganizationUpdate({
-      ...deptform.value,
-    } as unknown as Organization).then((res) => {
-      OrganizationData('');
-      Modal.success({
-        title: '淇濆瓨鎴愬姛',
-        content: '淇濆瓨鎴愬姛',
+  const cb = async (err) => {
+    if (err) {
+
+    } else {
+      OrganizationUpdate({
+        ...deptform.value,
+      } as unknown as Organization).then((res) => {
+        OrganizationData('');
+        Modal.success({
+          title: '淇濆瓨鎴愬姛',
+          content: '淇濆瓨鎴愬姛',
+        });
       });
-    });
+    }
+    ;
+  }
+  const editdept = () => {
+    formRef.value.validate(cb);
   };
   const reset = (id) => {
     OrganizationById(id).then((res) => {
diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue
index b95142c..cd23097 100644
--- a/src/views/authority/resource/index.vue
+++ b/src/views/authority/resource/index.vue
@@ -22,7 +22,7 @@
             @drop="onDrop"
             @select="showDetail"
           >
-            <template #extra="nodeData">
+            <template #extra="nodeData"  >
               <IconPlus
                 style="
                   position: absolute;
@@ -33,16 +33,20 @@
                 "
                 @click="() => onIconClick(nodeData)"
               />
-              <IconDelete
-                style="
+              <a-popconfirm v-if="nodeData.menuName!='root'"
+                content="璇风‘璁ゆ槸鍚﹀垹闄わ紵"
+                type="success"
+                @ok="() => onIconClickDelete(nodeData)"
+              >
+                <IconDelete
+                  style="
                   position: absolute;
                   right: 40px;
                   font-size: 12px;
                   top: 10px;
                   color: #3370ff;
-                "
-                @click="() => onIconClickDelete(nodeData)"
-              />
+                "  />
+              </a-popconfirm>
             </template>
           </a-tree>
         </a-card>
@@ -53,7 +57,7 @@
           :bordered="false"
           :style="{ width: '100%' }"
         >
-          <a-form :model="resourceform" layout="horizontal">
+          <a-form :model="resourceform" layout="horizontal" ref="formRef">
             <a-form-item field="parentName" label="涓婄骇璧勬簮" disabled>
               <a-input v-model="resourceform.parentName" />
             </a-form-item>
@@ -64,7 +68,7 @@
                 v-model="resourceform.status"
               ></a-switch>
             </a-form-item>
-            <a-form-item field="menuName" label="璧勬簮鍚嶇О">
+            <a-form-item field="menuName" label="璧勬簮鍚嶇О"  :rules="[{required:true,message:'璧勬簮鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
               <a-input v-model="resourceform.menuName" />
             </a-form-item>
             <a-form-item field="menuName" label="璧勬簮鍥炬爣">
@@ -76,7 +80,7 @@
                 @success="handleSuccess"
               ></Upload>
             </a-form-item>
-            <a-form-item field="menuType" label="璧勬簮绫诲瀷">
+            <a-form-item field="menuType" label="璧勬簮绫诲瀷"  :rules="[{required:true,message:'璧勬簮绫诲瀷蹇呭~'}]">
               <a-select
                 v-model="resourceform.menuType"
                 :options="options"
@@ -91,13 +95,14 @@
                 placeholder="璇疯緭鍏ユ彁绀鸿瘝"
               />
             </a-form-item>
-            <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
+            <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃"  :rules="[{required:true,message:'璧勬簮鎺у埗鏉冮檺瀛楃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
               <a-input v-model="resourceform.perms" />
             </a-form-item>
             <a-form-item
               field="component"
               label="璧勬簮鍦板潃"
               style="align: start"
+              :rules="[{required:true,message:'璧勬簮鍦板潃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]"
             >
               <a-input v-model="resourceform.component" />
             </a-form-item>
@@ -118,7 +123,7 @@
       @cancel="handleCancel"
       @ok="addresource"
     >
-      <a-form :rules="rules" :model="resourceform" layout="horizontal">
+      <a-form  :model="resourceform" layout="horizontal" ref="addFormRef">
         <a-form-item field="parentName" label="涓婄骇璧勬簮" disabled>
           <a-input v-model="resourceform.parentName" />
         </a-form-item>
@@ -129,7 +134,7 @@
             v-model="resourceform.status"
           ></a-switch>
         </a-form-item>
-        <a-form-item field="menuName" label="璧勬簮鍚嶇О">
+        <a-form-item field="menuName" label="璧勬簮鍚嶇О" :rules="[{required:true,message:'璧勬簮鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="resourceform.menuName" />
         </a-form-item>
         <a-form-item field="icon" label="璧勬簮鍥炬爣">
@@ -141,7 +146,7 @@
             @success="handleSuccess"
           ></Upload>
         </a-form-item>
-        <a-form-item field="menuType" label="璧勬簮绫诲瀷">
+        <a-form-item field="menuType" label="璧勬簮绫诲瀷" :rules="[{required:true,message:'璧勬簮绫诲瀷蹇呭~'}]">
           <a-select
             v-model="resourceform.menuType"
             :options="options"
@@ -156,10 +161,10 @@
             placeholder="璇疯緭鍏ユ彁绀鸿瘝"
           />
         </a-form-item>
-        <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
+        <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃" :rules="[{required:true,message:'璧勬簮鎺у埗鏉冮檺瀛楃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="resourceform.perms" />
         </a-form-item>
-        <a-form-item field="component" label="璧勬簮鍦板潃" style="align: start">
+        <a-form-item field="component" label="璧勬簮鍦板潃" style="align: start" :rules="[{required:true,message:'璧勬簮鍦板潃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
           <a-input v-model="resourceform.component" />
         </a-form-item>
       </a-form>
@@ -171,19 +176,22 @@
   import { ref } from 'vue';
   import { IconPlus } from '@arco-design/web-vue/es/icon';
   import {
+    Organization,
+    OrganizationAdd, OrganizationUpdate,
     Resource,
     ResourceAdd,
     ResourceById,
     ResourceDelete,
     ResourceList,
-    ResourceUpdate,
-  } from '@/api/authority';
+    ResourceUpdate
+  } from "@/api/authority";
   import Authheader from '@/views/authority/components/authheader.vue';
   import { Modal } from '@arco-design/web-vue';
   import { userModelState } from '@/store';
 
   const modelStore = userModelState();
-
+  let formRef = ref();
+  let addFormRef= ref();
   let visible = ref(false);
   let treeData = ref([]);
   let showLine = ref(true);
@@ -212,7 +220,7 @@
     menuId: '',
     menuName: '',
     menuType: '',
-    orderNum: '',
+    orderNum: '0',
     parentId: '',
     parentName: '',
     children: [],
@@ -223,38 +231,7 @@
     target: '',
     updateTime: '',
   });
-  const rules = {
-    // parentName: [
-    //   {
-    //     required: true,
-    //     message: '璇疯緭鍏ヤ笂绾ц祫婧�',
-    //   },
-    // ],
-    // menuName: [
-    //   {
-    //     required: true,
-    //     message: '璇疯緭鍏ヨ祫婧愬悕绉�',
-    //   },
-    // ],
-    // menuType: [
-    //   {
-    //     required: true,
-    //     message: '璇烽�夋嫨璧勬簮绫诲瀷',
-    //   },
-    // ],
-    // description: [
-    //   {
-    //     required: true,
-    //     message: '璇疯緭鍏ユ彁绀鸿瘝',
-    //   },
-    // ],
-    // perms: [
-    //   {
-    //     required: true,
-    //     message: '璇疯緭鍏ヨ祫婧愭帶鍒舵潈闄愬瓧绗�',
-    //   },
-    // ],
-  };
+
 
   const onIconClick = (nodeData) => {
     if (nodeData) {
@@ -276,7 +253,7 @@
 
     visible.value = true;
   };
-  const formRef = ref();
+
   //鍥剧墖涓婁紶
   const uploadAction = '/api/v1/llm/upload'; // 鏇挎崲涓轰綘鐨勪笂浼燗PI
   const fileList = ref([]);
@@ -296,19 +273,21 @@
     imageUrls.value = urlsArr; // 鎷垮埌涓婁紶鐨勫浘鐗囧湴鍧�
   };
 
-  const addresource = async (done) => {
-    // formRef.value.validate().then(async (res) => {
-    //   if (!res) {
-    //   }
-    //   done(false);
-    // });
+  const addCb = async (err) => {
+    if (err) {
+      visible.value = true;
+    } else {
+      resourceform.value.icon = uploadUrl.value[0] || '';
+      await ResourceAdd({
+        ...resourceform.value,
+      } as unknown as Resource).then((res) => {
+        ResourceData('');
+      });
+    }
+  }
 
-    resourceform.value.icon = uploadUrl.value[0] || '';
-    await ResourceAdd({
-      ...resourceform.value,
-    } as unknown as Resource).then((res) => {
-      ResourceData('');
-    });
+  const addresource = async (done) => {
+    addFormRef.value.validate(addCb);
   };
 
   const onIconClickDelete = (nodeData) => {
@@ -325,17 +304,25 @@
       imageUrls.value.push(httpUrl + res.data.icon);
     });
   };
-  const editresource = () => {
-    resourceform.value.icon = uploadUrl.value[0] || '';
-    ResourceUpdate({
-      ...resourceform.value,
-    } as unknown as Resource).then((res) => {
-      ResourceData('');
-      Modal.success({
-        title: '淇濆瓨鎴愬姛',
-        content: '淇濆瓨鎴愬姛',
+  const cb = async (err) => {
+    if (err) {
+
+    } else {
+      resourceform.value.icon = uploadUrl.value[0] || '';
+      ResourceUpdate({
+        ...resourceform.value,
+      } as unknown as Resource).then((res) => {
+        ResourceData('');
+        Modal.success({
+          title: '淇濆瓨鎴愬姛',
+          content: '淇濆瓨鎴愬姛',
+        });
       });
-    });
+    }
+  }
+  const editresource = () => {
+    formRef.value.validate(cb);
+
   };
   const reset = (id) => {
     ResourceById(id).then((res) => {
diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue
index 252759b..b62cead 100644
--- a/src/views/authority/users/index.vue
+++ b/src/views/authority/users/index.vue
@@ -97,7 +97,7 @@
               >缂栬緫</a-button
             >
             <a-popconfirm
-              content="Are you sure you want to delete?"
+              content="璇风‘璁ゆ槸鍚﹀垹闄わ紵"
               type="success"
               @ok="operation(3, record)"
             >
@@ -518,7 +518,9 @@
       editform.value.loginName = record.loginName;
       editform.value.email = record.email;
       editform.value.phoneNumber = record.phoneNumber;
-      editform.value.role = record.role;
+      if (record.roles?.length>0) {
+        editform.value.role = record.roles[0].roleId;
+      }
     }
     //鍒犻櫎
     if (t == 3) {

--
Gitblit v1.8.0