diff --git a/src/layouts/default/LayoutBreadcrumb.tsx b/src/layouts/default/LayoutBreadcrumb.tsx index 302fb79a18e2dfc0acff5639b52c7754d2a40ee7..3655eedcc0b10cc717b8b5859c6402faf35280d1 100644 --- a/src/layouts/default/LayoutBreadcrumb.tsx +++ b/src/layouts/default/LayoutBreadcrumb.tsx @@ -10,10 +10,17 @@ import { PageEnum } from '/@/enums/pageEnum'; import { isBoolean } from '/@/utils/is'; import { compile } from 'path-to-regexp'; +import Icon from '/@/components/Icon'; export default defineComponent({ name: 'BasicBreadcrumb', - setup() { + props: { + showIcon: { + type: Boolean, + default: false, + }, + }, + setup(props) { const itemList = ref([]); const { currentRoute, push } = useRouter(); @@ -78,7 +85,14 @@ export default defineComponent({ isLink={isLink} onClick={handleItemClick.bind(null, item)} > - {() => item.meta.title} + {() => ( + <> + {props.showIcon && item.meta.icon && item.meta.icon.trim() !== '' && ( + + )} + {item.meta.title} + + )} ); }); diff --git a/src/layouts/default/LayoutHeader.tsx b/src/layouts/default/LayoutHeader.tsx index 709cda28f8a6405dad9b040b15071b9dbfa9ef46..24198dc53beb62814dd21f19898298de73d770c5 100644 --- a/src/layouts/default/LayoutHeader.tsx +++ b/src/layouts/default/LayoutHeader.tsx @@ -94,6 +94,7 @@ export default defineComponent({ }, menuSetting: { mode, type: menuType, split: splitMenu, topMenuAlign }, showBreadCrumb, + showBreadCrumbIcon, } = getProjectConfig; const isSidebarType = menuType === MenuTypeEnum.SIDEBAR; @@ -106,7 +107,7 @@ export default defineComponent({ {showLogo && !isSidebarType && } {mode !== MenuModeEnum.HORIZONTAL && showBreadCrumb && !splitMenu && ( - + )} {unref(showTopMenu) && (
{ + baseHandler('showBreadCrumbIcon', e); + }, + def: showBreadCrumbIcon, + disabled: !unref(getShowHeaderRef), + }), renderSwitchItem('标签页', { handler: (e) => { baseHandler('showMultiple', e); @@ -449,6 +457,11 @@ export default defineComponent({ showBreadCrumb: value, }; } + if (event === 'showBreadCrumbIcon') { + config = { + showBreadCrumbIcon: value, + }; + } if (event === 'collapsed') { config = { menuSetting: { diff --git a/src/settings/projectSetting.ts b/src/settings/projectSetting.ts index 1f016d71e584037822288a6b5f1c91958d38ab14..307bcf4e49314395ddb1a22d0889e65636feb825 100644 --- a/src/settings/projectSetting.ts +++ b/src/settings/projectSetting.ts @@ -94,6 +94,8 @@ const setting: ProjectConfig = { lockTime: 0, // 显示面包屑 showBreadCrumb: true, + // 显示面包屑图标 + showBreadCrumbIcon: false, // 使用error-handler-plugin useErrorHandle: isProdMode(), diff --git a/src/types/config.d.ts b/src/types/config.d.ts index 8684048eb5e0937fd3cd3121b5ea5e87dd3d42c6..4a32d04147ac430f2bed5d4c5aab22a0a3c352e7 100644 --- a/src/types/config.d.ts +++ b/src/types/config.d.ts @@ -84,6 +84,8 @@ export interface ProjectConfig { lockTime: number; // 显示面包屑 showBreadCrumb: boolean; + // 显示面包屑图标 + showBreadCrumbIcon: boolean; // 使用error-handler-plugin useErrorHandle: boolean;