/* * @Author: levi7754 levi7754@163.com * @Date: 2023-06-19 09:14:18 * @LastEditors: levi7754 levi7754@163.com * @LastEditTime: 2024-04-14 20:39:45 * @FilePath: /udp-front/packages/udp-core/src/directives/permission/index.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import { usePermissionStoreHook } from '../../store/modules/permission'; import type { Directive } from 'vue'; import { router } from '../../router'; import type { DirectiveBinding } from 'vue'; export const auth: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const { value } = binding; if (value) { const prefixAuth = router.currentRoute.value.meta?.prefixAuth; const authRoles = `${prefixAuth}.${value}`; const buttonAuth = usePermissionStoreHook().getButtonAuth; const hasAuth = buttonAuth.includes(authRoles); if (!hasAuth) { el.parentNode.removeChild(el); } } else { throw new Error("need roles! Like v-auth=\"['admin','test']\""); } } };