From 12116a89f43cf8b98f16d2ea6073f6b72a643215 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 20 Oct 2024 01:54:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=99=AE=E9=80=9A=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui/certd-client/src/App.vue | 4 +- .../domains-verify-plan-editor/validator.ts | 1 - .../src/layout/components/menu/index.tsx | 2 +- .../src/plugin/permission/store.permission.ts | 8 +++ packages/ui/certd-client/src/router/index.ts | 6 +- .../src/router/source/modules/sys.ts | 2 +- .../src/store/modules/resource.ts | 62 +++++++++++-------- .../ui/certd-client/src/store/modules/user.ts | 14 +---- .../views/certd/pipeline/certd-form/crud.tsx | 1 - .../pipeline/component/step-form/index.vue | 1 - .../src/views/sys/cname/provider/crud.tsx | 1 + 11 files changed, 53 insertions(+), 49 deletions(-) diff --git a/packages/ui/certd-client/src/App.vue b/packages/ui/certd-client/src/App.vue index d1e432ab4..36f5f1214 100644 --- a/packages/ui/certd-client/src/App.vue +++ b/packages/ui/certd-client/src/App.vue @@ -47,8 +47,8 @@ provide("fn:router.reload", reload); provide("fn:locale.changed", localeChanged); //其他初始化 -const resourceStore = useResourceStore(); -resourceStore.init(); +// const resourceStore = useResourceStore(); +// resourceStore.init(); const pageStore = usePageStore(); pageStore.init(); const settingStore = useSettingStore(); diff --git a/packages/ui/certd-client/src/components/plugins/cert/domains-verify-plan-editor/validator.ts b/packages/ui/certd-client/src/components/plugins/cert/domains-verify-plan-editor/validator.ts index 1df53c6a0..411b5b69e 100644 --- a/packages/ui/certd-client/src/components/plugins/cert/domains-verify-plan-editor/validator.ts +++ b/packages/ui/certd-client/src/components/plugins/cert/domains-verify-plan-editor/validator.ts @@ -2,7 +2,6 @@ import Validator from "async-validator"; import { DomainsVerifyPlanInput } from "./type"; function checkCnameVerifyPlan(rule, value: DomainsVerifyPlanInput) { - debugger; if (value == null) { return true; } diff --git a/packages/ui/certd-client/src/layout/components/menu/index.tsx b/packages/ui/certd-client/src/layout/components/menu/index.tsx index 3cdb29154..e88e4395b 100644 --- a/packages/ui/certd-client/src/layout/components/menu/index.tsx +++ b/packages/ui/certd-client/src/layout/components/menu/index.tsx @@ -131,7 +131,7 @@ export default defineComponent({ open(sub.path); } } - slots.push(); + slots.push(); } else { slots.push( diff --git a/packages/ui/certd-client/src/plugin/permission/store.permission.ts b/packages/ui/certd-client/src/plugin/permission/store.permission.ts index a5d4cf251..e6cae2f74 100644 --- a/packages/ui/certd-client/src/plugin/permission/store.permission.ts +++ b/packages/ui/certd-client/src/plugin/permission/store.permission.ts @@ -6,10 +6,17 @@ import { env } from "/@/utils/util.env"; //监听注销事件 mitter.on("app.logout", () => { + debugger; const permissionStore = usePermissionStore(); permissionStore.clear(); }); +mitter.on("app.login", () => { + const permissionStore = useResourceStore(); + permissionStore.clear(); + permissionStore.init(); +}); + interface PermissionState { permissions: []; inited: boolean; @@ -73,6 +80,7 @@ export const usePermissionStore = defineStore({ resourceStore.filterByPermission(permissions); }, async loadFromRemote() { + debugger; let permissionTree = []; if (env.PM_ENABLED === "false") { console.warn("当前权限模块未开启,权限列表为空"); diff --git a/packages/ui/certd-client/src/router/index.ts b/packages/ui/certd-client/src/router/index.ts index 553683291..ab6a9bb44 100644 --- a/packages/ui/certd-client/src/router/index.ts +++ b/packages/ui/certd-client/src/router/index.ts @@ -22,6 +22,8 @@ router.beforeEach(async (to, from, next) => { NProgress.start(); const settingStore = useSettingStore(); await settingStore.initOnce(); + const resourceStore = useResourceStore(); + resourceStore.init(); // 修复三级以上路由页面无法缓存的问题 if (to.matched && to.matched.length > 2) { to.matched.splice(1, to.matched.length - 2); @@ -37,11 +39,11 @@ router.beforeEach(async (to, from, next) => { // 请根据自身业务需要修改 const token = userStore.getToken; if (token) { - await userStore.init(); next(); } else { // 没有登录的时候跳转到登录界面 // 携带上登陆成功之后需要跳转的页面完整路径 + resourceStore.clear(); next({ name: "login", query: { @@ -73,7 +75,7 @@ router.afterEach((to: any) => { const matched = to.matched; if (matched.length > 0) { const resourceStore = useResourceStore(); - resourceStore.setAsideMenuByCurrentRoute(matched); + resourceStore.setCurrentTopMenuByCurrentRoute(matched); } }); export default router; diff --git a/packages/ui/certd-client/src/router/source/modules/sys.ts b/packages/ui/certd-client/src/router/source/modules/sys.ts index b4a83b788..888c907ff 100644 --- a/packages/ui/certd-client/src/router/source/modules/sys.ts +++ b/packages/ui/certd-client/src/router/source/modules/sys.ts @@ -10,7 +10,7 @@ export const sysResources = [ component: LayoutPass, meta: { icon: "ion:settings-outline", - permission: "sys" + permission: "sys:settings:view" }, children: [ { diff --git a/packages/ui/certd-client/src/store/modules/resource.ts b/packages/ui/certd-client/src/store/modules/resource.ts index 58d8fc49b..99adca658 100644 --- a/packages/ui/certd-client/src/store/modules/resource.ts +++ b/packages/ui/certd-client/src/store/modules/resource.ts @@ -4,46 +4,56 @@ import { frameworkMenus, headerMenus, filterMenus, findMenus } from "/src/router import _ from "lodash-es"; import { mitter } from "/src/utils/util.mitt"; //监听注销事件 -mitter.on("app.logout", () => { - const resourceStore = useResourceStore(); - resourceStore.clear(); -}); +// mitter.on("app.logout", () => { +// debugger; +// const resourceStore = useResourceStore(); +// resourceStore.clear(); +// }); +// +// mitter.on("app.login", () => { +// const resourceStore = useResourceStore(); +// resourceStore.clear(); +// resourceStore.init(); +// }); interface ResourceState { - frameworkMenus: Array; + topMenus: Array; + authedTopMenus: Array; headerMenus: Array; asideMenus: Array; fixedAsideMenus: Array; inited: boolean; - currentAsidePath: string; + currentTopMenu?: string; + currentAsidePath?: string; } export const useResourceStore = defineStore({ id: "app.resource", state: (): ResourceState => ({ // user info - frameworkMenus: [], + topMenus: [], + authedTopMenus: [], headerMenus: [], - asideMenus: [], fixedAsideMenus: [], inited: false, - currentAsidePath: "" + currentTopMenu: undefined, + currentAsidePath: undefined }), getters: { - // @ts-ignore getAsideMenus() { - // @ts-ignore - return this.asideMenus; + let topMenu = this.currentTopMenu; + if (!topMenu && this.authedTopMenus.length > 0) { + topMenu = this.authedTopMenus[0]; + } + let asideMenus = topMenu?.children || []; + asideMenus = [...this.fixedAsideMenus, ...asideMenus]; + return asideMenus; }, - // @ts-ignore getHeaderMenus() { - // @ts-ignore return this.headerMenus; }, - // @ts-ignore getFrameworkMenus() { - // @ts-ignore - return this.frameworkMenus; + return this.authedTopMenus; } } as any, actions: { @@ -59,28 +69,26 @@ export const useResourceStore = defineStore({ } this.inited = true; - const showMenus = _.cloneDeep(frameworkMenus[0].children); - this.frameworkMenus = filterMenus(showMenus, (item: any) => { + const allMenus = _.cloneDeep(frameworkMenus[0].children); + this.topMenus = filterMenus(allMenus, (item: any) => { return item?.meta?.showOnHeader !== false; }); - this.fixedAsideMenus = findMenus(showMenus, (item: any) => { + this.fixedAsideMenus = findMenus(allMenus, (item: any) => { return item?.meta?.fixedAside === true; }); this.headerMenus = headerMenus; - this.setAsideMenu(); }, - setAsideMenu(topMenu?: any) { + setCurrentTopMenu(topMenu?: any) { if (this.frameworkMenus.length === 0) { return; } if (topMenu == null) { topMenu = this.frameworkMenus[0]; } - const asideMenus = topMenu?.children || []; - this.asideMenus = [...this.fixedAsideMenus, ...asideMenus]; + this.currentTopMenu = topMenu; }, - setAsideMenuByCurrentRoute(matched: any) { + setCurrentTopMenuByCurrentRoute(matched: any) { const menuHeader = this.frameworkMenus; if (matched?.length <= 1) { return; @@ -109,11 +117,11 @@ export const useResourceStore = defineStore({ return; } this.currentAsidePath = _side[0]; - this.setAsideMenu(_side[0]); + this.setCurrentTopMenu(_side[0]); } }, filterByPermission(permissions: any) { - this.frameworkMenus = this.filterChildrenByPermission(this.frameworkMenus, permissions); + this.authedTopMenus = this.filterChildrenByPermission(this.topMenus, permissions); }, filterChildrenByPermission(list: any, permissions: any) { const menus = list.filter((item: any) => { diff --git a/packages/ui/certd-client/src/store/modules/user.ts b/packages/ui/certd-client/src/store/modules/user.ts index 7ce198aaa..faeba1772 100644 --- a/packages/ui/certd-client/src/store/modules/user.ts +++ b/packages/ui/certd-client/src/store/modules/user.ts @@ -15,7 +15,6 @@ import { mitter } from "/src/utils/util.mitt"; interface UserState { userInfo: Nullable; token?: string; - inited: boolean; } const USER_INFO_KEY = "USER_INFO"; @@ -26,8 +25,7 @@ export const useUserStore = defineStore({ // user info userInfo: null, // token - token: undefined, - inited: false + token: undefined }), getters: { getUserInfo(): UserInfoRes { @@ -114,16 +112,6 @@ export const useUserStore = defineStore({ await this.logout(true); } }); - }, - async init() { - if (this.inited) { - return; - } - this.inited = true; - }, - async reInit() { - this.inited = false; - await this.init(); } } }); diff --git a/packages/ui/certd-client/src/views/certd/pipeline/certd-form/crud.tsx b/packages/ui/certd-client/src/views/certd/pipeline/certd-form/crud.tsx index dd893124d..62bc6abf2 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/certd-form/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/pipeline/certd-form/crud.tsx @@ -76,7 +76,6 @@ export default function (certPluginGroup: PluginGroup, formWrapperRef: any): Cre }, valueChange: { handle: async ({ form, value }) => { - debugger; const config = await api.GetPluginConfig({ name: value, type: "builtIn" diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/step-form/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/step-form/index.vue index 62f5b856b..8bb6a908f 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/step-form/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/step-form/index.vue @@ -256,7 +256,6 @@ export default { } } //设置系统初始值 - debugger; const pluginSysConfig = await pluginApi.GetPluginConfig({ name: pluginDefine.name, type: "builtIn" }); if (pluginSysConfig.sysSetting?.input) { for (const key in pluginSysConfig.sysSetting?.input) { diff --git a/packages/ui/certd-client/src/views/sys/cname/provider/crud.tsx b/packages/ui/certd-client/src/views/sys/cname/provider/crud.tsx index daa8c2dbe..4e80e34e2 100644 --- a/packages/ui/certd-client/src/views/sys/cname/provider/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/cname/provider/crud.tsx @@ -130,6 +130,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat component: { name: "access-selector", vModel: "modelValue", + from: "sys", type: compute(({ form }) => { return form.dnsProviderType; })