From b0603199a5ae0ee923483dad449f49220d36f444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=87=AF=E9=BE=99?= <502431556@qq.com> Date: Thu, 14 Apr 2022 09:25:10 +0800 Subject: [PATCH] perf: add uniqueopened setting --- src/components/Menu/src/Menu.vue | 3 +++ src/components/Setting/src/Setting.vue | 2 ++ .../Setting/src/components/InterfaceDisplay.vue | 12 ++++++++++++ src/config/app.ts | 2 ++ src/locales/en.ts | 3 ++- src/locales/zh-CN.ts | 3 ++- src/store/modules/app.ts | 6 ++++++ 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/components/Menu/src/Menu.vue b/src/components/Menu/src/Menu.vue index 7c55d22..bf2eebe 100644 --- a/src/components/Menu/src/Menu.vue +++ b/src/components/Menu/src/Menu.vue @@ -47,6 +47,8 @@ export default defineComponent({ const collapse = computed(() => appStore.getCollapse) + const uniqueOpened = computed(() => appStore.getUniqueOpened) + const activeMenu = computed(() => { const { meta, path } = unref(currentRoute) // if set path, the sidebar will highlight the path you set @@ -87,6 +89,7 @@ export default defineComponent({ collapse={ unref(layout) === 'top' || unref(layout) === 'cutMenu' ? false : unref(collapse) } + uniqueOpened={unref(layout) === 'top' ? false : unref(uniqueOpened)} backgroundColor="var(--left-menu-bg-color)" textColor="var(--left-menu-text-color)" activeTextColor="var(--left-menu-text-active-color)" diff --git a/src/components/Setting/src/Setting.vue b/src/components/Setting/src/Setting.vue index 36582df..94d328f 100644 --- a/src/components/Setting/src/Setting.vue +++ b/src/components/Setting/src/Setting.vue @@ -130,6 +130,8 @@ const copyConfig = async () => { tagsView: ${appStore.getTagsView}, // logo logo: ${appStore.getLogo}, + // 菜单手风琴 + uniqueOpened: ${appStore.getUniqueOpened}, // 固定header fixedHeader: ${appStore.getFixedHeader}, // 页脚 diff --git a/src/components/Setting/src/components/InterfaceDisplay.vue b/src/components/Setting/src/components/InterfaceDisplay.vue index 484febb..bc3749c 100644 --- a/src/components/Setting/src/components/InterfaceDisplay.vue +++ b/src/components/Setting/src/components/InterfaceDisplay.vue @@ -72,6 +72,13 @@ const logoChange = (show: boolean) => { appStore.setLogo(show) } +// 菜单手风琴 +const uniqueOpened = ref(appStore.getUniqueOpened) + +const uniqueOpenedChange = (uniqueOpened: boolean) => { + appStore.setUniqueOpened(uniqueOpened) +} + // 固定头部 const fixedHeader = ref(appStore.getFixedHeader) @@ -147,6 +154,11 @@ watch( +
+ {{ t('setting.uniqueOpened') }} + +
+
{{ t('setting.fixedHeader') }} diff --git a/src/config/app.ts b/src/config/app.ts index 296b587..3d20f6e 100644 --- a/src/config/app.ts +++ b/src/config/app.ts @@ -24,6 +24,7 @@ export interface AppState { breadcrumb: boolean breadcrumbIcon: boolean collapse: boolean + uniqueOpened: boolean hamburger: boolean screenfull: boolean size: boolean @@ -54,6 +55,7 @@ export const appModules: AppState = { breadcrumb: true, // 面包屑 breadcrumbIcon: true, // 面包屑图标 collapse: false, // 折叠菜单 + uniqueOpened: false, // 是否只保持一个子菜单的展开 hamburger: true, // 折叠图标 screenfull: true, // 全屏图标 size: true, // 尺寸图标 diff --git a/src/locales/en.ts b/src/locales/en.ts index 16f6361..8505d45 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -72,7 +72,8 @@ export default { clearAndReset: 'Clear cache and reset', copySuccess: 'Copy success', copyFailed: 'Copy failed', - footer: 'Footer' + footer: 'Footer', + uniqueOpened: 'Unique opened' }, size: { default: 'Default', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index daba403..1235726 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -72,7 +72,8 @@ export default { clearAndReset: '清除缓存并且重置', copySuccess: '拷贝成功', copyFailed: '拷贝失败', - footer: '页脚' + footer: '页脚', + uniqueOpened: '菜单手风琴' }, size: { default: '默认', diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index c88cb50..9ffa53a 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -24,6 +24,9 @@ export const useAppStore = defineStore({ getCollapse(): boolean { return this.collapse }, + getUniqueOpened(): boolean { + return this.uniqueOpened + }, getHamburger(): boolean { return this.hamburger }, @@ -89,6 +92,9 @@ export const useAppStore = defineStore({ setCollapse(collapse: boolean) { this.collapse = collapse }, + setUniqueOpened(uniqueOpened: boolean) { + this.uniqueOpened = uniqueOpened + }, setHamburger(hamburger: boolean) { this.hamburger = hamburger },