From 986aa62ed00bee39363bab41b4eeb8259d446efd Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期四, 16 一月 2025 18:20:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/system/user/index.vue |  173 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 120 insertions(+), 53 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
index 1f75a2b..c1cf595 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
@@ -28,21 +28,65 @@
       </template>
 
       <template #menu="{row,index,size}">
-        <el-button icon="el-icon-edit" size="small" type="text" @click.stop="rowEditHandler(row,index)">缂栬緫</el-button>
-        <el-button icon="el-icon-delete" size="small" type="text" @click.stop="rowDeleteHandler(row)">鍒犻櫎</el-button>
+        <el-button v-if="permissionList.editBtn" size="small" type="text"
+                   @click.stop="rowEditHandler(row,index)">
+          <icon-show :name="permissionList.editBtn.source"></icon-show>
+          缂栬緫
+        </el-button>
+        <el-button v-if="permissionList.delBtn" size="small" type="text"
+                   @click.stop="rowDeleteHandler(row)">
+          <icon-show :name="permissionList.delBtn.source"></icon-show>
+          鍒犻櫎
+        </el-button>
         <el-button size="small" type="text" @click.stop="stopUserHandler(row)">
-          <span v-if="row.status === 0" style="color: #fa3434"><i class="el-icon-video-pause"></i> 鍋滅敤</span>
-          <span v-if="row.status === 1" style="color: #55b61d"><i class="el-icon-video-play"></i> 鍚敤</span>
+          <span v-if="row.status === 0 && permissionList.stopBtn" style="color: #fa3434;display: flex">
+            <icon-show :name="permissionList.stopBtn.source"></icon-show>
+            鍋滅敤
+          </span>
+          <span v-if="row.status === 1 && permissionList.actionBtn" style="color: #55b61d;display: flex">
+            <icon-show :name="permissionList.actionBtn.source"></icon-show>
+            鍚敤
+          </span>
         </el-button>
       </template>
 
       <template slot="menuLeft" slot-scope="scope">
-        <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">鍒犻櫎</el-button>
-        <el-button icon="el-icon-user" plain size="small" type="primary" @click="roleHandler">鍒嗛厤瑙掕壊</el-button>
-        <el-button icon="el-icon-school" plain size="small" type="primary" @click="departmentHandler">鍒嗛厤閮ㄩ棬</el-button>
-        <el-button icon="el-icon-key" plain size="small" type="success" @click="setPwsHandler">璁剧疆瀵嗙爜绛栫暐</el-button>
-        <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadUser">瀵煎叆浜哄憳</el-button>
-        <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadHandler">涓嬭浇瀵煎叆妯℃澘</el-button>
+        <el-button v-if="permissionList.addBtn" class="button-custom-icon" size="small" type="primary"
+                   @click="$refs.userCrud.rowAdd()">
+          <icon-show :name="permissionList.addBtn.source"></icon-show>
+          鏂� 澧�
+        </el-button>
+        <el-button v-if="permissionList.delBtn" class="button-custom-icon" plain size="small" type="danger"
+                   @click="allDelHandler">
+          <icon-show :name="permissionList.delBtn.source"></icon-show>
+          鍒犻櫎
+        </el-button>
+        <el-button v-if="permissionList.assigningRolesBtn" class="button-custom-icon" plain size="small" type="primary"
+                   @click="roleHandler">
+          <icon-show :name="permissionList.assigningRolesBtn.source"></icon-show>
+          鍒嗛厤瑙掕壊
+        </el-button>
+        <el-button v-if="permissionList.distributionDepartmentBtn" class="button-custom-icon" plain size="small"
+                   type="primary" @click="departmentHandler">
+          <icon-show :name="permissionList.distributionDepartmentBtn.source"></icon-show>
+          鍒嗛厤閮ㄩ棬
+        </el-button>
+        <el-button v-if="permissionList.setPasswordPolicyBtn" class="button-custom-icon" plain size="small"
+                   type="success"
+                   @click="setPwsHandler">
+          <icon-show :name="permissionList.setPasswordPolicyBtn.source"></icon-show>
+          璁剧疆瀵嗙爜绛栫暐
+        </el-button>
+        <el-button v-if="permissionList.importPersonnelBtn" class="button-custom-icon" plain size="small" type="primary"
+                   @click="uploadUser">
+          <icon-show :name="permissionList.importPersonnelBtn.source"></icon-show>
+          瀵煎叆浜哄憳
+        </el-button>
+        <el-button v-if="permissionList.downloadImportTemplateBtn" class="button-custom-icon" plain size="small"
+                   type="primary" @click="downloadHandler">
+          <icon-show :name="permissionList.downloadImportTemplateBtn.source"></icon-show>
+          涓嬭浇瀵煎叆妯℃澘
+        </el-button>
       </template>
     </avue-crud>
 
