From 9d194f548c6f40d0eb8f18b28341c8071a1683ef Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Tue, 06 Sep 2022 11:12:07 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhny_web

---
 src/api/system/role.js       |    5 +-
 src/views/authority/role.vue |   62 ++++++++++++++++++++++++++----
 2 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/src/api/system/role.js b/src/api/system/role.js
index 8d34555..7aa6caf 100644
--- a/src/api/system/role.js
+++ b/src/api/system/role.js
@@ -18,7 +18,7 @@
   })
 }
 
-export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds) => {
+export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds,systemIds) => {
   return request({
     url: '/api/blade-system/role/grant',
     method: 'post',
@@ -26,7 +26,8 @@
       roleIds,
       menuIds,
       dataScopeIds,
-      apiScopeIds
+      apiScopeIds,
+      systemIds
     }
   })
 }
diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue
index bd80b24..303a54f 100644
--- a/src/views/authority/role.vue
+++ b/src/views/authority/role.vue
@@ -38,7 +38,7 @@
             </template>
         </avue-crud>
         <el-dialog title="角色权限配置" append-to-body :visible.sync="box" width="345px">
-            <el-tabs type="border-card">
+            <el-tabs stretch="true" type="border-card">
                 <el-tab-pane label="菜单权限">
                     <el-tree
                         :data="menuGrantList"
@@ -49,7 +49,17 @@
                         :props="props"
                     ></el-tree>
                 </el-tab-pane>
-                <el-tab-pane label="数据权限">
+                <el-tab-pane label="系统权限">
+                    <el-tree
+                        :data="systemList"
+                        show-checkbox
+                        node-key="dictKey"
+                        ref="treeSystemScope"
+                        :default-checked-keys="checkedSystem"
+                        :props="propSystem"
+                    ></el-tree>
+                </el-tab-pane>
+                <!-- <el-tab-pane label="数据权限">
                     <el-tree
                         :data="dataScopeGrantList"
                         show-checkbox
@@ -68,7 +78,7 @@
                         :default-checked-keys="apiScopeTreeObj"
                         :props="props"
                     ></el-tree>
-                </el-tab-pane>
+                </el-tab-pane> -->
             </el-tabs>
 
             <span slot="footer" class="dialog-footer">
@@ -81,10 +91,11 @@
 
 <script>
 import { add, getList, getRole, getRoleTreeById, grant, grantTree, remove, update } from "@/api/system/role"
+import {getDictionary} from "@/api/system/dictbiz"
 import { mapGetters } from "vuex"
 import website from '@/config/website'
-
 export default {
+
     data () {
         return {
             form: {},
@@ -92,6 +103,10 @@
             props: {
                 label: "title",
                 value: "key"
+            },
+            propSystem:{
+                label:"dictValue",
+                value:"dictKey"
             },
             menuGrantList: [],
             dataScopeGrantList: [],
@@ -204,7 +219,11 @@
                     }
                 ]
             },
-            data: []
+            data: [],
+            checkAll: false,
+            checkedSystem: [],
+            systemList: [],
+            isIndeterminate: true
         }
     },
     computed: {
@@ -242,9 +261,13 @@
         },
         submit () {
             const menuList = this.$refs.treeMenu.getCheckedKeys()
-            const dataScopeList = this.$refs.treeDataScope.getCheckedKeys()
-            const apiScopeList = this.$refs.treeApiScope.getCheckedKeys()
-            grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => {
+            // const dataScopeList = this.$refs.treeDataScope.getCheckedKeys()
+            // const apiScopeList = this.$refs.treeApiScope.getCheckedKeys()
+            const dataScopeList = []
+            const apiScopeList = []
+            const systemLists = this.$refs.treeSystemScope.getCheckedKeys()
+            const systemIds = systemLists.join(",")
+            grant(this.idsArray, menuList, dataScopeList, apiScopeList,systemIds).then(() => {
                 this.box = false
                 this.$message({
                     type: "success",
@@ -252,6 +275,7 @@
                 })
                 this.onLoad(this.page)
             })
+
         },
         rowSave (row, done, loading) {
             add(row).then(() => {
@@ -333,13 +357,26 @@
                     this.menuGrantList = res.data.data.menu
                     this.dataScopeGrantList = res.data.data.dataScope
                     this.apiScopeGrantList = res.data.data.apiScope
+                    getDictionary({code:"system"}).then(res=>{
+                        if(res.data.code == 200){
+                            this.systemList = res.data.data
+
+                        }
+                    })
                     getRole(this.ids).then(res => {
+                        if(res.data.data.systemIds){
+                            this.checkedSystem = res.data.data.systemIds.split(",")
+                        }else{
+                            this.checkedSystem = []
+                        }
+
                         this.menuTreeObj = res.data.data.menu
                         this.dataScopeTreeObj = res.data.data.dataScope
                         this.apiScopeTreeObj = res.data.data.apiScope
                         this.box = true
                     })
                 })
+            
         },
         handleDelete () {
             if (this.selectionList.length === 0) {
@@ -379,7 +416,14 @@
                 this.loading = false
                 this.selectionClear()
             })
-        }
+        },
+        handleCheckAllChange(val) {
+            this.checkedSystem = val ? this.systemList : [];
+            this.isIndeterminate = false;
+        },
+        handleCheckedChange(value) {
+
+        },
     }
 };
 </script>

--
Gitblit v1.9.3