提交 9693cc94 编写于 作者: KK's avatar KK

导航参数解析

上级 0fbf79d2
...@@ -219,75 +219,58 @@ export class ViewTool { ...@@ -219,75 +219,58 @@ export class ViewTool {
public formatNavigateParam(navigateContext: any = {}, navigateParam: any = {}, context: any = {}, viewparams: any = {}, formData: any = {}): { context: {}, param: {} } { public formatNavigateParam(navigateContext: any = {}, navigateParam: any = {}, context: any = {}, viewparams: any = {}, formData: any = {}): { context: {}, param: {} } {
// 填充默认上下文和默认参数 // 填充默认上下文和默认参数
let _itemParam = { context: { ...context }, param: { ...viewparams } }; let _itemParam = { context: { ...context }, param: { ...viewparams } };
// 处理导航上下文 // 处理导航上下文
if (navigateContext && Object.keys(navigateContext).length > 0) { this.formatNavigateParamItem(navigateContext, _itemParam, formData, 'context');
Object.keys(navigateContext).forEach((name: string) => { // 处理导航参数
if (!name) { this.formatNavigateParamItem(navigateParam, _itemParam, formData, 'param');
return _itemParam;
}
/**
* 导航参数项处理
*
* @param {*} [param] 导航参数项
* @param {*} [itemPara] 填充默认上下文和默认参数
* @param {*} [formData] 表单数据
* @param {*} [tag] 参数类型
* @memberof ViewTool
*/
private formatNavigateParamItem(param: any, itemParam: any, formData: any, tag: string){
if (param && Object.keys(param).length > 0) {
Object.keys(param).forEach((name: string) => {
let value: string | null = param[name];
if (!name || !this.isString(value)) {
return; return;
} }
let value: string | null = navigateContext[name]; if (itemParam[tag].hasOwnProperty(name) && (this.isNull(value) || this.isUndefined(value))) {
if (_itemParam.context.hasOwnProperty(name) && (this.isNull(value) || this.isUndefined(value))) { delete itemParam[tag][name];
delete _itemParam.context[name];
return; return;
} }
if (value && value.startsWith('%') && value.endsWith('%')) { if (value && value.startsWith('%') && value.endsWith('%')) {
const key: string = value.slice(1, -1); const key: string = value.slice(1, -1);
let has_value = false; let has_value = false;
// 后续补充全局上下文 // 后续补充全局上下文
if (_itemParam.context && _itemParam.context.hasOwnProperty(key)) { if (itemParam.context && itemParam.context.hasOwnProperty(key)) {
has_value = true; has_value = true;
value = _itemParam.context[key]; value = itemParam.context[key];
} }
if (formData && formData.hasOwnProperty(key)) {
has_value = true;
value = formData[key];
}
// 不存在值对象
if (!has_value) {
return;
}
}
Object.assign(_itemParam.context, { [name]: value });
});
}
// 处理导航参数
if (navigateParam && Object.keys(navigateParam).length > 0) {
Object.keys(navigateParam).forEach((name: string) => {
if (!name) {
return;
}
let value: string | null = navigateParam[name];
if (_itemParam.param.hasOwnProperty(name) && (this.isNull(value) || this.isUndefined(value))) {
delete _itemParam.param[name];
return;
}
if (value && value.startsWith('%') && value.endsWith('%')) {
const key: string = value.slice(1, -1);
let has_value = false;
// 后续补充全局参数 // 后续补充全局参数
if (_itemParam.param && _itemParam.param.hasOwnProperty(key)) { if (itemParam.param && itemParam.param.hasOwnProperty(key)) {
has_value = true; has_value = true;
value = _itemParam.param[key]; value = itemParam.param[key];
} }
if (formData && formData.hasOwnProperty(key)) { if (formData && formData.hasOwnProperty(key)) {
has_value = true; has_value = true;
value = formData[key]; value = formData[key];
} }
// 不存在值对象 // 不存在值对象
if (!has_value) { if (!has_value) {
return; return;
} }
} }
Object.assign(_itemParam.param, { [name]: value }); Object.assign(itemParam[tag], { [name]: value });
}); });
} }
return _itemParam;
} }
/** /**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册