perf(menu): mixSideTrigger setting (#155)
This commit is contained in:
parent
af55511bd6
commit
e821f4c706
|
|
@ -43,3 +43,8 @@ export enum TopMenuAlignEnum {
|
||||||
START = 'start',
|
START = 'start',
|
||||||
END = 'end',
|
END = 'end',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum MixSidebarTriggerEnum {
|
||||||
|
HOVER = 'hover',
|
||||||
|
CLICK = 'click',
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import {
|
||||||
getMenuTriggerOptions,
|
getMenuTriggerOptions,
|
||||||
routerTransitionOptions,
|
routerTransitionOptions,
|
||||||
menuTypeList,
|
menuTypeList,
|
||||||
|
mixSidebarTriggerOptions,
|
||||||
} from './enum';
|
} from './enum';
|
||||||
|
|
||||||
import { HEADER_PRESET_BG_COLOR_LIST, SIDE_BAR_BG_COLOR_LIST } from '/@/settings/colorSetting';
|
import { HEADER_PRESET_BG_COLOR_LIST, SIDE_BAR_BG_COLOR_LIST } from '/@/settings/colorSetting';
|
||||||
|
|
@ -73,6 +74,7 @@ export default defineComponent({
|
||||||
getSplit,
|
getSplit,
|
||||||
getIsMixSidebar,
|
getIsMixSidebar,
|
||||||
getCloseMixSidebarOnChange,
|
getCloseMixSidebarOnChange,
|
||||||
|
getMixSideTrigger,
|
||||||
} = useMenuSetting();
|
} = useMenuSetting();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|
@ -115,6 +117,14 @@ export default defineComponent({
|
||||||
def={unref(getCloseMixSidebarOnChange)}
|
def={unref(getCloseMixSidebarOnChange)}
|
||||||
disabled={!unref(getIsMixSidebar)}
|
disabled={!unref(getIsMixSidebar)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<SelectItem
|
||||||
|
title={t('layout.setting.mixSidebarTrigger')}
|
||||||
|
event={HandlerEnum.MENU_TRIGGER_MIX_SIDEBAR}
|
||||||
|
def={unref(getMixSideTrigger)}
|
||||||
|
options={mixSidebarTriggerOptions}
|
||||||
|
disabled={!unref(getIsMixSidebar)}
|
||||||
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,11 @@
|
||||||
import { ContentEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
import { ContentEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
||||||
import { MenuModeEnum, MenuTypeEnum, TopMenuAlignEnum, TriggerEnum } from '/@/enums/menuEnum';
|
import {
|
||||||
|
MenuModeEnum,
|
||||||
|
MenuTypeEnum,
|
||||||
|
TopMenuAlignEnum,
|
||||||
|
TriggerEnum,
|
||||||
|
MixSidebarTriggerEnum,
|
||||||
|
} from '/@/enums/menuEnum';
|
||||||
|
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
|
|
||||||
|
|
@ -20,6 +26,7 @@ export enum HandlerEnum {
|
||||||
MENU_SPLIT,
|
MENU_SPLIT,
|
||||||
MENU_FIXED,
|
MENU_FIXED,
|
||||||
MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE,
|
MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE,
|
||||||
|
MENU_TRIGGER_MIX_SIDEBAR,
|
||||||
|
|
||||||
// header
|
// header
|
||||||
HEADER_SHOW,
|
HEADER_SHOW,
|
||||||
|
|
@ -132,3 +139,14 @@ export const menuTypeList = [
|
||||||
type: MenuTypeEnum.MIX_SIDEBAR,
|
type: MenuTypeEnum.MIX_SIDEBAR,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const mixSidebarTriggerOptions = [
|
||||||
|
{
|
||||||
|
value: MixSidebarTriggerEnum.HOVER,
|
||||||
|
label: t('layout.setting.triggerHover'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: MixSidebarTriggerEnum.CLICK,
|
||||||
|
label: t('layout.setting.triggerClick'),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,9 @@ export function handler(event: HandlerEnum, value: any): DeepPartial<ProjectConf
|
||||||
case HandlerEnum.MENU_FIXED:
|
case HandlerEnum.MENU_FIXED:
|
||||||
return { menuSetting: { fixed: value } };
|
return { menuSetting: { fixed: value } };
|
||||||
|
|
||||||
|
case HandlerEnum.MENU_TRIGGER_MIX_SIDEBAR:
|
||||||
|
return { menuSetting: { mixSideTrigger: value } };
|
||||||
|
|
||||||
// ============transition==================
|
// ============transition==================
|
||||||
case HandlerEnum.OPEN_PAGE_LOADING:
|
case HandlerEnum.OPEN_PAGE_LOADING:
|
||||||
appStore.commitPageLoadingState(false);
|
appStore.commitPageLoadingState(false);
|
||||||
|
|
|
||||||
|
|
@ -73,4 +73,8 @@ export default {
|
||||||
|
|
||||||
fixedHeader: 'Fixed header',
|
fixedHeader: 'Fixed header',
|
||||||
fixedSideBar: 'Fixed Sidebar',
|
fixedSideBar: 'Fixed Sidebar',
|
||||||
|
|
||||||
|
mixSidebarTrigger: 'Mixed menu Trigger',
|
||||||
|
triggerHover: 'Hover',
|
||||||
|
triggerClick: 'Click',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -72,4 +72,8 @@ export default {
|
||||||
|
|
||||||
fixedHeader: '固定header',
|
fixedHeader: '固定header',
|
||||||
fixedSideBar: '固定Sidebar',
|
fixedSideBar: '固定Sidebar',
|
||||||
|
|
||||||
|
mixSidebarTrigger: '混合菜单触发方式',
|
||||||
|
triggerHover: '悬停',
|
||||||
|
triggerClick: '点击',
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { ProjectConfig } from '/@/types/config';
|
import type { ProjectConfig } from '/@/types/config';
|
||||||
|
|
||||||
import { MenuTypeEnum, MenuModeEnum, TriggerEnum } from '/@/enums/menuEnum';
|
import { MenuTypeEnum, MenuModeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum';
|
||||||
import { CacheTypeEnum } from '/@/enums/cacheEnum';
|
import { CacheTypeEnum } from '/@/enums/cacheEnum';
|
||||||
import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
||||||
import { primaryColor } from '../../build/config/lessModifyVars';
|
import { primaryColor } from '../../build/config/lessModifyVars';
|
||||||
|
|
@ -109,7 +109,7 @@ const setting: ProjectConfig = {
|
||||||
// Switch page to close menu
|
// Switch page to close menu
|
||||||
closeMixSidebarOnChange: false,
|
closeMixSidebarOnChange: false,
|
||||||
// Module opening method ‘click’ |'hover'
|
// Module opening method ‘click’ |'hover'
|
||||||
mixSideTrigger: 'click',
|
mixSideTrigger: MixSidebarTriggerEnum.CLICK,
|
||||||
},
|
},
|
||||||
|
|
||||||
// Multi-label
|
// Multi-label
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { MenuTypeEnum, MenuModeEnum, TriggerEnum } from '/@/enums/menuEnum';
|
import { MenuTypeEnum, MenuModeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum';
|
||||||
import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
|
||||||
import { CacheTypeEnum } from '/@/enums/cacheEnum';
|
import { CacheTypeEnum } from '/@/enums/cacheEnum';
|
||||||
import type { LocaleType } from '/@/locales/types';
|
import type { LocaleType } from '/@/locales/types';
|
||||||
|
|
@ -20,7 +20,7 @@ export interface MenuSetting {
|
||||||
accordion: boolean;
|
accordion: boolean;
|
||||||
closeMixSidebarOnChange: boolean;
|
closeMixSidebarOnChange: boolean;
|
||||||
collapsedShowTitle: boolean;
|
collapsedShowTitle: boolean;
|
||||||
mixSideTrigger: 'click' | 'hover';
|
mixSideTrigger: MixSidebarTriggerEnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MultiTabsSetting {
|
export interface MultiTabsSetting {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue