Commit 5737e478f671e7f1c60f7db08a0007f154b6f4b8

Authored by vben
1 parent a3b7a653

feat: add collapsedShowTitle setting

src/components/Menu/src/BasicMenu.tsx
... ... @@ -152,7 +152,13 @@ export default defineComponent({
152 152 const { appendClass } = props;
153 153 const levelCls = `basic-menu-item__level${index} ${menuState.theme} `;
154 154  
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 + });
156 162 return menuList.map((menu) => {
157 163 if (!menu) {
158 164 return null;
... ... @@ -172,7 +178,7 @@ export default defineComponent({
172 178 <MenuContent
173 179 item={menu}
174 180 level={index}
175   - showTitle={showTitle}
  181 + showTitle={unref(showTitle)}
176 182 searchValue={menuState.searchValue}
177 183 />,
178 184 ]}
... ... @@ -184,7 +190,7 @@ export default defineComponent({
184 190 {{
185 191 title: () => [
186 192 <MenuContent
187   - showTitle={showTitle}
  193 + showTitle={unref(showTitle)}
188 194 item={menu}
189 195 level={index}
190 196 searchValue={menuState.searchValue}
... ... @@ -218,7 +224,11 @@ export default defineComponent({
218 224 inlineIndent={props.inlineIndent}
219 225 theme={unref(theme)}
220 226 onOpenChange={handleOpenChange}
221   - class={['basic-menu', unref(transparentMenuClass)]}
  227 + class={[
  228 + 'basic-menu',
  229 + props.collapsedShowTitle && 'collapsed-show-title',
  230 + unref(transparentMenuClass),
  231 + ]}
222 232 {...inlineCollapsedObj}
223 233 >
224 234 {{
... ...
src/components/Menu/src/index.less
... ... @@ -14,6 +14,15 @@
14 14 }
15 15  
16 16 .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 +
17 26 &__wrap {
18 27 /* 滚动槽 */
19 28 &::-webkit-scrollbar {
... ...
src/components/Menu/src/props.ts
... ... @@ -11,6 +11,10 @@ export const basicProps = {
11 11 type: Boolean as PropType<boolean>,
12 12 default: false,
13 13 },
  14 + collapsedShowTitle: {
  15 + type: Boolean as PropType<boolean>,
  16 + default: false,
  17 + },
14 18 flatItems: {
15 19 type: Array as PropType<Menu[]>,
16 20 default: () => [],
... ...
src/components/Modal/src/BasicModal.tsx
... ... @@ -199,6 +199,7 @@ export default defineComponent({
199 199 }
200 200 }
201 201 }
  202 +
202 203 /**
203 204 * @description: 设置modal参数
204 205 */
... ...
src/layouts/default/LayoutMenu.tsx
... ... @@ -177,7 +177,7 @@ export default defineComponent({
177 177 return () => {
178 178 const {
179 179 showLogo,
180   - menuSetting: { type: menuType, mode, theme, collapsed },
  180 + menuSetting: { type: menuType, mode, theme, collapsed, collapsedShowTitle },
181 181 } = unref(getProjectConfigRef);
182 182  
183 183 const isSidebarType = menuType === MenuTypeEnum.SIDEBAR;
... ... @@ -190,6 +190,7 @@ export default defineComponent({
190 190 type={menuType}
191 191 mode={props.menuMode || mode}
192 192 class="layout-menu"
  193 + collapsedShowTitle={collapsedShowTitle}
193 194 theme={themeData}
194 195 showLogo={isShowLogo}
195 196 search={unref(showSearchRef) && !collapsed}
... ...
src/layouts/default/setting/SettingDrawer.tsx
... ... @@ -208,7 +208,14 @@ export default defineComponent({
208 208 const {
209 209 contentMode,
210 210 headerSetting: { fixed },
211   - menuSetting: { hasDrag, collapsed, showSearch, menuWidth, topMenuAlign } = {},
  211 + menuSetting: {
  212 + hasDrag,
  213 + collapsed,
  214 + showSearch,
  215 + menuWidth,
  216 + topMenuAlign,
  217 + collapsedShowTitle,
  218 + } = {},
212 219 } = appStore.getProjectConfig;
213 220 return [
214 221 renderSwitchItem('侧边菜单拖拽', {
... ... @@ -232,6 +239,13 @@ export default defineComponent({
232 239 def: collapsed,
233 240 disabled: !unref(getShowMenuRef),
234 241 }),
  242 + renderSwitchItem('折叠菜单显示名称', {
  243 + handler: (e) => {
  244 + baseHandler('collapsedShowTitle', e);
  245 + },
  246 + def: collapsedShowTitle,
  247 + disabled: !unref(getShowMenuRef) || !collapsed,
  248 + }),
235 249  
236 250 renderSwitchItem('固定header', {
237 251 handler: (e) => {
... ... @@ -449,6 +463,13 @@ export default defineComponent({
449 463 },
450 464 };
451 465 }
  466 + if (event === 'collapsedShowTitle') {
  467 + config = {
  468 + menuSetting: {
  469 + collapsedShowTitle: value,
  470 + },
  471 + };
  472 + }
452 473 if (event === 'lockTime') {
453 474 config = {
454 475 lockTime: value,
... ...
src/settings/projectSetting.ts
... ... @@ -44,6 +44,8 @@ const setting: ProjectConfig = {
44 44 menuSetting: {
45 45 // 菜单折叠
46 46 collapsed: false,
  47 + // 折叠菜单时候是否显示菜单名
  48 + collapsedShowTitle: false,
47 49 // 是否可拖拽
48 50 hasDrag: true,
49 51 // 是否显示
... ...
src/types/config.d.ts
... ... @@ -11,6 +11,7 @@ export interface MessageSetting {
11 11 }
12 12 export interface MenuSetting {
13 13 collapsed: boolean;
  14 + collapsedShowTitle: boolean;
14 15 hasDrag: boolean;
15 16 showSearch: boolean;
16 17 show: boolean;
... ...