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

导航参数解析

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