src/directives/permission.js
格式: ruleNames: [] ---> ['getStatistics1,GET', 'getStatistics3,POST']
import store from "~/store"
function hasPermission(value, el = false){
console.log(value,el)
if(!Array.isArray(value)){
throw new Error(`需要配置权限,例如 v-permission="['getStatistics3,GET']"`)
}
const hasAuth = value.findIndex(v=>store.state.ruleNames.includes(v)) != -1
if(el && !hasAuth){
el.parentNode && el.parentNode.removeChild(el)
}
return hasAuth
}
export default {
install(app){
app.directive("permission", {
mounted(el, binding){
hasPermission(binding.value, el)
},
})
}
}
import permission from "./directives/permission"
app.use(permission)
<IndexChart v-permission="['getStatistics3,GET']"></IndexChart>