permission.js
820 Bytes
import store from '@/store';
/**
* TODO 跟动态菜单走
* @param {Array|String} value
* @returns {Boolean}
* @example see @/views/permission/directive.vue
*/
export default function checkPermission(value) {
if (value && typeof value === 'string') {
value = [value];
}
if (value && value instanceof Array && value.length > 0) {
const permissions = store.getters && store.getters.permissions;
const needPermissions = value;
const hasPermission = permissions.some(permission => {
return needPermissions.includes(permission);
});
if (!hasPermission) {
return false;
}
return true;
} else {
console.error(`need permissions! Like v-permission="['user:list','user:add']"`);
return false;
}
}