提交 5dafd006 编写于 作者: tony001's avatar tony001

面包屑调整

上级 c6f30c50
<template> <template>
<el-breadcrumb <el-breadcrumb class="app-breadcrumb" separator="/">
class="app-breadcrumb"
separator="/"
>
<transition-group name="breadcrumb"> <transition-group name="breadcrumb">
<el-breadcrumb-item <el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
v-for="(item, index) in breadcrumbs" <span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ $t(item.title) }}</span>
:key="item.path" <a v-else @click.prevent="handleLink(item)">{{ $t(item.title) }}</a>
>
<span
v-if="index === breadcrumbs.length-1"
class="no-redirect"
>{{ $t(item.meta.caption) }}</span>
<a
v-else
@click.prevent="handleLink(item)"
>{{ $t(item.meta.caption) }}</a>
</el-breadcrumb-item> </el-breadcrumb-item>
</transition-group> </transition-group>
</el-breadcrumb> </el-breadcrumb>
...@@ -24,14 +12,32 @@ ...@@ -24,14 +12,32 @@
<script lang="ts"> <script lang="ts">
import { Component, Vue, Watch, Prop } from 'vue-property-decorator' import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
import { RouteRecord, Route } from 'vue-router' import { RouteRecord, Route } from 'vue-router'
import NavDataService from '@/service/app/navdata-service';
@Component({ @Component({
}) })
export default class Breadcrumb extends Vue { export default class Breadcrumb extends Vue {
private breadcrumbs: RouteRecord[] = []; //面包屑列表 /**
* 面包屑列表
*
* @memberof Breadcrumb
*/
private breadcrumbs: RouteRecord[] = [];
@Prop() public defPSAppView: any; //默认视图 /**
* 默认视图标识
*
* @memberof Breadcrumb
*/
@Prop() public indexViewTag: string;
/**
* 首页路径
*
* @memberof Breadcrumb
*/
@Prop() public indexViewPath: string;
/** /**
* 监听路由 * 监听路由
...@@ -58,23 +64,29 @@ export default class Breadcrumb extends Vue { ...@@ -58,23 +64,29 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb * @memberof Breadcrumb
*/ */
private getBreadcrumb() { private getBreadcrumb() {
this.breadcrumbs = this.$route.matched.filter((item) => { let navDataService = NavDataService.getInstance();
return item.meta && item.meta.caption this.breadcrumbs = navDataService.getNavData();
})
if(this.defPSAppView){
/**如果配置了默认视图,给面包屑第一级赋值默认视图为首页 */
}
} }
/** /**
* 单机面包屑 * 面包屑点击行为
* *
* @memberof Breadcrumb * @memberof Breadcrumb
*/ */
private handleLink(item: any) { private handleLink(item: any) {
this.$router.push(item).catch(err => { // 首页
console.warn(err); if(Object.is(item.id,this.indexViewTag)){
}); if(this.$route.matched && this.$route.matched.length >0){
this.$router.push(`/${this.indexViewPath}`);
}
}else{
// 非首页
this.$router.push(item.path).catch(err => {
console.warn(err);
});
}
let navDataService = NavDataService.getInstance();
navDataService.removeNavData(item.id);
} }
} }
</script> </script>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册