一般开发的系统中包含下面三种权限控制方式,使用权限控制前需导入权限资源且定义permission变量,如下例子:
import * as permission from '../../../../utils/permission'
export default {
data() {
return {
permission: permission
}
}
}
1. 组件及标签的现实与隐藏控制。
<i-button size="small" icon="" v-auth="permission.ZNSW_SUB" @click="openAddModel">新增</i-button>
2.列表中操作按钮通过定义指令控制按钮的显示与隐藏。
{
title: '操作',
align: 'center',
width: 130,
fixed: "right",
render: (h, params) => {
return h('div', [
h('a', {
style: {
marginRight: "10px"
},
on: {
click: () => {
this.$refs.editRef.loadData(params.row.id);
this.editModel = true;
}
},
directives: [
{
name: "auth",
value: this.permission.ZNSW_SUB
}
]
}, '修改'),
h('a', {
style: {
marginRight: "10px"
},
on: {
click: () => {
this.deleteModal = true;
this.deleteModel = 0;
this.rowIndex = params.index
}
},
directives: [
{
name: "auth",
value: this.permission.ZNSW_SUB
}
]
}, "删除"),
h('a', {
style: {},
on: {
click: () => {
this.$refs.viewRef.loadData(params.row.id);
this.detailModal = !this.detailModal
}
}
}, '详情'),
])
}
},
3.具体方法中可以直接通过判断实现。
if (Vue.auth(this, permission.FILE_DIR_OPTION)|| Vue.auth(this, permission.FOLDER_CREATE)) {
}
中宁水务项目定义权限资源有:
export const ZNSW_TEAM = 'znsw:team' 班组操作权限
export const ZNSW_SUB = 'znsw:sub' 子公司操作权限
可以根据实际情况把除检查外的其他录入模块进行权限控制,班组无权限录入与修改,只有子公司有录入权限。实际情况只需配置子公司权限,班组不予分配也就看不到,不用做各种情况判断,可参照教育培训修改。