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

全局导航服务 --- fix4

上级 81df0447
...@@ -35,6 +35,13 @@ export interface NavDataElement { ...@@ -35,6 +35,13 @@ export interface NavDataElement {
*/ */
data:any; data:any;
/**
* 视图路径
*
* @memberof NavDataElement
*/
path:string;
} }
/** /**
...@@ -205,4 +212,13 @@ export default class NavDataService { ...@@ -205,4 +212,13 @@ export default class NavDataService {
this.navDataStack = []; this.navDataStack = [];
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack)); this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
} }
/**
* 从导航数据栈中获取数据
*
* @memberof NavDataService
*/
public getNavData(){
return this.navDataStack;
}
} }
\ No newline at end of file
...@@ -99,15 +99,17 @@ export class ViewTool { ...@@ -99,15 +99,17 @@ export class ViewTool {
let routePath: string = ''; let routePath: string = '';
let [arg] = args; let [arg] = args;
arg = arg ? arg : {}; arg = arg ? arg : {};
deResParameters.forEach(({ pathName, parameterName }: { pathName: string, parameterName: string }) => { if(deResParameters && deResParameters.length >0){
let value:any = null; deResParameters.forEach(({ pathName, parameterName }: { pathName: string, parameterName: string }) => {
if (viewParam[parameterName] && !Object.is(viewParam[parameterName], '') && !Object.is(viewParam[parameterName], 'null')) { let value:any = null;
value = viewParam[parameterName]; if (viewParam[parameterName] && !Object.is(viewParam[parameterName], '') && !Object.is(viewParam[parameterName], 'null')) {
} else if (arg[parameterName] && !Object.is(arg[parameterName], '') && !Object.is(arg[parameterName], 'null')) { value = viewParam[parameterName];
value = arg[parameterName]; } else if (arg[parameterName] && !Object.is(arg[parameterName], '') && !Object.is(arg[parameterName], 'null')) {
} value = arg[parameterName];
routePath = `${routePath}/${pathName}/${value}`; }
}); routePath = `${routePath}/${pathName}/${value}`;
});
}
return routePath; return routePath;
} }
...@@ -124,21 +126,23 @@ export class ViewTool { ...@@ -124,21 +126,23 @@ export class ViewTool {
public static getActiveRoutePath(parameters: any[], args: any[], data: any): string { public static getActiveRoutePath(parameters: any[], args: any[], data: any): string {
let routePath: string = ''; let routePath: string = '';
// 不存在应用实体 // 不存在应用实体
if (parameters.length === 1) { if(parameters && parameters.length >0){
const [{ pathName, parameterName }] = parameters; if (parameters.length === 1) {
routePath = `/${pathName}`; const [{ pathName, parameterName }] = parameters;
if (Object.keys(data).length > 0) { routePath = `/${pathName}`;
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`; if (Object.keys(data).length > 0) {
} routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
} else if (parameters.length === 2) { }
let [arg] = args; } else if (parameters.length === 2) {
arg = arg ? arg : {}; let [arg] = args;
const [{ pathName: _pathName, parameterName: _parameterName }, { pathName: _pathName2, parameterName: _parameterName2 }] = parameters; arg = arg ? arg : {};
const _value: any = arg[_parameterName] && !Object.is(arg[_parameterName], '') ? const [{ pathName: _pathName, parameterName: _parameterName }, { pathName: _pathName2, parameterName: _parameterName2 }] = parameters;
arg[_parameterName] : null; const _value: any = arg[_parameterName] && !Object.is(arg[_parameterName], '') ?
routePath = `/${_pathName}/${_value}/${_pathName2}`; arg[_parameterName] : null;
if (Object.keys(data).length > 0) { routePath = `/${_pathName}/${_value}/${_pathName2}`;
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`; if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
}
} }
} }
return routePath; return routePath;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册