From ed52d8cb0db78eb8bff70329ac01a38d50d7f672 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期三, 04 十二月 2024 16:20:13 +0800
Subject: [PATCH] 数据授权

---
 Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue       |   27 +++-
 Source/plt-web/plt-web-ui/src/views/system/role/index.vue                       |    4 
 Source/plt-web/plt-web-ui/src/views/system/user/index.vue                       |    9 
 Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue |  257 ++++++++++++++++++++++++++++++++++++------
 Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue    |   12 +-
 5 files changed, 250 insertions(+), 59 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
index 65e61c2..646d117 100644
--- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
+++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
@@ -6,7 +6,7 @@
     :visible.sync="visible"
     append-to-body="true"
     class="avue-dialog"
-    width="830px"
+    width="800px"
     @close="dialogClose">
     <div style="height: 42px;line-height: 30px;margin-top: -5px;" v-if="topMethodsObj !== {} && topMethodsObj">
       <div>
@@ -27,6 +27,7 @@
         :data="data"
         :filter-method="filterMethod"
         :render-content="renderFunc"
+        @change="handleChange"
         :titles="transferTitle"
         filter-placeholder="鍏抽敭璇嶆悳绱�"
         filterable
@@ -82,8 +83,9 @@
           this.data = [];
           newval.forEach((item) => {
             this.data.push({
+              ...item,
               label: item.name,
-              key: item.oid,
+              key: item.oid
             });
           });
           this.loading = false;
@@ -97,8 +99,8 @@
   methods: {
     dialogClose() {
       this.visible = false;
-      this.data = [];
-      this.leftRoleData = [];
+      //this.data = [];
+      //this.rightRoleData = [];
     },
     sendHandler() {
       if (func.isEmptyObject(this.topMethodsObj)) {
@@ -117,6 +119,9 @@
 
       this.visible = false;
     },
+    handleChange(value, direction, movedKeys) {
+      console.log(value, direction, movedKeys);
+    }
   }
 }
 </script>
@@ -124,13 +129,23 @@
 <style lang="scss" scoped>
 /deep/ .el-transfer-panel {
   height: 450px; /* 宸﹀彸涓や釜绌挎妗嗙殑楂樺害鍜屽搴� */
-  width: 300px;
+  width: 322px;
 }
 
 /deep/ .el-transfer-panel__list.is-filterable {
   height: 323px; /* 绌挎妗嗗垪琛ㄩ珮搴� */
 }
