zhangwei
2025-06-18 19aef84d40fbe37b8ee49cdc14186261d8b928f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { hasAuth } from "@/router/utils";
import type { Directive, DirectiveBinding } from "vue";
 
export const auth: Directive = {
  mounted(el: HTMLElement, binding: DirectiveBinding<string | Array<string>>) {
    const { value } = binding;
    if (value) {
      !hasAuth(value) && el.parentNode?.removeChild(el);
    } else {
      throw new Error(
        "[Directive: auth]: need auths! Like v-auth=\"['btn.add','btn.edit']\""
      );
    }
  }
};