From dc48bf4880ea02f697b6e8dab848df76b6033a52 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Wed, 27 Nov 2024 11:17:38 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=90=88=E5=B9=B6=20directives=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=88=B0=20plugins=20=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/directives/index.ts | 7 ------- src/main.ts | 6 +----- src/plugins/index.ts | 4 +++- .../permission.ts => plugins/permission-directive.ts} | 8 ++++++-- 4 files changed, 10 insertions(+), 15 deletions(-) delete mode 100644 src/directives/index.ts rename src/{directives/permission.ts => plugins/permission-directive.ts} (79%) diff --git a/src/directives/index.ts b/src/directives/index.ts deleted file mode 100644 index e4cdc06a..00000000 --- a/src/directives/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { App } from "vue" -import { permission } from "./permission" - -/** 加载自定义指令 */ -export function loadDirectives(app: App) { - app.directive("permission", permission) -} diff --git a/src/main.ts b/src/main.ts index 94e9e496..cb9817f8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,7 +4,6 @@ import { pinia } from "@/pinia" import { router } from "@/router" import { createApp } from "vue" // load -import { loadDirectives } from "@/directives" import { loadPlugins } from "@/plugins" // css import "uno.css" @@ -17,12 +16,9 @@ import "@@/assets/styles/index.scss" const app = createApp(App) -// 加载插件 +// 加载插件(全局组件、自定义指令等) loadPlugins(app) -// 加载自定义指令 -loadDirectives(app) - app.use(pinia).use(router) router.isReady().then(() => { diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 7d84900a..353652df 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,12 +1,14 @@ import type { App } from "vue" import { loadElementPlus } from "./element-plus" import { loadElementPlusIcons } from "./element-plus-icons" +import { loadPermissionDirective } from "./permission-directive" import { loadSvgIcons } from "./svg-icons" import { loadVxeTable } from "./vxe-table" export function loadPlugins(app: App) { loadElementPlus(app) loadElementPlusIcons(app) - loadVxeTable(app) + loadPermissionDirective(app) loadSvgIcons(app) + loadVxeTable(app) } diff --git a/src/directives/permission.ts b/src/plugins/permission-directive.ts similarity index 79% rename from src/directives/permission.ts rename to src/plugins/permission-directive.ts index d833ec97..9419cc2d 100644 --- a/src/directives/permission.ts +++ b/src/plugins/permission-directive.ts @@ -1,4 +1,4 @@ -import type { Directive } from "vue" +import type { App, Directive } from "vue" import { useUserStore } from "@/pinia/stores/user" import { isArray } from "@@/utils/validate" @@ -6,7 +6,7 @@ import { isArray } from "@@/utils/validate" * @name 权限指令 * @description 和权限判断函数 checkPermission 功能类似 */ -export const permission: Directive = { +const permission: Directive = { mounted(el, binding) { const { value: permissionRoles } = binding const { roles } = useUserStore() @@ -19,3 +19,7 @@ export const permission: Directive = { } } } + +export function loadPermissionDirective(app: App) { + app.directive("permission", permission) +}