07 Vue 路由权限控制
v-permission
// directive/permission/permission.js
import router from '@/router'
export default {
inserted(el, binding, vnode) {
const { value } = binding
if (value && value instanceof Array && value.length > 0) {
const currentRoute = router.currentRoute
const hasPermission = value.includes(currentRoute.meta.permission)
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
theow new Error(`need operate permissions! Like v-permission="[1,2]"`)
}
}
}
// directive/permission/index.js
import permission from './permission'
const install = function(Vue) {
Vue.directive('permission', permission)
}
if (window.Vue) {
window['permission'] = permission
Vue.use(install)
}
permission.install = install
export default permissioncheckPermission
最后更新于