Skip to content

Commit 5737e47

Browse files
committed
feat: add collapsedShowTitle setting
1 parent a3b7a65 commit 5737e47

File tree

8 files changed

+55
-6
lines changed

8 files changed

+55
-6
lines changed

src/components/Menu/src/BasicMenu.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,13 @@ export default defineComponent({
152152
const { appendClass } = props;
153153
const levelCls = `basic-menu-item__level${index} ${menuState.theme} `;
154154

155-
const showTitle = props.isAppMenu ? !menuStore.getCollapsedState : true;
155+
const showTitle = computed(() => {
156+
if (!props.isAppMenu) return true;
157+
if (!props.collapsedShowTitle) {
158+
return !menuStore.getCollapsedState;
159+
}
160+
return true;
161+
});
156162
return menuList.map((menu) => {
157163
if (!menu) {
158164
return null;
@@ -172,7 +178,7 @@ export default defineComponent({
172178
<MenuContent
173179
item={menu}
174180
level={index}
175-
showTitle={showTitle}
181+
showTitle={unref(showTitle)}
176182
searchValue={menuState.searchValue}
177183
/>,
178184
]}
@@ -184,7 +190,7 @@ export default defineComponent({
184190
{{
185191
title: () => [
186192
<MenuContent
187-
showTitle={showTitle}
193+
showTitle={unref(showTitle)}
188194
item={menu}
189195
level={index}
190196
searchValue={menuState.searchValue}
@@ -218,7 +224,11 @@ export default defineComponent({
218224
inlineIndent={props.inlineIndent}
219225
theme={unref(theme)}
220226
onOpenChange={handleOpenChange}
221-
class={['basic-menu', unref(transparentMenuClass)]}
227+
class={[
228+
'basic-menu',
229+
props.collapsedShowTitle && 'collapsed-show-title',
230+
unref(transparentMenuClass),
231+
]}
222232
{...inlineCollapsedObj}
223233
>
224234
{{

src/components/Menu/src/index.less

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@
1414
}
1515

1616
.basic-menu {
17+
&.collapsed-show-title.ant-menu-inline-collapsed {
18+
& > li > .ant-menu-submenu-title {
19+
display: flex;
20+
margin-top: 12px;
21+
font-size: 12px;
22+
flex-direction: column;
23+
}
24+
}
25+
1726
&__wrap {
1827
/* 滚动槽 */
1928
&::-webkit-scrollbar {

src/components/Menu/src/props.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ export const basicProps = {
1111
type: Boolean as PropType<boolean>,
1212
default: false,
1313
},
14+
collapsedShowTitle: {
15+
type: Boolean as PropType<boolean>,
16+
default: false,
17+
},
1418
flatItems: {
1519
type: Array as PropType<Menu[]>,
1620
default: () => [],

src/components/Modal/src/BasicModal.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export default defineComponent({
199199
}
200200
}
201201
}
202+
202203
/**
203204
* @description: 设置modal参数
204205
*/

src/layouts/default/LayoutMenu.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ export default defineComponent({
177177
return () => {
178178
const {
179179
showLogo,
180-
menuSetting: { type: menuType, mode, theme, collapsed },
180+
menuSetting: { type: menuType, mode, theme, collapsed, collapsedShowTitle },
181181
} = unref(getProjectConfigRef);
182182

183183
const isSidebarType = menuType === MenuTypeEnum.SIDEBAR;
@@ -190,6 +190,7 @@ export default defineComponent({
190190
type={menuType}
191191
mode={props.menuMode || mode}
192192
class="layout-menu"
193+
collapsedShowTitle={collapsedShowTitle}
193194
theme={themeData}
194195
showLogo={isShowLogo}
195196
search={unref(showSearchRef) && !collapsed}

src/layouts/default/setting/SettingDrawer.tsx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,14 @@ export default defineComponent({
208208
const {
209209
contentMode,
210210
headerSetting: { fixed },
211-
menuSetting: { hasDrag, collapsed, showSearch, menuWidth, topMenuAlign } = {},
211+
menuSetting: {
212+
hasDrag,
213+
collapsed,
214+
showSearch,
215+
menuWidth,
216+
topMenuAlign,
217+
collapsedShowTitle,
218+
} = {},
212219
} = appStore.getProjectConfig;
213220
return [
214221
renderSwitchItem('侧边菜单拖拽', {
@@ -232,6 +239,13 @@ export default defineComponent({
232239
def: collapsed,
233240
disabled: !unref(getShowMenuRef),
234241
}),
242+
renderSwitchItem('折叠菜单显示名称', {
243+
handler: (e) => {
244+
baseHandler('collapsedShowTitle', e);
245+
},
246+
def: collapsedShowTitle,
247+
disabled: !unref(getShowMenuRef) || !collapsed,
248+
}),
235249

236250
renderSwitchItem('固定header', {
237251
handler: (e) => {
@@ -449,6 +463,13 @@ export default defineComponent({
449463
},
450464
};
451465
}
466+
if (event === 'collapsedShowTitle') {
467+
config = {
468+
menuSetting: {
469+
collapsedShowTitle: value,
470+
},
471+
};
472+
}
452473
if (event === 'lockTime') {
453474
config = {
454475
lockTime: value,

src/settings/projectSetting.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ const setting: ProjectConfig = {
4444
menuSetting: {
4545
// 菜单折叠
4646
collapsed: false,
47+
// 折叠菜单时候是否显示菜单名
48+
collapsedShowTitle: false,
4749
// 是否可拖拽
4850
hasDrag: true,
4951
// 是否显示

src/types/config.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export interface MessageSetting {
1111
}
1212
export interface MenuSetting {
1313
collapsed: boolean;
14+
collapsedShowTitle: boolean;
1415
hasDrag: boolean;
1516
showSearch: boolean;
1617
show: boolean;

0 commit comments

Comments
 (0)