permission.js
872 Bytes
import store from '@/store'
export default {
inserted(el, binding, vnode) {
const { value } = binding
const permissionList = store.getters && store.getters.permissionList
if (!value) return el.parentNode && el.parentNode.removeChild(el)
const modelId = vnode.context._routerRoot._route.meta.modelId || ''
if (!modelId) return el.parentNode && el.parentNode.removeChild(el)
const list = permissionList.filter(o => o.modelId === modelId)
if (!list.length) return el.parentNode && el.parentNode.removeChild(el)
const btnList = list[0] && list[0].button ? list[0].button : []
if (!btnList.length) {
el.parentNode && el.parentNode.removeChild(el)
} else {
const hasPermission = btnList.some(btn => btn.enCode === value)
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
}
}
}