From 8462973a8a44aa0ba4264d743d4486a606d80234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Fri, 10 Feb 2023 23:20:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96:=20?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=9D=83=E9=99=90=E7=AE=A1=E6=8E=A7=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/.env.production | 5 +++- web/src/plugin/permission/index.ts | 10 +++++++ web/src/plugin/permission/store.permission.ts | 26 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 web/src/plugin/permission/index.ts create mode 100644 web/src/plugin/permission/store.permission.ts diff --git a/web/.env.production b/web/.env.production index 0336f50..74257c6 100644 --- a/web/.env.production +++ b/web/.env.production @@ -2,4 +2,7 @@ ENV = 'production' # 线上环境接口地址 -VITE_API_URL = 'https://lyt-top.gitee.io/vue-next-admin-preview/' \ No newline at end of file +VITE_API_URL = 'https://lyt-top.gitee.io/vue-next-admin-preview/' + +# 是否启用按钮权限 +VITE_PM_ENABLED = true diff --git a/web/src/plugin/permission/index.ts b/web/src/plugin/permission/index.ts new file mode 100644 index 0000000..b519bd0 --- /dev/null +++ b/web/src/plugin/permission/index.ts @@ -0,0 +1,10 @@ +import permissionDirective from './directive.permission' +import permissionFunc from './func.permission' +const install = function (app:any) { + app.directive('permission', permissionDirective) + app.provide('$hasPermissions',permissionFunc.hasPermissions) +} + +export default { + install +} diff --git a/web/src/plugin/permission/store.permission.ts b/web/src/plugin/permission/store.permission.ts new file mode 100644 index 0000000..2879628 --- /dev/null +++ b/web/src/plugin/permission/store.permission.ts @@ -0,0 +1,26 @@ +import {defineStore} from "pinia"; +import {DictionaryStates} from "/@/stores/interface"; +import {request} from "/@/utils/service"; + +export const BtnPermissionStore = defineStore('BtnPermission', { + state: (): DictionaryStates => ({ + data: [] + }), + actions: { + async getBtnPermissionStore() { + request({ + url: '/api/system/menu_button/menu_button_all_permission/', + method: 'get', + }).then((ret: { + data: [] + }) => { + // 转换数据格式并保存到pinia + let dataList = ret.data + this.data=dataList + }) + }, + }, + persist: { + enabled: true, + }, +});