Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-Mob-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-Mob-R7-Res
提交
d16a65f2
提交
d16a65f2
编写于
6月 12, 2020
作者:
zcdtk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
视图参数处理方法优化
上级
36740bcb
变更
1
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
13 行增加
和
78 行删除
+13
-78
view-tool.ts
src/utils/view-tool/view-tool.ts
+13
-78
未找到文件。
src/utils/view-tool/view-tool.ts
浏览文件 @
d16a65f2
...
...
@@ -279,32 +279,33 @@ export class ViewTool {
}
/**
*
解析视图数据
*
视图参数处理
*
* @returns {{ context: {}, viewparams: {} }}
* @param {*} view
* @param {boolean} isPSDEView
* @returns {{ context: {}, param: {} }} 返回处理后直接可用的上下文和参数对象
* @memberof ViewTool
*/
public
parseViewData
(
view
:
any
,
isPSDEView
:
boolean
):
{
context
:
{},
viewparams
:
{}
}
{
let
data
=
{
context
:
{},
viewparams
:
{}
};
public
formatNavigateViewParam
(
view
:
any
,
isPSDEView
:
boolean
):
{
context
:
{},
param
:
{}
}
{
let
_context
:
any
=
{},
_param
:
any
=
{
};
// 合并全局上下文
const
{
context
,
param
}
=
view
.
$store
.
getters
.
getAppData
();
if
(
context
&&
Object
.
keys
(
context
).
length
>
0
)
{
data
.
context
=
{
...
context
};
_
context
=
{
...
context
};
}
// 合并全局参数
if
(
param
&&
Object
.
keys
(
param
).
length
>
0
)
{
data
.
viewparams
=
{
...
param
};
_param
=
{
...
param
};
}
let
_context
:
any
=
{},
_viewparams
:
any
=
{};
if
(
!
view
.
viewDefaultUsage
)
{
// 视图模态或者嵌入打开
if
(
view
.
_context
&&
!
Object
.
is
(
view
.
_context
,
''
))
{
_context
=
{
...
JSON
.
parse
(
view
.
_context
)
};
_context
=
{
...
_context
,
...
JSON
.
parse
(
view
.
_context
)
};
}
if
(
view
.
_viewparams
&&
!
Object
.
is
(
view
.
_viewparams
,
''
))
{
_
viewparams
=
{
...
JSON
.
parse
(
view
.
_viewparams
)
};
_
param
=
{
...
_param
,
...
JSON
.
parse
(
view
.
_viewparams
)
};
}
}
else
{
// 视图路由打开
...
...
@@ -320,82 +321,16 @@ export class ViewTool {
});
if
(
view
.
$route
&&
view
.
$route
.
fullPath
&&
view
.
$route
.
fullPath
.
indexOf
(
"?"
)
>
-
1
)
{
const
viewParamStr
=
view
.
$route
.
fullPath
.
slice
(
view
.
$route
.
fullPath
.
indexOf
(
"?"
)
+
1
);
_
viewparams
=
{
...
qs
.
parse
(
viewParamStr
,
{
delimiter
:
'&'
})
};
_
param
=
{
...
_param
,
...
qs
.
parse
(
viewParamStr
,
{
delimiter
:
'&'
})
};
}
}
// 合并视图上下文
data
.
context
=
{
...
data
.
context
,
...
_context
};
// 合并视图参数
data
.
viewparams
=
{
...
data
.
viewparams
,
...
_viewparams
};
this
.
parseViewNavData
(
data
,
view
.
navContext
,
view
.
navParam
);
let
data
=
this
.
formatNavigateParam
(
view
.
navContext
,
view
.
navParam
,
_context
,
_param
,
{});
if
(
isPSDEView
)
{
data
.
context
=
{
...
data
.
context
,
...{
srfsessionid
:
Util
.
createUUID
()
}
}
;
Object
.
assign
(
data
.
context
,
{
srfsessionid
:
Util
.
createUUID
()
})
;
}
return
data
;
}
/**
* 动态视图导航数据
*
* @private
* @param {({ context: any | {}, viewparams: any | {} })} data
* @param {*} [navContext={}]
* @param {*} [navParam={}]
* @memberof ViewTool
*/
private
parseViewNavData
(
data
:
{
context
:
any
|
{},
viewparams
:
any
|
{}
},
navContext
:
any
=
{},
navParam
:
any
=
{}):
void
{
Object
.
keys
(
navContext
).
forEach
((
name
:
any
)
=>
{
if
(
!
name
)
{
return
;
}
let
value
:
any
=
navContext
[
name
];
// 配置值置空,去掉属性
if
(
data
.
context
.
hasOwnProperty
(
name
)
&&
(
this
.
isNull
(
value
)
||
this
.
isUndefined
(
value
)))
{
delete
data
.
context
[
name
];
return
;
}
if
(
value
.
startsWith
(
'%'
)
&&
value
.
endsWith
(
'%'
))
{
const
key
:
string
=
value
.
slice
(
1
,
-
1
);
let
has_value
:
boolean
=
false
;
if
(
data
.
context
.
hasOwnProperty
(
key
))
{
has_value
=
true
;
value
=
data
.
context
[
key
];
delete
data
.
context
[
name
];
}
if
(
!
has_value
)
{
return
;
}
}
Object
.
assign
(
data
.
context
,
{
[
name
]:
value
});
});
Object
.
keys
(
navParam
).
forEach
((
name
:
any
)
=>
{
if
(
!
name
)
{
return
;
}
let
value
:
any
=
navParam
[
name
];
// 配置值置空,去掉属性
if
(
data
.
viewparams
.
hasOwnProperty
(
name
)
&&
(
this
.
isNull
(
value
)
||
this
.
isUndefined
(
value
)))
{
delete
data
.
viewparams
[
name
];
return
;
}
if
(
value
.
startsWith
(
'%'
)
&&
value
.
endsWith
(
'%'
))
{
const
key
:
string
=
value
.
slice
(
1
,
-
1
);
let
has_value
:
boolean
=
false
;
if
(
data
.
viewparams
.
hasOwnProperty
(
key
))
{
has_value
=
true
;
value
=
data
.
viewparams
[
key
];
delete
data
.
viewparams
[
name
];
}
if
(
!
has_value
)
{
return
;
}
}
Object
.
assign
(
data
.
viewparams
,
{
[
name
]:
value
});
});
}
}
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录