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

全局导航路由模式调整 --- fix5

上级 14e6855a
...@@ -13,5 +13,12 @@ ...@@ -13,5 +13,12 @@
.no-redirect { .no-redirect {
color: #97a8be; color: #97a8be;
cursor: text; cursor: text;
.curselected{
color: #2196F3;
font-weight: bold;
}
.app-breadcrumb-selected{
cursor: pointer;
}
} }
} }
\ No newline at end of file
...@@ -2,7 +2,20 @@ ...@@ -2,7 +2,20 @@
<el-breadcrumb class="app-breadcrumb" separator="/"> <el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb"> <transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id"> <el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
<span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ item.title }}</span> <span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ item.title }}
<span v-if="item.isselected === true">
<dropdown trigger='click' @on-click="selectNavData($event,item)">
<span class="app-breadcrumb-selected">
<i class="el-icon-caret-bottom"></i>
</span>
<dropdown-menu slot='list'>
<dropdown-item v-for="(dataitem) in getPreNavData(item)" :name="dataitem.srfkey" :key="dataitem.srfkey">
<span :class="{'curselected':isCurSelected(item,dataitem)}">{{dataitem.srfmajortext}}</span>
</dropdown-item>
</dropdown-menu>
</dropdown>
</span>
</span>
<a v-else @click.prevent="handleLink(item)">{{ item.title }}</a> <a v-else @click.prevent="handleLink(item)">{{ item.title }}</a>
</el-breadcrumb-item> </el-breadcrumb-item>
</transition-group> </transition-group>
...@@ -80,6 +93,25 @@ export default class Breadcrumb extends Vue { ...@@ -80,6 +93,25 @@ export default class Breadcrumb extends Vue {
this.$forceUpdate(); this.$forceUpdate();
} }
/**
* 获取面包屑指定元素前一条数据
*
* @memberof Breadcrumb
*/
private getPreNavData(item:any){
let preNavData:any = this.navDataService.getPreNavDataById(item.id);
return preNavData.data;
}
/**
* 判断是否为当前选中项
*
* @memberof Breadcrumb
*/
private isCurSelected(item:any,singleItem:any){
return item.srfkey === singleItem.srfkey;
}
/** /**
* 面包屑点击行为 * 面包屑点击行为
* *
...@@ -100,6 +132,17 @@ export default class Breadcrumb extends Vue { ...@@ -100,6 +132,17 @@ export default class Breadcrumb extends Vue {
this.navDataService.removeNavData(item.id); this.navDataService.removeNavData(item.id);
} }
/**
* 切换导航行为
*
* @memberof Breadcrumb
*/
private selectNavData($event:any,item:any){
let preNavData:any = this.getPreNavData(item);
let curSrfkey:any = $event;
this.navDataService.serviceState.next({action:'viewrefresh', data:curSrfkey});
}
/** /**
* 组件销毁 * 组件销毁
* *
......
...@@ -247,7 +247,11 @@ export default class EditViewEngine extends ViewEngine { ...@@ -247,7 +247,11 @@ export default class EditViewEngine extends ViewEngine {
*/ */
public setTabCaption(info: string): void { public setTabCaption(info: string): void {
let viewdata: any = this.view.model; let viewdata: any = this.view.model;
if (viewdata && info && !Object.is(info, '') && (viewdata.srfTitle.indexOf("-") === -1)) { let index:number = viewdata.srfTitle.indexOf("-");
if (viewdata && info && !Object.is(info, '')) {
if(index !== -1){
viewdata.srfTitle = viewdata.srfTitle.substr(0,index);
}
if(this.view.$tabPageExp){ if(this.view.$tabPageExp){
this.view.$tabPageExp.setCurPageCaption(viewdata.srfTitle, viewdata.srfTitle, info); this.view.$tabPageExp.setCurPageCaption(viewdata.srfTitle, viewdata.srfTitle, info);
} }
......
...@@ -42,6 +42,13 @@ export interface NavDataElement { ...@@ -42,6 +42,13 @@ export interface NavDataElement {
*/ */
path:string; path:string;
/**
* 元素主键
*
* @memberof NavDataElement
*/
srfkey:string;
} }
export interface ServiceState { export interface ServiceState {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册