feat(breadcrumb): support showIcon (#48)
Co-authored-by: FuckDoctors <zhbchwin@163.com>
This commit is contained in:
parent
28392c3d6e
commit
d8b25b488b
|
|
@ -10,10 +10,17 @@ import { PageEnum } from '/@/enums/pageEnum';
|
||||||
import { isBoolean } from '/@/utils/is';
|
import { isBoolean } from '/@/utils/is';
|
||||||
|
|
||||||
import { compile } from 'path-to-regexp';
|
import { compile } from 'path-to-regexp';
|
||||||
|
import Icon from '/@/components/Icon';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'BasicBreadcrumb',
|
name: 'BasicBreadcrumb',
|
||||||
setup() {
|
props: {
|
||||||
|
showIcon: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props) {
|
||||||
const itemList = ref<AppRouteRecordRaw[]>([]);
|
const itemList = ref<AppRouteRecordRaw[]>([]);
|
||||||
const { currentRoute, push } = useRouter();
|
const { currentRoute, push } = useRouter();
|
||||||
|
|
||||||
|
|
@ -78,7 +85,14 @@ export default defineComponent({
|
||||||
isLink={isLink}
|
isLink={isLink}
|
||||||
onClick={handleItemClick.bind(null, item)}
|
onClick={handleItemClick.bind(null, item)}
|
||||||
>
|
>
|
||||||
{() => item.meta.title}
|
{() => (
|
||||||
|
<>
|
||||||
|
{props.showIcon && item.meta.icon && item.meta.icon.trim() !== '' && (
|
||||||
|
<Icon icon={item.meta.icon} class="icon mr-1 mb-1" />
|
||||||
|
)}
|
||||||
|
{item.meta.title}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</BreadcrumbItem>
|
</BreadcrumbItem>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
menuSetting: { mode, type: menuType, split: splitMenu, topMenuAlign },
|
menuSetting: { mode, type: menuType, split: splitMenu, topMenuAlign },
|
||||||
showBreadCrumb,
|
showBreadCrumb,
|
||||||
|
showBreadCrumbIcon,
|
||||||
} = getProjectConfig;
|
} = getProjectConfig;
|
||||||
|
|
||||||
const isSidebarType = menuType === MenuTypeEnum.SIDEBAR;
|
const isSidebarType = menuType === MenuTypeEnum.SIDEBAR;
|
||||||
|
|
@ -106,7 +107,7 @@ export default defineComponent({
|
||||||
{showLogo && !isSidebarType && <Logo class={`layout-header__logo`} />}
|
{showLogo && !isSidebarType && <Logo class={`layout-header__logo`} />}
|
||||||
|
|
||||||
{mode !== MenuModeEnum.HORIZONTAL && showBreadCrumb && !splitMenu && (
|
{mode !== MenuModeEnum.HORIZONTAL && showBreadCrumb && !splitMenu && (
|
||||||
<LayoutBreadcrumb />
|
<LayoutBreadcrumb showIcon={showBreadCrumbIcon} />
|
||||||
)}
|
)}
|
||||||
{unref(showTopMenu) && (
|
{unref(showTopMenu) && (
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -343,6 +343,7 @@ export default defineComponent({
|
||||||
menuSetting: { show: showMenu },
|
menuSetting: { show: showMenu },
|
||||||
multiTabsSetting: { show: showMultiple, showQuick, showIcon: showTabIcon },
|
multiTabsSetting: { show: showMultiple, showQuick, showIcon: showTabIcon },
|
||||||
showBreadCrumb,
|
showBreadCrumb,
|
||||||
|
showBreadCrumbIcon,
|
||||||
} = unref(getProjectConfigRef);
|
} = unref(getProjectConfigRef);
|
||||||
return [
|
return [
|
||||||
renderSwitchItem('面包屑', {
|
renderSwitchItem('面包屑', {
|
||||||
|
|
@ -352,6 +353,13 @@ export default defineComponent({
|
||||||
def: showBreadCrumb,
|
def: showBreadCrumb,
|
||||||
disabled: !unref(getShowHeaderRef),
|
disabled: !unref(getShowHeaderRef),
|
||||||
}),
|
}),
|
||||||
|
renderSwitchItem('面包屑图标', {
|
||||||
|
handler: (e) => {
|
||||||
|
baseHandler('showBreadCrumbIcon', e);
|
||||||
|
},
|
||||||
|
def: showBreadCrumbIcon,
|
||||||
|
disabled: !unref(getShowHeaderRef),
|
||||||
|
}),
|
||||||
renderSwitchItem('标签页', {
|
renderSwitchItem('标签页', {
|
||||||
handler: (e) => {
|
handler: (e) => {
|
||||||
baseHandler('showMultiple', e);
|
baseHandler('showMultiple', e);
|
||||||
|
|
@ -449,6 +457,11 @@ export default defineComponent({
|
||||||
showBreadCrumb: value,
|
showBreadCrumb: value,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
if (event === 'showBreadCrumbIcon') {
|
||||||
|
config = {
|
||||||
|
showBreadCrumbIcon: value,
|
||||||
|
};
|
||||||
|
}
|
||||||
if (event === 'collapsed') {
|
if (event === 'collapsed') {
|
||||||
config = {
|
config = {
|
||||||
menuSetting: {
|
menuSetting: {
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,8 @@ const setting: ProjectConfig = {
|
||||||
lockTime: 0,
|
lockTime: 0,
|
||||||
// 显示面包屑
|
// 显示面包屑
|
||||||
showBreadCrumb: true,
|
showBreadCrumb: true,
|
||||||
|
// 显示面包屑图标
|
||||||
|
showBreadCrumbIcon: false,
|
||||||
|
|
||||||
// 使用error-handler-plugin
|
// 使用error-handler-plugin
|
||||||
useErrorHandle: isProdMode(),
|
useErrorHandle: isProdMode(),
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,8 @@ export interface ProjectConfig {
|
||||||
lockTime: number;
|
lockTime: number;
|
||||||
// 显示面包屑
|
// 显示面包屑
|
||||||
showBreadCrumb: boolean;
|
showBreadCrumb: boolean;
|
||||||
|
// 显示面包屑图标
|
||||||
|
showBreadCrumbIcon: boolean;
|
||||||
// 使用error-handler-plugin
|
// 使用error-handler-plugin
|
||||||
useErrorHandle: boolean;
|
useErrorHandle: boolean;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue