|
<script setup lang="ts">
|
|
import { useRoute, useRouter, type RouteRecordNormalized, type RouteLocationRaw } from 'vue-router'
|
|
|
|
const route = useRoute()
|
|
const router = useRouter()
|
|
|
|
const handleLink = (item: RouteRecordNormalized) => {
|
|
const { redirect, name, path } = item
|
|
if (redirect) {
|
|
router.push(redirect as RouteLocationRaw)
|
|
} else {
|
|
if (name) {
|
|
router.push({ name })
|
|
} else {
|
|
router.push({ path })
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<el-breadcrumb separator="/">
|
|
<el-breadcrumb-item
|
|
v-for="(item, index) in route.matched"
|
|
:key="index"
|
|
:to="{ path: item.path }"
|
|
>
|
|
<a @click.prevent="handleLink(item)">
|
|
{{ item.meta.title }}
|
|
</a>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb>
|
|
</template>
|
|
|
|
<style lang="scss" scoped></style>
|
|
|