diff --git a/src/layouts/default/LayoutBreadcrumb.tsx b/src/layouts/default/LayoutBreadcrumb.tsx index 06a1653ce3e01ca0c5daee81f27afd59717760ab..8c999779412f5215c498aefff4bf0cdcb0f14c67 100644 --- a/src/layouts/default/LayoutBreadcrumb.tsx +++ b/src/layouts/default/LayoutBreadcrumb.tsx @@ -10,20 +10,23 @@ 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', - props: { - showIcon: { - type: Boolean, - default: false, - }, - }, - setup(props) { + setup() { const itemList = ref([]); + const { currentRoute, push } = useRouter(); + watch( + () => currentRoute.value, + () => { + if (unref(currentRoute).name === 'Redirect') return; + getBreadcrumb(); + }, + { immediate: true } + ); + function getBreadcrumb() { const { matched } = unref(currentRoute); const matchedList = matched.filter((item) => item.meta && item.meta.title).slice(1); @@ -63,36 +66,23 @@ export default defineComponent({ return push(pathCompile(path)); } - watch( - () => currentRoute.value, - () => { - if (unref(currentRoute).name === 'Redirect') return; - getBreadcrumb(); - }, - { immediate: true } - ); - return () => ( {() => ( {() => { return unref(itemList).map((item) => { - const isLink = !!item.redirect && !item.meta.disabledRedirect; + const isLink = + (!!item.redirect && !item.meta.disabledRedirect) || + !item.children || + item.children.length === 0; return ( - {() => ( - <> - {props.showIcon && item.meta.icon && item.meta.icon.trim() !== '' && ( - - )} - {item.meta.title} - - )} + {() => item.meta.title} ); });