Browse Source

perf(menu): mixSideTrigger setting (#155)

pull/158/head
无木成林 5 years ago
committed by GitHub
parent
commit
e821f4c706
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/enums/menuEnum.ts
  2. 10
      src/layouts/default/setting/SettingDrawer.tsx
  3. 20
      src/layouts/default/setting/enum.ts
  4. 3
      src/layouts/default/setting/handler.ts
  5. 4
      src/locales/lang/en/layout/setting.ts
  6. 4
      src/locales/lang/zh_CN/layout/setting.ts
  7. 4
      src/settings/projectSetting.ts
  8. 4
      src/types/config.d.ts

5
src/enums/menuEnum.ts

@ -43,3 +43,8 @@ export enum TopMenuAlignEnum {
START = 'start',
END = 'end',
}
export enum MixSidebarTriggerEnum {
HOVER = 'hover',
CLICK = 'click',
}

10
src/layouts/default/setting/SettingDrawer.tsx

@ -28,6 +28,7 @@ import {
getMenuTriggerOptions,
routerTransitionOptions,
menuTypeList,
mixSidebarTriggerOptions,
} from './enum';
import { HEADER_PRESET_BG_COLOR_LIST, SIDE_BAR_BG_COLOR_LIST } from '/@/settings/colorSetting';
@ -73,6 +74,7 @@ export default defineComponent({
getSplit,
getIsMixSidebar,
getCloseMixSidebarOnChange,
getMixSideTrigger,
} = useMenuSetting();
const {
@ -115,6 +117,14 @@ export default defineComponent({
def={unref(getCloseMixSidebarOnChange)}
disabled={!unref(getIsMixSidebar)}
/>
<SelectItem
title={t('layout.setting.mixSidebarTrigger')}
event={HandlerEnum.MENU_TRIGGER_MIX_SIDEBAR}
def={unref(getMixSideTrigger)}
options={mixSidebarTriggerOptions}
disabled={!unref(getIsMixSidebar)}
/>
</>
);
}

20
src/layouts/default/setting/enum.ts

@ -1,5 +1,11 @@
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';
@ -20,6 +26,7 @@ export enum HandlerEnum {
MENU_SPLIT,
MENU_FIXED,
MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE,
MENU_TRIGGER_MIX_SIDEBAR,
// header
HEADER_SHOW,
@ -132,3 +139,14 @@ export const menuTypeList = [
type: MenuTypeEnum.MIX_SIDEBAR,
},
];
export const mixSidebarTriggerOptions = [
{
value: MixSidebarTriggerEnum.HOVER,
label: t('layout.setting.triggerHover'),
},
{
value: MixSidebarTriggerEnum.CLICK,
label: t('layout.setting.triggerClick'),
},
];

3
src/layouts/default/setting/handler.ts

@ -67,6 +67,9 @@ export function handler(event: HandlerEnum, value: any): DeepPartial<ProjectConf
case HandlerEnum.MENU_FIXED:
return { menuSetting: { fixed: value } };
case HandlerEnum.MENU_TRIGGER_MIX_SIDEBAR:
return { menuSetting: { mixSideTrigger: value } };
// ============transition==================
case HandlerEnum.OPEN_PAGE_LOADING:
appStore.commitPageLoadingState(false);

4
src/locales/lang/en/layout/setting.ts

@ -73,4 +73,8 @@ export default {
fixedHeader: 'Fixed header',
fixedSideBar: 'Fixed Sidebar',
mixSidebarTrigger: 'Mixed menu Trigger',
triggerHover: 'Hover',
triggerClick: 'Click',
};

4
src/locales/lang/zh_CN/layout/setting.ts

@ -72,4 +72,8 @@ export default {
fixedHeader: '固定header',
fixedSideBar: '固定Sidebar',
mixSidebarTrigger: '混合菜单触发方式',
triggerHover: '悬停',
triggerClick: '点击',
};

4
src/settings/projectSetting.ts

@ -1,6 +1,6 @@
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 { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
import { primaryColor } from '../../build/config/lessModifyVars';
@ -109,7 +109,7 @@ const setting: ProjectConfig = {
// Switch page to close menu
closeMixSidebarOnChange: false,
// Module opening method ‘click’ |'hover'
mixSideTrigger: 'click',
mixSideTrigger: MixSidebarTriggerEnum.CLICK,
},
// Multi-label

4
src/types/config.d.ts

@ -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 { CacheTypeEnum } from '/@/enums/cacheEnum';
import type { LocaleType } from '/@/locales/types';
@ -20,7 +20,7 @@ export interface MenuSetting {
accordion: boolean;
closeMixSidebarOnChange: boolean;
collapsedShowTitle: boolean;
mixSideTrigger: 'click' | 'hover';
mixSideTrigger: MixSidebarTriggerEnum;
}
export interface MultiTabsSetting {

Loading…
Cancel
Save