- 以后端返回数组的格式为例:
['APPLICATION>CREATE', 'BIOMETRIC>DELETE', 'QUOTATION>EDIT', 'CLIENT>DELETE', 'QUOTATION>CREATE', 'USER>VIEW', 'BINARY_DOCUMENT>EDIT']
value >前面的值表示用户可以访问的页面,后面的值表示访问可以做的权限 - 前端代码:
这里我封装了一个函数,可以单独放在一个js文件里面,用的时候直接调用判断;
`
const menuData = ['APPLICATION>CREATE', 'BIOMETRIC>DELETE', 'QUOTATION>EDIT', 'CLIENT>DELETE', 'QUOTATION>CREATE', 'USER>VIEW', 'BINARY_DOCUMENT>EDIT', 'EMAIL>VIEW']; // 假的后端返回用户权限的数据
// eslint-disable-next-line prefer-const
let verify = function (V, S) {
let flat = false; // 用来return的一个中间值
const newMeenuData:Array<any> = [];
S.map(s => {
return newMeenuData.push(s.split('>')); // 分割返回的数据 分割为[“QUOTATION”,“CREATE”];
})
newMeenuData.map(v => {
if (v.includes(V)) {
flat = true;
}
}) // 这里因为事菜单权限,我只需要遍历并判断第一个值就可以了,需要的话可以判断两个值
return flat;
}`
control: verify('ALL_CLIENTS', menuData);