123456789101112131415161718192021222324252627282930313233343536373839 |
- import { useUserStore } from '@/stores/modules/user';
- import { MenuType } from '@/enum/app';
- function checkAction(el: any, action: any) {
- if (action.value && typeof action.value === 'string') {
- const userStore = useUserStore();
- const permissions = userStore.getPermissions;
- action = action.value.replace('@', '.').toLowerCase();
-
- const hasAction = permissions?.some(permission => {
- if (permission.type === MenuType.Button_Type) {
- const a: string =
- permission.module +
- '.' +
- permission.permission_mark.replace('@', '.');
- return action === a.toLowerCase();
- }
- });
- if (!hasAction) {
- // el.style.display = 'none'
- el.parentNode && el.parentNode.removeChild(el);
- }
- } else {
- throw new Error(
- `need action! Like v-action="module.controller.action" || v-action="module@controller@action" `
- );
- }
- }
- export default {
- mounted(el: any, binding: any) {
- checkAction(el, binding);
- },
- updated(el: any, binding: any) {
- checkAction(el, binding);
- }
- };
|