-
+/deep/ .el-transfer__buttons .el-button{
+  display: block;
+  margin: 30px 0;
+  padding: 8px 15px;
+}
+/deep/ .el-transfer__button:first-child{
+  transform: translateY(200%);
+}
+/deep/ .el-transfer__button:nth-child(2){
+  transform: translateY(-200%);
+}
 .valueInfo {
   float: left;
   border: 1px solid #E9E7E7;
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue
index fe69008..49865da 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue
@@ -12,23 +12,26 @@
           <fieldset style="width: 48%">
             <legend>&nbsp;涓讳綋 </legend>
             <div>
-              <avue-crud  ref="mainCrud" :data="mainData" :option="mainOption">
+              <avue-crud  ref="mainCrud" :data="mainData" :option="mainOption"
+                          @current-row-change="mainCurrentRowHandler"
+              >
                 <template #type="{ row }">
                   <el-tag v-if="row.type=='鐢ㄦ埛'" :key="row.oid" effect="dark">{{ row.type }}</el-tag>
                   <el-tag v-else-if="row.type=='瑙掕壊'" type="info" :key="row.oid" effect="dark">{{ row.type }}</el-tag>
-                  <el-tag v-else="row.type=='閮ㄩ棬'" type="warning" :key="row.oid" effect="dark">{{ row.type }}</el-tag>
+                  <el-tag v-else="row.type=='鐢ㄦ埛缁�'" type="warning" :key="row.oid" effect="dark">{{ row.type }}</el-tag>
                 </template>
               </avue-crud>
             </div>
           </fieldset>
           <div style="text-align: center;">
-            <el-button icon="el-icon-arrow-right" size="mini" @click="rightHandler" style="margin-bottom: 50px;"></el-button><br/>
-            <el-button icon="el-icon-arrow-left" size="mini" @click="leftHandler"></el-button>
+            <el-button icon="el-icon-arrow-right" type="primary" size="small" @click="rightHandler" style="margin-bottom: 50px;"></el-button><br/>
+            <el-button icon="el-icon-arrow-left" type="primary" size="small" @click="leftHandler"></el-button>
           </div>
           <fieldset style="width: 42%">
             <legend>&nbsp;鎺堟潈涓讳綋 </legend>
             <div>
-              <avue-crud  ref="authCrud" :data="authData" :option="authOption" :table-loading="tableLoading">
+              <avue-crud  ref="authCrud" :data="authData" :option="authOption" :table-loading="tableLoading"
+                @current-row-change="authCurrentRowHandler">
               </avue-crud>
             </div>
           </fieldset>
@@ -112,9 +115,32 @@
     </transfer>
     <!-- 閫夋嫨鐢ㄦ埛绌挎妗�   -->
     <transfer ref="roletransfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData"
-              :transferTitle="['鐜版湁瑙掕壊','鎷ユ湁瑙掕壊']" title="娣诲姞瑙掕壊"
+              :transferTitle="['鐜版湁瑙掕壊','鎷ユ湁瑙掕壊']" title="鍒嗛厤瑙掕壊"
               @transferSend="roleSendHandler">
     </transfer>
+    <!-- 閫夋嫨閮ㄩ棬瀵硅瘽妗�    -->
+    <el-dialog
+      v-dialogDrag
+      v-loading="departLoading"
+      :visible.sync="departVisible"
+      append-to-body="true"
+      class="avue-dialog"
+      title="閫夋嫨閮ㄩ棬"
+      width="50%"
+    >
+      <avue-crud
+        ref="departCrud"
+        :data="departData"
+        :option="departOption"
+        @selection-change="selectDepartChange"
+        @row-click="rowClickDeptHandler"
+      >
+      </avue-crud>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="saveDepartHandler">纭� 瀹�</el-button>
+        <el-button size="small" @click="departVisible = false">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -123,8 +149,8 @@
 import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue";
 import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
 import {getCriteria} from "@/api/queryTemplate/linkTypeQuery";
-import {listUserByUserType} from "@/api/system/user/api";
-import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api";
+import {listUserByUserType, gridRoles, departmentQueryController} from "@/api/system/user/api";
+import func from "@/util/func";
 
 export default {
   name: "dataView",
@@ -159,7 +185,40 @@
       rightUserData: [], // 閫夋嫨鎴愬憳绌挎妗嗗彸渚у垵濮嬫暟鎹�
       leftRoleData: [],  // 閫夋嫨瑙掕壊绌挎妗嗗乏渚у垵濮嬫暟鎹�
       rightRoleData: [], // 閫夋嫨瑙掕壊绌挎妗嗗彸渚у垵濮嬫暟鎹�
+      departCurrenRows: [],
+      departOption: {
+        ...basicOption,
+        addBtn: false,
+        rowKey: 'oid',
+        rowParentKey: 'parentId',
+        selection: true,
+        highlightCurrentRow: true,
+        stripe: false,
+        menu: false,
+        refreshBtn: false,
+        gridBtn: false,
+        header: false,
+        column: [
+          {
+            label: '鍚嶇О',
+            prop: 'name',
+            align: 'left'
+          },
+          {
+            label: '缂栧彿',
+            prop: 'id',
+          },
+          {
+            label: '鎻忚堪',
+            prop: 'description',
+          },
+        ]
+      },
+      departData: [],//閫夋嫨閮ㄩ棬鏁版嵁
+      departLoading: false,
+      departVisible: false,
       mainData:[],
+      mainCurrentRow:{},
       tableLoading: false,
       mainOption: {
         ...basicOption,
@@ -178,7 +237,7 @@
           label: ' 鍒嗙被',
           prop: 'type',
           sortable: true,
-          width:110
+          width:90
         },{
           label: '缂栫爜',
           prop: 'id'
@@ -188,6 +247,7 @@
           }]
       },
       authData:[],
+      authCurrentRow:{},
       authOption:{
         ...basicOption,
         header:false,
@@ -242,7 +302,14 @@
           value: '3',
           disabled:true
         }],