@@ -61,12 +105,11 @@
       class="avue-dialog"
       style="margin-top: -15vh !important;"
       title="璁剧疆瀵嗙爜绛栫暐"
-      width="30%"
+      width="500px"
     >
-
       <div class="password-strategy-container">
-        <div><i class="el-icon-setting"/>璁剧疆瀵嗙爜绛栫暐锛�</div>
-        <el-select v-model="pwdValue" placeholder="璇烽�夋嫨瀵嗙爜绛栫暐">
+        <div style="width:115px;"><i class="el-icon-setting"/>璁剧疆瀵嗙爜绛栫暐锛�</div>
+        <el-select v-model="pwdValue" placeholder="璇烽�夋嫨瀵嗙爜绛栫暐" style="width: 330px;">
           <el-option v-for="(item,index) in pwdList" :key="index" :label="item.name" :value="item.id"></el-option>
         </el-select>
       </div>
@@ -78,7 +121,8 @@
     </el-dialog>
 
     <!-- 瀵煎叆浜哄憳   -->
-    <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" title="瀵煎叆浜哄憳" @updata="getTableList"></upload-file>
+    <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆浜哄憳"
+                 @updata="getTableList"></upload-file>
 
     <!-- 鍒嗛厤閮ㄩ棬瀵硅瘽妗�    -->
     <el-dialog
@@ -124,19 +168,20 @@
 } from '@/api/system/user/api'
 import {column} from "./option"
 import func from '@/util/func'
+import {mapGetters} from "vuex";
 
 export default {
   name: "userManage",
   data: function () {
     return {
-      departSearchObj:{},
-      departSearchValue:'',
+      departSearchObj: {},
+      departSearchValue: '',
       loadKey: 0,
       departStatus: '', // 鍖哄垎涓嶅悓鏂瑰紡鎵撳紑閮ㄩ棬瀵硅瘽妗�
       departCurrenRow: {},
       departOption: {
         ...basicOption,
-        addBtn:false,
+        addBtn: false,
         rowKey: 'oid',
         rowParentKey: 'parentId',
         selection: false,
@@ -145,12 +190,12 @@
         menu: false,
         refreshBtn: false,
         gridBtn: false,
-        header:false,
+        header: false,
         column: [
           {
             label: '鍚嶇О',
             prop: 'name',
-            align:'left'
+            align: 'left'
           },
           {
             label: '缂栧彿',
@@ -173,14 +218,6 @@
       pwdList: [],
       tableLoading: false,
       tableData: [],
-      option: {
-        ...basicOption,
-        editBtn: false,
-        delBtn: false,
-        dialogWidth: '50%',
-        calcHeight: -60,
-        column: column
-      },
       page: {
         currentPage: 1,
         pageSize: 10,
@@ -192,11 +229,37 @@
       leftRoleData: [],  // 鍒嗛厤瑙掕壊绌挎妗嗗乏渚у垵濮嬫暟鎹�
       rightRoleData: [], // 鍒嗛厤瑙掕壊绌挎妗嗗彸渚у垵濮嬫暟鎹�
       transferTitle: ['鐜版湁瑙掕壊', '鎷ユ湁瑙掕壊'],
-      tipList:["瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」","閮ㄩ棬鍒椾笂涓嬬骇鍏崇郴蹇呴』鎸夌収鍙嶆枩鏉犻殧寮�(/)"],
-      lastIndex:null,
+      tipList: ["瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」", "閮ㄩ棬鍒椾笂涓嬬骇鍏崇郴蹇呴』鎸夌収鍙嶆枩鏉犻殧寮�(/)"],
+      lastIndex: null,
     }
   },
-  created() {
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false),
+        delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false),
+        editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false),
+        distributionDepartmentBtn: this.vaildData(this.permission[this.$route.query.id].ASSIGN, false),
+        assigningRolesBtn: this.vaildData(this.permission[this.$route.query.id].ASSIGN1, false),
+        downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false),
+        importPersonnelBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false),
+        setPasswordPolicyBtn: this.vaildData(this.permission[this.$route.query.id].RIGHT, false),
+        stopBtn: this.vaildData(this.permission[this.$route.query.id].FREEZE, false),
+        actionBtn: this.vaildData(this.permission[this.$route.query.id].UNFREZE, false),
+      };
+    },
+    option() {
+      return {
+        ...basicOption,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        dialogWidth: '50%',
+        calcHeight: -60,
+        column: column
+      }
+    }
   },
   methods: {
     // 琛ㄦ牸璇锋眰
@@ -204,9 +267,13 @@
       this.tableLoading = true;
       getDataUsers(this.page.currentPage, this.page.pageSize, this.searchParams).then(res => {
         const data = res.data.data;
+        data.map(item => {
+          item.secretGrade = item.secretGrade.toString()
+        })
         this.tableData = data;
         this.page.total = res.data.total;
         this.tableLoading = false;
+        s
       })
       this.departmentQueryOnLoad()
     },
