Skip to content

Commit de25557

Browse files
committed
fix(menu): fix scrillbar not work
1 parent 689425e commit de25557

File tree

11 files changed

+204
-157
lines changed

11 files changed

+204
-157
lines changed

CHANGELOG.zh_CN.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## Wip
2+
3+
### 🐛 Bug Fixes
4+
5+
- 修复混合模式下滚动条丢失问题
6+
17
## 2.0.0-rc.14 (2020-12-15)
28

39
### ✨ Features

src/components/Menu/src/BasicMenu.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@
9090
});
9191
9292
const getMenuClass = computed(() => {
93+
const align = props.isHorizontal && unref(getSplit) ? 'start' : unref(getTopMenuAlign);
9394
return [
9495
prefixCls,
95-
`justify-${unref(getTopMenuAlign)}`,
96+
`justify-${align}`,
9697
{
9798
[`${prefixCls}--hide-title`]: !unref(showTitle),
9899
[`${prefixCls}--collapsed-show-title`]: props.collapsedShowTitle,

src/layouts/default/header/index.vue

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
v-if="getShowHeaderLogo || getIsMobile"
88
:class="`${prefixCls}-logo`"
99
:theme="getHeaderTheme"
10+
:style="getLogoWidth"
1011
/>
1112
<LayoutTrigger
1213
v-if="(getShowContent && getShowHeaderTrigger && !getSplit) || getIsMobile"
@@ -103,7 +104,13 @@
103104
},
104105
setup(props) {
105106
const { prefixCls } = useDesign('layout-header');
106-
const { getShowTopMenu, getShowHeaderTrigger, getSplit } = useMenuSetting();
107+
const {
108+
getShowTopMenu,
109+
getShowHeaderTrigger,
110+
getSplit,
111+
getIsMixMode,
112+
getMenuWidth,
113+
} = useMenuSetting();
107114
const { getShowLocale } = useLocaleSetting();
108115
const { getUseErrorHandle } = useRootSetting();
109116
@@ -131,6 +138,14 @@
131138
];
132139
});
133140
141+
const getLogoWidth = computed(() => {
142+
if (!unref(getIsMixMode)) {
143+
return {};
144+
}
145+
const width = unref(getMenuWidth) < 180 ? 180 : unref(getMenuWidth);
146+
return { width: `${width}px` };
147+
});
148+
134149
const getSplitType = computed(() => {
135150
return unref(getSplit) ? MenuSplitTyeEnum.TOP : MenuSplitTyeEnum.NONE;
136151
});
@@ -157,6 +172,7 @@
157172
getShowNotice,
158173
getUseLockPage,
159174
getUseErrorHandle,
175+
getLogoWidth,
160176
};
161177
},
162178
});

src/layouts/default/menu/index.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export default defineComponent({
4747
getMenuTheme,
4848
getCollapsed,
4949
getAccordion,
50+
getIsHorizontal,
5051
getIsSidebarType,
5152
} = useMenuSetting();
5253
const { getShowLogo } = useRootSetting();
@@ -66,7 +67,12 @@ export default defineComponent({
6667
const getIsShowLogo = computed(() => unref(getShowLogo) && unref(getIsSidebarType));
6768

6869
const getUseScroll = computed(() => {
69-
return unref(getIsSidebarType) || props.splitType === MenuSplitTyeEnum.LEFT;
70+
return (
71+
!unref(getIsHorizontal) &&
72+
(unref(getIsSidebarType) ||
73+
props.splitType === MenuSplitTyeEnum.LEFT ||
74+
props.splitType === MenuSplitTyeEnum.NONE)
75+
);
7076
});
7177

7278
const getWrapperStyle = computed(

src/layouts/default/setting/SettingDrawer.tsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
InputNumberItem,
1111
} from './components';
1212

13-
import { MenuTypeEnum } from '/@/enums/menuEnum';
13+
import { MenuTypeEnum, TriggerEnum } from '/@/enums/menuEnum';
1414

1515
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
1616
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
@@ -25,7 +25,7 @@ import {
2525
HandlerEnum,
2626
contentModeOptions,
2727
topMenuAlignOptions,
28-
menuTriggerOptions,
28+
getMenuTriggerOptions,
2929
routerTransitionOptions,
3030
menuTypeList,
3131
} from './enum';
@@ -134,6 +134,14 @@ export default defineComponent({
134134
* @description:
135135
*/
136136
function renderFeatures() {
137+
let triggerDef = unref(getTrigger);
138+
139+
const triggerOptions = getMenuTriggerOptions(unref(getSplit));
140+
const some = triggerOptions.some((item) => item.value === triggerDef);
141+
if (!some) {
142+
triggerDef = TriggerEnum.FOOTER;
143+
}
144+
137145
return (
138146
<>
139147
<SwitchItem
@@ -183,13 +191,15 @@ export default defineComponent({
183191
event={HandlerEnum.MENU_TOP_ALIGN}
184192
def={unref(getTopMenuAlign)}
185193
options={topMenuAlignOptions}
186-
disabled={!unref(getShowHeader) || (!unref(getIsTopMenu) && !unref(getSplit))}
194+
disabled={
195+
!unref(getShowHeader) || unref(getSplit) || (!unref(getIsTopMenu) && !unref(getSplit))
196+
}
187197
/>
188198
<SelectItem
189199
title={t('layout.setting.menuCollapseButton')}
190200
event={HandlerEnum.MENU_TRIGGER}
191-
def={unref(getTrigger)}
192-
options={menuTriggerOptions}
201+
def={triggerDef}
202+
options={triggerOptions}
193203
disabled={!unref(getShowMenuRef)}
194204
/>
195205
<SelectItem

src/layouts/default/setting/enum.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,26 @@ export const topMenuAlignOptions = [
7676
},
7777
];
7878

79-
export const menuTriggerOptions = [
80-
{
81-
value: TriggerEnum.NONE,
82-
label: t('layout.setting.menuTriggerNone'),
83-
},
84-
{
85-
value: TriggerEnum.FOOTER,
86-
label: t('layout.setting.menuTriggerBottom'),
87-
},
88-
{
89-
value: TriggerEnum.HEADER,
90-
label: t('layout.setting.menuTriggerTop'),
91-
},
92-
];
79+
export const getMenuTriggerOptions = (hideTop: boolean) => {
80+
return [
81+
{
82+
value: TriggerEnum.NONE,
83+
label: t('layout.setting.menuTriggerNone'),
84+
},
85+
{
86+
value: TriggerEnum.FOOTER,
87+
label: t('layout.setting.menuTriggerBottom'),
88+
},
89+
...(hideTop
90+
? []
91+
: [
92+
{
93+
value: TriggerEnum.HEADER,
94+
label: t('layout.setting.menuTriggerTop'),
95+
},
96+
]),
97+
];
98+
};
9399

94100
export const routerTransitionOptions = [
95101
RouterTransitionEnum.ZOOM_FADE,

src/layouts/default/setting/handler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export function handler(event: HandlerEnum, value: any): DeepPartial<ProjectConf
2525
type,
2626
collapsed: false,
2727
show: true,
28+
hidden: false,
2829
...splitOpt,
2930
},
3031
};

src/layouts/default/sider/LayoutSider.tsx

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)