-        value: '0'
+        value: '0',
+        change:function (column,value){
+          if(value=='1' || value=='3'){
+            this.form.btmName=this.btmNode.attributes.name;
+            this.form.levelFlag=0;
+            this.form.queryTemplate={};
+          }
+        }
       }],
       form:{
         btmName:'',
@@ -254,14 +321,14 @@
         "userGroups": "",//鏄剧ず鍒版巿鏉冧富浣撶晫闈紝閮ㄩ棬鍚嶇О锛屽涓娇鐢ㄩ�楀彿鍒嗛殧
         "users": "",//鏄剧ず鍒版巿鏉冧富浣撶晫闈紝鐢ㄦ埛鍚嶇О锛屽涓娇鐢ㄩ�楀彿鍒嗛殧
         "expToSQL": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
-        "identifier": "terminology_query",//涓氬姟绫诲瀷锛坱erminology锛�+涓嬪垝绾匡紙_锛�+鎿嶄綔鍖虹殑涓�鑸搷浣滅殑鎸夐挳鑻辨枃鍚嶇О锛坬uery锛�,澶氫釜鎸夐挳鐨勮瘽鏄鏉℃暟鎹笉鏄娇鐢ㄩ�楀彿鍒嗛殧
+        "identifier": "",//涓氬姟绫诲瀷锛坱erminology锛�+涓嬪垝绾匡紙_锛�+鎿嶄綔鍖虹殑涓�鑸搷浣滅殑鎸夐挳鑻辨枃鍚嶇О锛坬uery锛�,澶氫釜鎸夐挳鐨勮瘽鏄鏉℃暟鎹笉鏄娇鐢ㄩ�楀彿鍒嗛殧
         "isGrand": 49, //姝ゅ涓烘搷浣滃尯鐨勪竴鑸搷浣滅殑鎸夐挳鏄惁涓洪�夋嫨鎯呭喌锛屾湭閫変腑鍊间负48锛岄�変腑涓�49锛岃繖閲屾槸灏�0鍜�1杞负浜哹yte鍊硷紝鎵�浠ヤ负48锛�49
         "lexpToSQL": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
         "lruleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
         "lseniorRuleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
-        "ruleName": "assssss",//瑙勫垯鍚嶇О
+        "ruleName": "",//瑙勫垯鍚嶇О
         "ruleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
-        "ruleType": "2",//0鍏ㄩ儴鍏佽锛�1鍏佽鏉冮檺锛�2鍏ㄩ儴鎷掔粷锛�3鎷掔粷鏉冮檺锛岀敱浜庢殏鏃跺彧鍋氬叏閮ㄥ厑璁镐笌鍏ㄩ儴鎷掔粷锛屾墍浠ユ殏鏃跺彲浠ヤ笉鐢ㄧ
+        "ruleType": "",//0鍏ㄩ儴鍏佽锛�1鍏佽鏉冮檺锛�2鍏ㄩ儴鎷掔粷锛�3鎷掔粷鏉冮檺锛岀敱浜庢殏鏃跺彧鍋氬叏閮ㄥ厑璁镐笌鍏ㄩ儴鎷掔粷锛屾墍浠ユ殏鏃跺彲浠ヤ笉鐢ㄧ
         "seniorRuleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲
       },
       radioForm:0,
@@ -314,24 +381,40 @@
   },
   created() {
     listUserByUserType().then(res => {
-      if(typeof res.data == 'string'){
-        res.data=eval('('+res.data +')')
-      }
       // 缁勮濂界┛姊鍙敤鏁版嵁
       this.leftUserData = res.data.data.map(item => {
         return {
+          ...item,
           name: item.name + `(${item.id})`,
           oid: item.oid
         }
       })
       this.rightUserData = [];
     })
+    gridRoles(1,-1).then(res => {
+      // 缁勮濂界┛姊鍙敤鏁版嵁
+      this.leftRoleData = res.data.data.map(item => {
+        return {
+          ...item,
+          name: item.name ,
+          oid: item.oid
+        }
+      })
+      this.rightRoleData = [];
+    })
+    departmentQueryController({queryAllLevel: true}).then(res => {
+      const data = res.data.treeData;
+      this.departData = this.departDtaFormAtter(data);
+    }).catch(err => {
+      this.$message.error(err);
+    })
   },
   watch: {
     selectRow:{
-      handler(val) {
+      handler(val,oldval) {
         this.authData=[];
         if(val && val.rules){
+          this.form=JSON.parse(JSON.stringify(val.rules));
           //this.getTemp(true);
           //this.getTemp(false)
           //鏋勫缓鎺堟潈涓讳綋鏁版嵁
@@ -362,6 +445,8 @@
               }
             })
           }
+        }else {
+          this.form={};
         }
       },
       immediate: true,