@@ -263,9 +330,7 @@
       stopUser(params).then(res => {
         this.$message.success(res.data.obj);
         this.getTableList();
-      }).catch(err => {
-        this.$message.error(err)
-      })
+      });
     },
 
     // 閫夋嫨妗�
@@ -279,8 +344,12 @@
         row,
         this.$refs.userCrud,
         this.lastIndex,
-        (newIndex) => { this.lastIndex = newIndex; },
-        () => { this.selectList = []; }
+        (newIndex) => {
+          this.lastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [row];
+        }
       );
     },
 
@@ -303,9 +372,7 @@
         listRoleByUserOid(userOid).then(res => {
           this.rightRoleData = res.data.data.map(item => item.oid);
         })
-      }).catch(err => {
-        this.$message.error(err)
-      })
+      });
       this.$refs.transfer.visible = true;
     },
 
@@ -318,9 +385,7 @@
       saveRights(params).then(res => {
         this.$message.success(res.data.obj);
         this.getTableList();
-      }).catch(err => {
-        this.$message.error(err)
-      })
+      });
     },
 
     // 璁剧疆瀵嗙爜绛栫暐
@@ -352,13 +417,11 @@
       saveUserPasswordStrateg(params).then(res => {
         this.pwdVisible = false;
         this.$message.success(res.data.obj)
-      }).catch(err => {
-        this.$message.error(err)
-      })
+      });
     },
 
     // 鏂板
-    rowSaveHandler(row, done,loading) {
+    rowSaveHandler(row, done, loading) {
       if (row.password != row.confirmPassword) {
         this.$message.error('璇锋鏌ヤ袱娆″瘑鐮佹槸鍚﹁緭鍏ヤ竴鑷达紒')
         return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false;
@@ -380,7 +443,7 @@
     },
 
     // 缂栬緫
-    rowUpdateHandler(row, index, done,loading) {
+    rowUpdateHandler(row, index, done, loading) {
       if (row.password != row.confirmPassword) {
         this.$message.error('璇锋鏌ヤ袱娆″瘑鐮佹槸鍚﹁緭鍏ヤ竴鑷达紒')
         return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false;
@@ -477,11 +540,15 @@
       departmentQueryController({queryAllLevel: true}).then(res => {
         const data = res.data.treeData;
         this.departData = this.departDtaFormAtter(data);
-        this.option.column[7].dicData=[{oid:'ALLDept',name:'鎵�鏈夐儴闂�',expand:true,disabled:true,children:this.departData}]
-        this.option.column[7].defaultExpandedKeys=['ALLDept'];
-      }).catch(err => {
-        this.$message.error(err);
-      })
+        this.option.column[7].dicData = [{
+          oid: 'ALLDept',
+          name: '鎵�鏈夐儴闂�',
+          expand: true,
+          disabled: true,
+          children: this.departData
+        }]
+        this.option.column[7].defaultExpandedKeys = ['ALLDept'];
+      });
     },
 
     // 鍒嗛厤閮ㄩ棬鏁版嵁杞崲
@@ -538,7 +605,7 @@
 
 <style lang="scss" scoped>
 .password-strategy-container {
-  padding-left: 20px;
+  margin-bottom: 20px;
   display: flex;
   //justify-content: center;
   align-items: center;

--
Gitblit v1.9.3