1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- * @Author: your name
- * @Date: 2021-11-01 10:33:45
- * @LastEditTime: 2021-12-28 11:34:01
- * @LastEditors: Please set LastEditors
- * @Description: In User Settings Edit
- * @FilePath: \Foshan4A\src\config\checkPermission.js
- */
- import Vue from 'vue'
- import store from '@/store'
- function checkPermission (el, binding) {
- const { value } = binding
- const roles = store.getters && store.getters.roles
- if (value && value instanceof Array) {
- if (value.length > 0) {
- const permissionRoles = value
- const hasPermission = roles.some(role => {
- return permissionRoles.includes(role)
- })
- if (!hasPermission) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- }
- } else {
- throw new Error(`need roles! Like v-is="['admin','editor']"`)
- }
- }
- Vue.directive(
- 'is', {
- inserted (el, binding) {
- checkPermission(el, binding)
- },
- update (el, binding) {
- checkPermission(el, binding)
- }
- }
- )
|