@@ -391,45 +476,135 @@
 
     // 閫変腑鐢ㄦ埛绌挎妗嗗洖濉�
     userSendHandler(row) {
+      this.mainData=this.mainData.filter(item=>{
+        return item.type!='鐢ㄦ埛'
+      })
       row.forEach((item,index)=>{
-        this.authData.push({
-          type:'user',
-          ...item
+        var addItem=this.leftUserData.find(leftitem=>leftitem.oid==item);
+        this.mainData.push({
+          type:'鐢ㄦ埛',
+          id:addItem.id,
+          name:addItem.name.split('(')[0],
+          oid:addItem.oid
         })
       })
+      this.rightUserData=row;
+      this.$refs.usertransfer.visible = false;
     },
     //閫夋嫨瑙掕壊
     roleHandler(){
-      Promise.all([
-        listUserUnInRoleOid({pkRole: this.selectList.oid}),
-        listUserByRoleOid({pkRole: this.selectList.oid})
-      ]).then(([unInRoleRes, byRoleRes]) => {
-        if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) {
-          const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data];
-          // 缁勮濂界┛姊鍙敤鏁版嵁
-          this.leftRoleData = leftData.map(item => {
-            return {
-              name: item.name + `(${item.id})`,
-              oid: item.oid
-            }
-          })
-          this.rightRoleData = byRoleRes.data.data.map(item => item.oid);
-          this.$refs.transfer.visible = true;
-        }
-      });
+      this.$refs.roletransfer.visible = true;
     },
     // 閫夋嫨瑙掕壊绌挎妗嗗洖濉�
     roleSendHandler(row) {
+      this.mainData=this.mainData.filter(item=>{
+        return item.type!='瑙掕壊'
+      })
       row.forEach((item,index)=>{
-        this.authData.push({
-          type:'role',
-          ...item
+        var addItem=this.leftRoleData.find(leftitem=>leftitem.oid==item);
+        this.mainData.push({
+          type:'瑙掕壊',
+          id:addItem.name,
+          name:addItem.name,
+          oid:addItem.oid
         })
       })
+      this.rightRoleData=row;
+      this.$refs.roletransfer.visible = false;
     },
     //閫夋嫨鐢ㄦ埛缁�
     deptHandler(){
-
+      this.departVisible=true;
+    },
+    // 閫夋嫨閮ㄩ棬鏁版嵁杞崲
+    departDtaFormAtter(items) {
+      return items.map(item => {
+        // 杞崲褰撳墠鑺傜偣鐨勫睘鎬�
+        const formList = {
+          oid: item.oid,
+          id: item.attributes.id,
+          name: item.attributes.name,
+          description: item.attributes.description,
+          parentId: item.parentId,
+          parentName: item.parentName,
+          parentBtmName: item.parentBtmName,
+          // 濡傛灉children瀛樺湪涓斾笉涓虹┖锛屽垯閫掑綊杞崲children
+          children: item.children && item.children.length > 0 ? this.departDtaFormAtter(item.children) : undefined
+        };
+        return formList;
+      });
+    },
+    // 閫夋嫨閮ㄩ棬
+    selectDepartChange(row) {
+      this.departCurrenRows = row;
+    },
+    // 閫夋嫨閮ㄩ棬 琛屽崟閫�
+    rowClickDeptHandler(row) {
+      func.rowClickHandler(
+        row,
+        this.$refs.departCrud,
+        this.lastIndex,
+        (newIndex) => { this.lastIndex = newIndex; },
+        () => { this.departCurrenRows = [row]; }
+      );
+    },
+    // 閫夋嫨閮ㄩ棬 纭畾
+    saveDepartHandler() {
+      if (this.departCurrenRows.length==0) {
+        this.$message.warning('璇烽�夋嫨閮ㄩ棬鑺傜偣锛�')
+        return;
+      }
+      this.mainData=this.mainData.filter(item=>{
+        return item.type!='鐢ㄦ埛缁�'
+      })
+      this.departCurrenRows.forEach((addItem,index)=>{
+        this.mainData.push({
+          type:'鐢ㄦ埛缁�',
+          id:addItem.id,
+          name:addItem.name,
+          oid:addItem.oid
+        })
+      })
+      this.departVisible = false;
+    },
+    //涓讳綋鍒楄〃琛岀偣鍑�
+    mainCurrentRowHandler(row){
+      this.mainCurrentRow=row;
+    },
+    //鎺堟潈涓讳綋鍒楄〃琛岀偣鍑�
+    authCurrentRowHandler(row){
+      this.authCurrentRow=row;
+    },
+    rightHandler() {
+      if(func.isEmptyObject(this.mainCurrentRow)){
+        this.$message.warning('璇烽�夋嫨鐢ㄦ埛銆佺敤鎴风粍銆佽鑹蹭俊鎭紒')
+        return;
+      }
+      let name='{' + this.mainCurrentRow.id + ', ' + this.mainCurrentRow.name + ', ';
+      if (this.mainCurrentRow.type == '鐢ㄦ埛') {
+        name+='user}';
+      } else if (this.mainCurrentRow.type == '瑙掕壊') {
+        name+='role}';
+      } else if (this.mainCurrentRow.type == '鐢ㄦ埛缁�') {
+        name+='userGroup}';
+      }
+      let canAdd = !this.authData.some(item => {
+        return item.name == name
+      })
+      if(canAdd) {
+        this.authData.push({
+          name: name
+        })
+        this.$refs.mainCrud.setCurrentRow();
+        this.mainCurrentRow={}
+      }else {
+        this.$message.warning('鎺堟潈涓讳綋淇℃伅閫夋嫨閲嶅锛�')
+      }
+    },
+    leftHandler() {
+      this.authData = this.authData.filter(item => {
+        return item.name != this.authCurrentRow.name
+      })
     },
     initFormData() {
       let formData = {
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
index f8c8799..f1c21f7 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
@@ -47,7 +47,7 @@
           width="70%"
           @close="addDialogClose">
             <div>
-              <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-340"></data-view>
+              <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="title === 'add'?{}:selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-260"></data-view>
             </div>
             <span slot="footer" class="dialog-footer">
                <el-button size="small" type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button>
@@ -170,9 +170,9 @@
     },
     getTableList() {
       getData(this.nodeRow.attributes.name).then(res => {
-        /*if(typeof res.data == 'string'){
+        if(typeof res.data == 'string'){
           res.data=eval('('+res.data +')')
-        }*/
+        }
         if(res.data.obj.tableHeader){
           this.option.column=[ {
             label: '瑙勫垯鍚嶇О',
@@ -255,8 +255,8 @@
     },
     //淇敼
     editHandler(){
-      if (func.isEmptyObject(this.nodeRow)) {
-        this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+      if (func.isEmptyObject(this.selectRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
         return;
       }
       this.title = 'edit';
@@ -278,7 +278,7 @@
     },
     //鍒犻櫎
     delHandler(){
-      if (func.isEmptyObject(this.nodeRow)) {
+      if (func.isEmptyObject(this.selectRow)) {
         this.$message.error('璇烽�夋嫨鏁版嵁');
         return;
       }
diff --git a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
index 64d260f..9858341 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
@@ -182,7 +182,7 @@
         this.$refs.roleCrud,
         this.lastIndex,
         (newIndex) => { this.lastIndex = newIndex; },
-        () => { this.selectList = []; }
+        () => { this.selectList = [row]; }
       );
     },
 
@@ -283,6 +283,8 @@
         listUserUnInRoleOid({pkRole: this.selectList[0].oid}),
         listUserByRoleOid({pkRole: this.selectList[0].oid})
       ]).then(([unInRoleRes, byRoleRes]) => {
+        this.leftRoleData=[];
+        this.rightRoleData=[];
         if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) {
           const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data];
           // 缁勮濂界┛姊鍙敤鏁版嵁
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 3751399..971b60b 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
@@ -61,12 +61,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>
@@ -549,7 +548,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