智慧农业后台管理页面
guanqb
2022-09-06 9d194f548c6f40d0eb8f18b28341c8071a1683ef
Merge branch 'master' of http://192.168.0.105:10010/r/zhny_web
2 files modified
67 ■■■■ changed files
src/api/system/role.js 5 ●●●●● patch | view | raw | blame | history
src/views/authority/role.vue 62 ●●●● patch | view | raw | blame | history
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
    }
  })
}
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>