diff --git a/src/locales/lang/en.ts b/src/locales/lang/en.ts index b36a6072..7b9a9f2b 100644 --- a/src/locales/lang/en.ts +++ b/src/locales/lang/en.ts @@ -407,5 +407,6 @@ const msg = { detail: "Detail", marketplace: "Marketplace", menus: "Menus", + saveReload: "Save and reload page", }; export default msg; diff --git a/src/locales/lang/es.ts b/src/locales/lang/es.ts index 01175a4f..5b170be5 100644 --- a/src/locales/lang/es.ts +++ b/src/locales/lang/es.ts @@ -406,5 +406,6 @@ const msg = { detail: "Detail", marketplace: "Marketplace", menus: "Menus", + saveReload: "Save and reload page", }; export default msg; diff --git a/src/locales/lang/zh.ts b/src/locales/lang/zh.ts index 689009fa..10ba58a8 100644 --- a/src/locales/lang/zh.ts +++ b/src/locales/lang/zh.ts @@ -404,5 +404,6 @@ const msg = { detail: "详细", marketplace: "市场", menusManagement: "菜单", + saveReload: "保存并重新加载页面", }; export default msg; diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index df7a7557..af48554a 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -172,18 +172,19 @@ export const appStore = defineStore({ ); }, async getActivateMenus() { - // localStorage.removeItem("customMenus"); const resp = (await this.queryMenuItems()) || {}; const menus = (resp.getMenuItems || []).map((d: MenuOptions, index: number) => { const t = `${d.title.replace(/\s+/g, "-")}`; d.name = `${t}-${index}`; d.path = `/${t}`; + d.id = d.name; if (d.subItems && d.subItems.length) { d.hasGroup = true; d.subItems = d.subItems.map((item: any, sub: number) => { const id = `${item.title.replace(/\s+/g, "-")}`; item.name = `${id}-${index}${sub}`; item.path = `/${t}/${id}`; + item.id = item.name; return item; }); } else { @@ -195,6 +196,7 @@ export const appStore = defineStore({ layer: d.layer, activate: d.activate, icon: d.icon, + id: d.id, }, ]; } @@ -226,16 +228,18 @@ export const appStore = defineStore({ await this.getCurrentMenus(); }, getCurrentMenus() { - const current = this.activateMenus.filter((d: MenuOptions) => { - if (this.checkedKeys.includes(d.name)) { - d.subItems = d.subItems.filter((item: any) => { - if (this.checkedKeys.includes(item.name)) { - return item; - } - }); - return d; + const current = []; + for (const d of this.activateMenus) { + const subItems = []; + for (const item of d.subItems) { + if (this.checkedKeys.includes(item.name)) { + subItems.push(item); + } } - }); + if (subItems.length && d.activate) { + current.push({ ...d, subItems }); + } + } this.setCurrentMenus(current); }, async queryOAPTimeInfo() { diff --git a/src/types/app.d.ts b/src/types/app.d.ts index 028e031c..c244348b 100644 --- a/src/types/app.d.ts +++ b/src/types/app.d.ts @@ -55,6 +55,7 @@ export interface MenuOptions { name?: string; path?: string; hasGroup?: boolean; + id?: string; subItems: { layer: string; icon: string; @@ -63,5 +64,6 @@ export interface MenuOptions { name?: string; path?: string; notShow?: boolean; + id?: string; }[]; } diff --git a/src/views/marketplace/Menus.vue b/src/views/marketplace/Menus.vue index 82b316db..d7573134 100644 --- a/src/views/marketplace/Menus.vue +++ b/src/views/marketplace/Menus.vue @@ -25,7 +25,7 @@ limitations under the License. --> /> @@ -46,11 +46,10 @@ limitations under the License. --> appStore.setPageTitle("Menus"); function getCheckedNodes() { - const checkedKeys = treeRef.value!.getCheckedKeys(false); + const checkedKeys = treeRef.value!.getCheckedKeys(false, false); - appStore.setCheckedKeys(checkedKeys); - appStore.getCurrentMenus(); - window.localStorage.setItem("customMenus", JSON.stringify(checkedKeys.value)); + window.localStorage.setItem("customMenus", JSON.stringify(checkedKeys)); + window.location.reload(); }