首次提交

This commit is contained in:
2023-06-04 20:01:58 +08:00
parent 00c64c53bb
commit 587f078d21
560 changed files with 106725 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
import { App } from 'vue'
import permission from './permission'
export default {
install(Vue: App) {
Vue.directive('permission', permission)
},
}

View File

@@ -0,0 +1,30 @@
import { DirectiveBinding } from 'vue'
import { useUserStore } from '@/store'
function checkPermission(el: HTMLElement, binding: DirectiveBinding) {
const { value } = binding
const userStore = useUserStore()
const { role } = userStore
if (Array.isArray(value)) {
if (value.length > 0) {
const permissionValues = value
const hasPermission = permissionValues.includes(role)
if (!hasPermission && el.parentNode) {
el.parentNode.removeChild(el)
}
}
} else {
throw new Error(`没有权限! 该权限为 v-permission="['admin','user']"`)
}
}
export default {
mounted(el: HTMLElement, binding: DirectiveBinding) {
checkPermission(el, binding)
},
updated(el: HTMLElement, binding: DirectiveBinding) {
checkPermission(el, binding)
},
}