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, + }, +});