ソースを参照

2022-08-26 新增角色

zhuliu 3 年 前
コミット
ee714d7051
2 ファイル変更62 行追加30 行削除
  1. 32 23
      src/views/dataPermission/index.vue
  2. 30 7
      src/views/role/index.vue

+ 32 - 23
src/views/dataPermission/index.vue

@@ -146,7 +146,6 @@
     <el-button @click="toggleSelection([option[1], option[2]])">切换第二、第三行的选中状态</el-button>
     <el-button @click="toggleSelection()">取消选择</el-button>
   </div> -->
-  <el-button @click="toggleSelection([tableData[1], tableData[0]])">切换第二、第三行的选中状态</el-button>
   </div>
 </template>
 
@@ -222,14 +221,15 @@ export default {
         parentId: [{ required: true, message: '请选择所属部门', trigger: 'change' },],
       },
       list:[],
+      times:0
     }
   },
   created(){
     
   },
  
- async mounted() {
-   await this.getList()
+  mounted() {
+    this.getList()
     this.getFunctionList()
     console.log(this.fun)
     // this.func=this.fun
@@ -251,7 +251,7 @@ export default {
         // this.$refs.dataTable.clearSelection()
         this.func = val
       this.getList()
-    
+      
     },
     // func(val,oldval){
     //   if(val!=oldval){
@@ -261,20 +261,23 @@ export default {
     // }
   },
   methods: {
-      toggleSelection(rows) {
-        console.log(rows)
-        if (rows) {
-          rows.forEach(row => {
-            console.log(row)
-            this.$refs.dataTable.toggleRowSelection(row);
-          });
-        } else {
-          this.$refs.multipleTable.clearSelection();
-        }
-      },
-      handleSelectionChange(val) {
-        this.multipleSelection = val;
-      },
+      // toggleSelection(rows) {
+      //   console.log(rows)
+      //   if (rows) {
+      //     this.$nextTick(()=>{
+      //      rows.forEach(row => {
+      //       console.log(row)
+      //       this.$refs.dataTable.toggleRowSelection(row);
+      //     });
+      //     })
+         
+      //   } else {
+      //     this.$refs.multipleTable.clearSelection();
+      //   }
+      // },
+      // handleSelectionChange(val) {
+      //   this.multipleSelection = val;
+      // },
     changeData(selection,row){
       if (selection.length > 1) {
         const del_row = selection.shift()
@@ -402,17 +405,23 @@ export default {
       this.queryParams.current = val;
       this.getList();
     },
-   async getList() {
+    getList() {
+      this.times+=1
       this.loading = true
       this.queryParams.functionId = this.func.fun.id
       console.log(this.queryParams)
       this.$api.getDataList(this.queryParams).then(response => {
         this.tableData = response.data
+    
+       this.$nextTick(()=>{
+       if(this.func.permission){
         console.log(this.func)
-        //  rows.forEach(row => {
-        //     this.$refs.multipleTable.toggleRowSelection(row);
-        //   });
-        this.toggleSelection([this.tableData[1]])
+          //  this.toggleSelection([this.func.permission])
+          this.$refs.dataTable.toggleRowSelection(this.tableData.find(item=>{
+      		return this.func.permission.id == item.id;  
+   		}),true)
+        }
+       })
         console.log(response.data)
         this.loading = false
       }).catch(error => {

+ 30 - 7
src/views/role/index.vue

@@ -78,7 +78,7 @@
                       <el-table-column label="功能名称" align="left" prop="name">
                         <template slot-scope="scope">
                           <el-checkbox-group v-model="checkList" style="display:inline-block" @change="handleCheckedCitiesChange">
-                            <el-checkbox :label="scope.row.id" @change="getFunInfo(scope.row)"
+                            <el-checkbox :label="scope.row.id" @change="getFunInfo(scope.row.id)"
                             >
                               {{scope.row.name}}
                             </el-checkbox>
@@ -199,19 +199,42 @@ export default {
           functionId:id,
           permissionData:data
       }
+      console.log(this.pdata)
     },
     premissSubmit() {
-      if (this.pdata.permissionData) {
+      if(this.permissionData.filter(item=>item.functionId == this.pdata.functionId)[0]){
+        if(this.pdata.permissionData){
+          // console.log(11)
+          this.permissionData.filter(item=>item.functionId == this.pdata.functionId)[0].permissionData = this.pdata.permissionData
+        }else{
+          //  console.log(this.permissionData)
+          var index = this.permissionData.findIndex((item) => {
+              return item.functionId == this.pdata.functionId;
+            });
+        this.permissionData.splice(index,1)
+        }
+        
+      }else{
+         if (this.pdata.permissionData) {
         this.permissionData.push(this.pdata)
-      } else {
-        this.permissionData.shift()
+      } 
+      // else {
+      //   this.permissionData.pop()
+      // }
       }
-      
+     
+      // console.log(this.permissionData)
       this.permissVisible=false
     },
     getFunInfo(val) {
-      // this.fun = val
-      this.functionName = val.name
+      // console.log(this.checkList.includes(val))
+      if(!this.checkList.includes(val)){
+          var index = this.permissionData.findIndex((item) => {
+              return item.functionId == val;
+            });
+        this.permissionData.splice(index,1)
+        // console.log(this.permissionData)
+      }
     },
     handleCheckedCitiesChange(value) {
         // console.log(value)