Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzlite
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzlite
提交
05af3447
提交
05af3447
编写于
3年前
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
zhouweidong 发布系统代码 [ibz-lite,应用]
上级
b885374d
master
变更
23
隐藏空白字符变更
内嵌
并排
正在显示
23 个修改的文件
包含
3494 行增加
和
111 行删除
+3494
-111
view-config.json
app_web/public/assets/json/view-config.json
+11
-3
meta-dynamic-model_BO_CN_base.ts
...ities/meta-dynamic-model/meta-dynamic-model_BO_CN_base.ts
+27
-3
meta-dynamic-model_en_US_base.ts
...ities/meta-dynamic-model/meta-dynamic-model_en_US_base.ts
+27
-3
meta-dynamic-model_zh_CN_base.ts
...ities/meta-dynamic-model/meta-dynamic-model_zh_CN_base.ts
+27
-3
viewconfig.ts
app_web/src/mock/viewconfig/viewconfig.ts
+11
-3
page-register.ts
app_web/src/pages/lite/lite-index/page-register.ts
+1
-2
router.ts
app_web/src/pages/lite/lite-index/router.ts
+27
-54
meta-dynamic-model-dyna-inst-edit-view-base.vue
...edit-view/meta-dynamic-model-dyna-inst-edit-view-base.vue
+688
-0
meta-dynamic-model-dyna-inst-edit-view.less
...nst-edit-view/meta-dynamic-model-dyna-inst-edit-view.less
+26
-0
meta-dynamic-model-dyna-inst-edit-view.vue
...inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.vue
+22
-0
meta-dynamic-model-dyna-inst-grid-view-base.vue
...grid-view/meta-dynamic-model-dyna-inst-grid-view-base.vue
+3
-3
state.ts
app_web/src/store/modules/view-action/state.ts
+12
-22
meta-dynamic-model-ui-service-base.ts
.../meta-dynamic-model/meta-dynamic-model-ui-service-base.ts
+1
-0
lite-index-appmenu-base.vue
...idgets/app/lite-index-appmenu/lite-index-appmenu-base.vue
+1
-1
lite-index-appmenu-model.ts
...idgets/app/lite-index-appmenu/lite-index-appmenu-model.ts
+3
-3
default-searchform-base.vue
...amic-model/default-searchform/default-searchform-base.vue
+2
-2
dyna-inst-form-base.vue
...meta-dynamic-model/dyna-inst-form/dyna-inst-form-base.vue
+1980
-0
dyna-inst-form-model.ts
...meta-dynamic-model/dyna-inst-form/dyna-inst-form-model.ts
+76
-0
dyna-inst-form-service.ts
...ta-dynamic-model/dyna-inst-form/dyna-inst-form-service.ts
+472
-0
dyna-inst-form.less
...ets/meta-dynamic-model/dyna-inst-form/dyna-inst-form.less
+54
-0
dyna-inst-form.vue
...gets/meta-dynamic-model/dyna-inst-form/dyna-inst-form.vue
+14
-0
main-grid-base.vue
...c/widgets/meta-dynamic-model/main-grid/main-grid-base.vue
+6
-6
h2_table.xml
ibzlite-core/src/main/resources/liquibase/h2_table.xml
+3
-3
未找到文件。
app_web/public/assets/json/view-config.json
浏览文件 @
05af3447
...
...
@@ -144,8 +144,8 @@
"viewtag"
:
"3c4651b0fddbda6565cce70dbada576a"
},
"metadynamicmodeldynainstgridview"
:
{
"title"
:
"
副本
"
,
"caption"
:
"
副本
"
,
"title"
:
"
动态模型表格视图
"
,
"caption"
:
"
动态模型表格视图
"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"lite"
,
"viewname"
:
"MetaDynamicModelDynaInstGridView"
,
...
...
@@ -168,7 +168,7 @@
"viewtag"
:
"4f19fa8bfbce2c71261ca7cc076f316e"
},
"metadynamicmodelgridview"
:
{
"title"
:
"动态模型
表格视图
"
,
"title"
:
"动态模型"
,
"caption"
:
"动态模型"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"lite"
,
...
...
@@ -335,6 +335,14 @@
"viewname"
:
"MetaModuleEditView"
,
"viewtag"
:
"b35e034dc0072ebf714a930060f78651"
},
"metadynamicmodeldynainsteditview"
:
{
"title"
:
"动态模型编辑视图"
,
"caption"
:
"动态模型"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"lite"
,
"viewname"
:
"MetaDynamicModelDynaInstEditView"
,
"viewtag"
:
"b81c2d5d0162a47fed1d37c7b66ed0b0"
},
"metadataseteditview"
:
{
"title"
:
"数据集编辑视图"
,
"caption"
:
"数据集"
,
...
...
This diff is collapsed.
Click to expand it.
app_web/src/locale/lanres/entities/meta-dynamic-model/meta-dynamic-model_BO_CN_base.ts
浏览文件 @
05af3447
...
...
@@ -17,15 +17,37 @@ function getLocaleResourceBase(){
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
dynainstgridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
caption
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
},
gridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型表格视图"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
},
dynainsteditview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
},
main_form
:
{
details
:
{
group1
:
commonLogic
.
appcommonhandle
(
"动态模型基本信息"
,
null
),
formpage1
:
commonLogic
.
appcommonhandle
(
"基本信息"
,
null
),
srforikey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfkey
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
srfmajortext
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
srftempmode
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfuf
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfdeid
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfsourcekey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
configname
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
formitem
:
commonLogic
.
appcommonhandle
(
"文件"
,
null
),
configid
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
},
uiactions
:
{
},
},
dynainst_form
:
{
details
:
{
druipart1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
tabpage1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
...
...
@@ -196,6 +218,8 @@ function getLocaleResourceBase(){
tip
:
commonLogic
.
appcommonhandle
(
"帮助"
,
null
),
},
},
dynainsteditviewtoolbar_toolbar
:
{
},
gridviewtoolbar_toolbar
:
{
tbitem1_publish
:
{
caption
:
commonLogic
.
appcommonhandle
(
"发布模型"
,
null
),
...
...
This diff is collapsed.
Click to expand it.
app_web/src/locale/lanres/entities/meta-dynamic-model/meta-dynamic-model_en_US_base.ts
浏览文件 @
05af3447
...
...
@@ -17,15 +17,37 @@ function getLocaleResourceBase(){
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
dynainstgridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
caption
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
},
gridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型表格视图"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
},
dynainsteditview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
},
main_form
:
{
details
:
{
group1
:
commonLogic
.
appcommonhandle
(
"动态模型基本信息"
,
null
),
formpage1
:
commonLogic
.
appcommonhandle
(
"基本信息"
,
null
),
srforikey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfkey
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
srfmajortext
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
srftempmode
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfuf
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfdeid
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfsourcekey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
configname
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
formitem
:
commonLogic
.
appcommonhandle
(
"文件"
,
null
),
configid
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
},
uiactions
:
{
},
},
dynainst_form
:
{
details
:
{
druipart1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
tabpage1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
...
...
@@ -196,6 +218,8 @@ function getLocaleResourceBase(){
tip
:
commonLogic
.
appcommonhandle
(
"Help"
,
null
),
},
},
dynainsteditviewtoolbar_toolbar
:
{
},
gridviewtoolbar_toolbar
:
{
tbitem1_publish
:
{
caption
:
commonLogic
.
appcommonhandle
(
"发布模型"
,
null
),
...
...
This diff is collapsed.
Click to expand it.
app_web/src/locale/lanres/entities/meta-dynamic-model/meta-dynamic-model_zh_CN_base.ts
浏览文件 @
05af3447
...
...
@@ -17,15 +17,37 @@ function getLocaleResourceBase(){
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
dynainstgridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
副本
"
,
null
),
caption
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"
动态模型表格视图
"
,
null
),
},
gridview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型表格视图"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
},
dynainsteditview
:
{
caption
:
commonLogic
.
appcommonhandle
(
"动态模型"
,
null
),
title
:
commonLogic
.
appcommonhandle
(
"动态模型编辑视图"
,
null
),
},
},
main_form
:
{
details
:
{
group1
:
commonLogic
.
appcommonhandle
(
"动态模型基本信息"
,
null
),
formpage1
:
commonLogic
.
appcommonhandle
(
"基本信息"
,
null
),
srforikey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfkey
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
srfmajortext
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
srftempmode
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfuf
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfdeid
:
commonLogic
.
appcommonhandle
(
""
,
null
),
srfsourcekey
:
commonLogic
.
appcommonhandle
(
""
,
null
),
configname
:
commonLogic
.
appcommonhandle
(
"配置名称"
,
null
),
formitem
:
commonLogic
.
appcommonhandle
(
"文件"
,
null
),
configid
:
commonLogic
.
appcommonhandle
(
"配置标识"
,
null
),
},
uiactions
:
{
},
},
dynainst_form
:
{
details
:
{
druipart1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
tabpage1
:
commonLogic
.
appcommonhandle
(
"副本"
,
null
),
...
...
@@ -196,6 +218,8 @@ function getLocaleResourceBase(){
tip
:
commonLogic
.
appcommonhandle
(
"帮助"
,
null
),
},
},
dynainsteditviewtoolbar_toolbar
:
{
},
gridviewtoolbar_toolbar
:
{
tbitem1_publish
:
{
caption
:
commonLogic
.
appcommonhandle
(
"发布模型"
,
null
),
...
...
This diff is collapsed.
Click to expand it.
app_web/src/mock/viewconfig/viewconfig.ts
浏览文件 @
05af3447
...
...
@@ -152,8 +152,8 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewtag"
:
"3c4651b0fddbda6565cce70dbada576a"
},
"metadynamicmodeldynainstgridview"
:
{
"title"
:
"
副本
"
,
"caption"
:
"
副本
"
,
"title"
:
"
动态模型表格视图
"
,
"caption"
:
"
动态模型表格视图
"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"lite"
,
"viewname"
:
"MetaDynamicModelDynaInstGridView"
,
...
...
@@ -176,7 +176,7 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewtag"
:
"4f19fa8bfbce2c71261ca7cc076f316e"
},
"metadynamicmodelgridview"
:
{
"title"
:
"动态模型
表格视图
"
,
"title"
:
"动态模型"
,
"caption"
:
"动态模型"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"lite"
,
...
...
@@ -343,6 +343,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"MetaModuleEditView"
,
"viewtag"
:
"b35e034dc0072ebf714a930060f78651"
},
"metadynamicmodeldynainsteditview"
:
{
"title"
:
"动态模型编辑视图"
,
"caption"
:
"动态模型"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"lite"
,
"viewname"
:
"MetaDynamicModelDynaInstEditView"
,
"viewtag"
:
"b81c2d5d0162a47fed1d37c7b66ed0b0"
},
"metadataseteditview"
:
{
"title"
:
"数据集编辑视图"
,
"caption"
:
"数据集"
,
...
...
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/lite-index/page-register.ts
浏览文件 @
05af3447
export
const
PageComponents
=
{
install
(
Vue
:
any
,
opt
:
any
)
{
Vue
.
component
(
'dst-microservice-edit-view'
,
()
=>
import
(
'@pages/lite/dst-microservice-edit-view/dst-microservice-edit-view.vue'
));
Vue
.
component
(
'meta-dynamic-model-dyna-inst-edit-view'
,
()
=>
import
(
'@pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.vue'
));
Vue
.
component
(
'dst-system-grid-view'
,
()
=>
import
(
'@pages/lite/dst-system-grid-view/dst-system-grid-view.vue'
));
Vue
.
component
(
'meta-model-edit-view'
,
()
=>
import
(
'@pages/lite/meta-model-edit-view/meta-model-edit-view.vue'
));
Vue
.
component
(
'meta-dynamic-model-grid-view'
,
()
=>
import
(
'@pages/lite/meta-dynamic-model-grid-view/meta-dynamic-model-grid-view.vue'
));
Vue
.
component
(
'dst-data-source-grid-view'
,
()
=>
import
(
'@pages/lite/dst-data-source-grid-view/dst-data-source-grid-view.vue'
));
Vue
.
component
(
'dst-microservice-pickup-grid-view'
,
()
=>
import
(
'@pages/lite/dst-microservice-pickup-grid-view/dst-microservice-pickup-grid-view.vue'
));
Vue
.
component
(
'dst-data-source-pickup-grid-view'
,
()
=>
import
(
'@pages/lite/dst-data-source-pickup-grid-view/dst-data-source-pickup-grid-view.vue'
));
...
...
@@ -35,7 +35,6 @@ export const PageComponents = {
Vue
.
component
(
'meta-entity-edit-view'
,
()
=>
import
(
'@pages/lite/meta-entity-edit-view/meta-entity-edit-view.vue'
));
Vue
.
component
(
'dst-microservice-pickup-view'
,
()
=>
import
(
'@pages/lite/dst-microservice-pickup-view/dst-microservice-pickup-view.vue'
));
Vue
.
component
(
'meta-field-pickup-grid-view'
,
()
=>
import
(
'@pages/lite/meta-field-pickup-grid-view/meta-field-pickup-grid-view.vue'
));
Vue
.
component
(
'meta-dynamic-model-edit-view'
,
()
=>
import
(
'@pages/lite/meta-dynamic-model-edit-view/meta-dynamic-model-edit-view.vue'
));
Vue
.
component
(
'blade-visual-edit-view'
,
()
=>
import
(
'@pages/avuedata/blade-visual-edit-view/blade-visual-edit-view.vue'
));
Vue
.
component
(
'dst-component-edit-view'
,
()
=>
import
(
'@pages/lite/dst-component-edit-view/dst-component-edit-view.vue'
));
Vue
.
component
(
'meta-module-pickup-grid-view'
,
()
=>
import
(
'@pages/lite/meta-module-pickup-grid-view/meta-module-pickup-grid-view.vue'
));
...
...
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/lite-index/router.ts
浏览文件 @
05af3447
...
...
@@ -64,6 +64,20 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/dst-microservice-edit-view/dst-microservice-edit-view.vue'
),
},
{
path
:
'metadynamicmodels/:metadynamicmodel?/dynainsteditview/:dynainsteditview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.dynainsteditview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'liteindex'
,
parameterName
:
'liteindex'
},
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'dynainsteditview'
,
parameterName
:
'dynainsteditview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.vue'
),
},
{
path
:
'dstsystems/:dstsystem?/gridview/:gridview?'
,
meta
:
{
...
...
@@ -92,20 +106,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/meta-model-edit-view/meta-model-edit-view.vue'
),
},
{
path
:
'metadynamicmodels/:metadynamicmodel?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.gridview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'liteindex'
,
parameterName
:
'liteindex'
},
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-grid-view/meta-dynamic-model-grid-view.vue'
),
},
{
path
:
'dstdatasources/:dstdatasource?/gridview/:gridview?'
,
meta
:
{
...
...
@@ -1033,20 +1033,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/meta-field-pickup-grid-view/meta-field-pickup-grid-view.vue'
),
},
{
path
:
'metadynamicmodels/:metadynamicmodel?/editview/:editview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.editview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'liteindex'
,
parameterName
:
'liteindex'
},
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-edit-view/meta-dynamic-model-edit-view.vue'
),
},
{
path
:
'bladevisuals/:bladevisual?/editview/:editview?'
,
meta
:
{
...
...
@@ -1501,19 +1487,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/dst-apigrid-view/dst-apigrid-view.vue'
),
},
{
path
:
'/metadynamicmodels/:metadynamicmodel?/editview/:editview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.editview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-edit-view/meta-dynamic-model-edit-view.vue'
),
},
{
path
:
'/metamodels/:metamodel?/gridview/:gridview?'
,
meta
:
{
...
...
@@ -1953,19 +1926,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/dst-microservice-grid-view/dst-microservice-grid-view.vue'
),
},
{
path
:
'/metadynamicmodels/:metadynamicmodel?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.gridview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-grid-view/meta-dynamic-model-grid-view.vue'
),
},
{
path
:
'/dstsystems/:dstsystem?/dstmicroservices/:dstmicroservice?/dstapis/:dstapi?/editview/:editview?'
,
meta
:
{
...
...
@@ -2390,6 +2350,19 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/lite/meta-module-edit-view/meta-module-edit-view.vue'
),
},
{
path
:
'/metadynamicmodels/:metadynamicmodel?/dynainsteditview/:dynainsteditview?'
,
meta
:
{
caption
:
'entities.metadynamicmodel.views.dynainsteditview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'dynainsteditview'
,
parameterName
:
'dynainsteditview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.vue'
),
},
{
path
:
'/dstsystems/:dstsystem?/metaentities/:metaentity?/metadatasets/:metadataset?/editview/:editview?'
,
meta
:
{
...
...
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view-base.vue
0 → 100644
浏览文件 @
05af3447
<
template
>
<div
class=
"view-container deeditview meta-dynamic-model-dyna-inst-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"metadynamicmodeldynainsteditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
<div
class=
'toolbar-container'
>
</div>
</div>
<div
class=
'view-top-messages'
>
</div>
<div
class=
"content-container"
>
<div
class=
'view-body-messages'
>
</div>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
load=
"form_load($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</div>
<div
class=
'view-bottom-messages'
>
</div>
</card>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
MetaDynamicModelService
from
'@/service/meta-dynamic-model/meta-dynamic-model-service'
;
import
MetaDynamicModelAuthService
from
'@/authservice/meta-dynamic-model/meta-dynamic-model-auth-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
import
MetaDynamicModelUIService
from
'@/uiservice/meta-dynamic-model/meta-dynamic-model-ui-service'
;
@
Component
({
components
:
{
},
})
export
default
class
MetaDynamicModelDynaInstEditViewBase
extends
Vue
{
/**
* 实体服务对象
*
* @type {MetaDynamicModelService}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
appEntityService
:
MetaDynamicModelService
=
new
MetaDynamicModelService
;
/**
* 实体UI服务对象
*
* @type MetaDynamicModelUIService
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
appUIService
:
MetaDynamicModelUIService
=
new
MetaDynamicModelUIService
(
this
.
$store
);
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Emit
()
public
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Prop
()
public
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Prop
()
public
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Inject
({
from
:
'navModel'
,
default
:
'tab'
})
public
navModel
!
:
string
;
/**
* 视图标识
*
* @type {string}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
viewtag
:
string
=
'b81c2d5d0162a47fed1d37c7b66ed0b0'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
model
:
any
=
{
srfCaption
:
'entities.metadynamicmodel.views.dynainsteditview.caption'
,
srfTitle
:
'entities.metadynamicmodel.views.dynainsteditview.title'
,
srfSubTitle
:
'entities.metadynamicmodel.views.dynainsteditview.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
this
.
viewparams
=
{};
if
(
typeof
newVal
==
'string'
)
{
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
else
{
this
.
viewparams
=
Util
.
deepCopy
(
this
.
viewparam
);
}
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
});
}
else
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 视图刷新
*
* @param {*} args
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
refresh
(
args
?:
any
):
void
{
const
refs
:
any
=
this
.
$refs
;
if
(
refs
&&
refs
.
form
)
{
refs
.
form
.
refresh
();
}
}
/**
* 计数器刷新
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
counterRefresh
(){
const
_this
:
any
=
this
;
if
(
_this
.
counterServiceArray
&&
_this
.
counterServiceArray
.
length
>
0
){
_this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
refreshData
&&
item
.
refreshData
instanceof
Function
){
item
.
refreshData
();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 工具栏模型
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditView
*/
public
toolBarModels
:
any
=
{
};
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
engine
:
EditViewEngine
=
new
EditViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'metadynamicmodel'
,
majorPSDEField
:
'configname'
,
isLoadDefault
:
true
,
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 门户部件状态对象
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
@
Prop
()
public
portletState
?:
any
;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
portletStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
viewCacheData
:
any
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 解析视图参数
*
* @public
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
if
(
typeof
this
.
viewdata
==
'string'
)
{
Object
.
assign
(
this
.
context
,
JSON
.
parse
(
this
.
viewdata
));
}
if
(
this
.
context
&&
this
.
context
.
srfparentdename
){
Object
.
assign
(
this
.
viewparams
,{
srfparentdename
:
this
.
context
.
srfparentdename
});
}
if
(
this
.
context
&&
this
.
context
.
srfparentkey
){
Object
.
assign
(
this
.
viewparams
,{
srfparentkey
:
this
.
context
.
srfparentkey
});
}
this
.
handleCustomViewData
();
return
;
}
const
path
=
(
this
.
$route
.
matched
[
this
.
$route
.
matched
.
length
-
1
]).
path
;
const
keys
:
Array
<
any
>
=
[];
const
curReg
=
this
.
$pathToRegExp
.
pathToRegexp
(
path
,
keys
);
const
matchArray
=
curReg
.
exec
(
this
.
$route
.
path
);
let
tempValue
:
Object
=
{};
keys
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
.
name
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'metadynamicmodel'
:
inputvalue
});
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavDataWithRoute
();
}
/**
* 处理自定义视图数据
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
handleCustomViewData
(){
if
(
Object
.
keys
(
this
.
customViewNavContexts
).
length
>
0
){
Object
.
keys
(
this
.
customViewNavContexts
).
forEach
((
item
:
any
)
=>
{
let
tempContext
:
any
=
{};
let
curNavContext
:
any
=
this
.
customViewNavContexts
[
item
];
this
.
handleCustomDataLogic
(
curNavContext
,
tempContext
,
item
);
Object
.
assign
(
this
.
context
,
tempContext
);
})
}
if
(
Object
.
keys
(
this
.
customViewParams
).
length
>
0
){
Object
.
keys
(
this
.
customViewParams
).
forEach
((
item
:
any
)
=>
{
let
tempParam
:
any
=
{};
let
curNavParam
:
any
=
this
.
customViewParams
[
item
];
this
.
handleCustomDataLogic
(
curNavParam
,
tempParam
,
item
);
Object
.
assign
(
this
.
viewparams
,
tempParam
);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
handleCustomDataLogic
(
curNavData
:
any
,
tempData
:
any
,
item
:
string
){
// 直接值直接赋值
if
(
curNavData
.
isRawValue
){
if
(
Object
.
is
(
curNavData
.
value
,
"null"
)
||
Object
.
is
(
curNavData
.
value
,
""
)){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
curNavData
.
value
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
else
{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if
(
this
.
context
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
}
}
/**
* 初始化导航数据(路由模式)
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'meta-dynamic-model-dyna-inst-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
metadynamicmodel
,
title
:
this
.
$t
(
this
.
model
.
srfCaption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'meta-dynamic-model-dyna-inst-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
metadynamicmodel
,
title
:
this
.
$t
(
this
.
model
.
srfCaption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
/**
* Vue声明周期
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
afterCreated
(){
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'meta-dynamic-model-dyna-inst-edit-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
if
(
_this
.
portletState
){
_this
.
portletStateEvent
=
_this
.
portletState
.
subscribe
((
res
:
any
)
=>
{
if
(
!
Object
.
is
(
res
.
name
,
'MetaDynamicModelDynaInstEditView'
)){
return
;
}
if
(
Object
.
is
(
res
.
action
,
'refresh'
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
){
_this
.
refresh
();
}
})
}
}
/**
* 销毁之前
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
closeView
(
args
:
any
[]):
void
{
let
_view
:
any
=
this
;
if
(
_view
.
viewdata
)
{
_view
.
$emit
(
'viewdataschange'
,
Array
.
isArray
(
args
)?
args
:[
args
]);
_view
.
$emit
(
'close'
,
Array
.
isArray
(
args
)?
args
:[
args
]);
}
else
if
(
_view
.
$tabPageExp
)
{
_view
.
$tabPageExp
.
onClose
(
_view
.
$route
.
fullPath
);
}
}
/**
* 销毁视图回调
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof MetaDynamicModelDynaInstEditViewBase
*/
public
afterDestroyed
(){
if
(
this
.
viewDefaultUsage
){
let
localStoreLength
=
Object
.
keys
(
localStorage
);
if
(
localStoreLength
.
length
>
0
){
localStoreLength
.
forEach
((
item
:
string
)
=>
{
if
(
item
.
startsWith
(
this
.
context
.
srfsessionid
)){
localStorage
.
removeItem
(
item
);
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
// 销毁计数器定时器
if
(
this
.
counterServiceArray
&&
this
.
counterServiceArray
.
length
>
0
){
this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
destroyCounter
&&
item
.
destroyCounter
instanceof
Function
){
item
.
destroyCounter
();
}
})
}
if
(
this
.
portletStateEvent
){
this
.
portletStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './meta-dynamic-model-dyna-inst-edit-view.less';
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.less
0 → 100644
浏览文件 @
05af3447
.view-card {
>.ivu-card-extra {
top: 5px;
right: 0px;
}
}
.meta-dynamic-model-dyna-inst-edit-view{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/meta-dynamic-model-dyna-inst-edit-view/meta-dynamic-model-dyna-inst-edit-view.vue
0 → 100644
浏览文件 @
05af3447
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
MetaDynamicModelDynaInstEditViewBase
from
'./meta-dynamic-model-dyna-inst-edit-view-base.vue'
;
import
view_form
from
'@widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form.vue'
;
@
Component
({
components
:
{
view_form
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
MetaDynamicModelDynaInstEditView
extends
MetaDynamicModelDynaInstEditViewBase
{
}
</
script
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/pages/lite/meta-dynamic-model-dyna-inst-grid-view/meta-dynamic-model-dyna-inst-grid-view-base.vue
浏览文件 @
05af3447
...
...
@@ -140,7 +140,7 @@
loaddraftAction=
""
loadAction=
""
createAction=
""
fetchAction=
"FetchD
efaul
t"
fetchAction=
"FetchD
ynaIns
t"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"grid"
...
...
@@ -1347,7 +1347,7 @@ export default class MetaDynamicModelDynaInstGridViewBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'
editview'
,
parameterName
:
'
editview'
},
{
pathName
:
'
dynainsteditview'
,
parameterName
:
'dynainst
editview'
},
];
const
_this
:
any
=
this
;
const
openIndexViewTab
=
(
data
:
any
)
=>
{
...
...
@@ -1388,7 +1388,7 @@ export default class MetaDynamicModelDynaInstGridViewBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'
editview'
,
parameterName
:
'
editview'
},
{
pathName
:
'
dynainsteditview'
,
parameterName
:
'dynainst
editview'
},
];
const
_this
:
any
=
this
;
if
(
fullargs
&&
fullargs
.
copymode
){
...
...
This diff is collapsed.
Click to expand it.
app_web/src/store/modules/view-action/state.ts
浏览文件 @
05af3447
...
...
@@ -32,16 +32,6 @@ export const viewstate: any = {
'566e7ad7de2c879a911727539980e0d9'
,
],
},
{
viewtag
:
'1777e5578e41e94cdf738b950a961ab1'
,
viewmodule
:
'lite'
,
viewname
:
'MetaDynamicModelEditView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'409f7ea81d15d2e2f1ee295d189d965b'
,
],
},
{
viewtag
:
'18d59a3ac7947d7123e0be76e7cb71c0'
,
viewmodule
:
'lite'
,
...
...
@@ -172,7 +162,7 @@ export const viewstate: any = {
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'
1777e5578e41e94cdf738b950a961ab1
'
,
'
b81c2d5d0162a47fed1d37c7b66ed0b0
'
,
],
},
{
...
...
@@ -194,16 +184,6 @@ export const viewstate: any = {
'83be61fac74682d541d364717e7f6f31'
,
],
},
{
viewtag
:
'4f66aaf7857f97a00ab6cf6c1c054262'
,
viewmodule
:
'lite'
,
viewname
:
'MetaDynamicModelGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'1777e5578e41e94cdf738b950a961ab1'
,
],
},
{
viewtag
:
'566e7ad7de2c879a911727539980e0d9'
,
viewmodule
:
'lite'
,
...
...
@@ -295,11 +275,11 @@ export const viewstate: any = {
'ec89001b31b540bbfbc5df332d300b29'
,
'e5a20b8d7ce2cf41e100a3738fcff3a3'
,
'10aa45718d82d8f115c75ba01abb2de1'
,
'4f66aaf7857f97a00ab6cf6c1c054262'
,
'd613248735503950b91cb7094b036cdc'
,
'f20b2b6dc4d1c75c48f5da3eca3a3274'
,
'16af256f35cdf891e8e04f8fe652e91b'
,
'1ade7920c947bf50c32012de9962a92d'
,
'409f7ea81d15d2e2f1ee295d189d965b'
,
'33ec4b7d5a31addaec9b033067520820'
,
'88894333da0e2e0f7a556ecabf7b48ab'
,
'18d59a3ac7947d7123e0be76e7cb71c0'
,
...
...
@@ -382,6 +362,16 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'b81c2d5d0162a47fed1d37c7b66ed0b0'
,
viewmodule
:
'lite'
,
viewname
:
'MetaDynamicModelDynaInstEditView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'409f7ea81d15d2e2f1ee295d189d965b'
,
],
},
{
viewtag
:
'c172e249359ac4100216c0b04ecf5a51'
,
viewmodule
:
'lite'
,
...
...
This diff is collapsed.
Click to expand it.
app_web/src/uiservice/meta-dynamic-model/meta-dynamic-model-ui-service-base.ts
浏览文件 @
05af3447
...
...
@@ -99,6 +99,7 @@ export default class MetaDynamicModelUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'metadynamicmodels'
,
component
:
'meta-dynamic-model-edit-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'dynainstgridview'
,
srfappde
:
'metadynamicmodels'
,
component
:
'meta-dynamic-model-dyna-inst-grid-view'
});
this
.
allViewMap
.
set
(
'MDATAVIEW:'
,{
viewname
:
'gridview'
,
srfappde
:
'metadynamicmodels'
,
component
:
'meta-dynamic-model-grid-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'dynainsteditview'
,
srfappde
:
'metadynamicmodels'
,
component
:
'meta-dynamic-model-dyna-inst-edit-view'
});
}
/**
...
...
This diff is collapsed.
Click to expand it.
app_web/src/widgets/app/lite-index-appmenu/lite-index-appmenu-base.vue
浏览文件 @
05af3447
...
...
@@ -794,7 +794,7 @@ export default class LiteIndexBase extends Vue implements ControlInterface {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'
gridview'
,
parameterName
:
'
gridview'
},
{
pathName
:
'
dynainstgridview'
,
parameterName
:
'dynainst
gridview'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
if
(
Object
.
is
(
this
.
$route
.
fullPath
,
path
)){
...
...
This diff is collapsed.
Click to expand it.
app_web/src/widgets/app/lite-index-appmenu/lite-index-appmenu-model.ts
浏览文件 @
05af3447
...
...
@@ -366,12 +366,12 @@ export default class LiteIndexModel {
appfunctag
:
'AppFunc14'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'metadynamicmodelgridview'
,
codename
:
'metadynamicmodel
dynainst
gridview'
,
deResParameters
:
[],
routepath
:
'/liteindex/:liteindex?/metadynamicmodels/:metadynamicmodel?/
gridview/:
gridview?'
,
routepath
:
'/liteindex/:liteindex?/metadynamicmodels/:metadynamicmodel?/
dynainstgridview/:dynainst
gridview?'
,
parameters
:
[
{
pathName
:
'metadynamicmodels'
,
parameterName
:
'metadynamicmodel'
},
{
pathName
:
'
gridview'
,
parameterName
:
'
gridview'
},
{
pathName
:
'
dynainstgridview'
,
parameterName
:
'dynainst
gridview'
},
],
},
{
...
...
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/default-searchform/default-searchform-base.vue
浏览文件 @
05af3447
...
...
@@ -590,7 +590,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -626,7 +626,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
loadDraft
(
opt
:
any
=
{},
mode
?:
string
):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form-base.vue
0 → 100644
浏览文件 @
05af3447
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'metadynamicmodel_dynainst'
style=
""
@
on-validate=
"formItemValidate"
>
<input
style=
"display:none;"
/>
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
:uiService=
"appUIService"
:data=
"transformData(data)"
:manageContainerStatus=
"detailsModel.group1.manageContainerStatus"
:isManageContainer=
"detailsModel.group1.isManageContainer"
@
managecontainerclick=
"manageContainerClick('group1')"
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.metadynamicmodel.dynainst_form.details.group1')"
:isShowCaption=
"true"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.configname.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-item
name=
'configname'
:itemRules=
"this.rules().configname"
class=
''
:caption=
"$t('entities.metadynamicmodel.dynainst_form.details.configname')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.configname.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
<input-box
v-model=
"data.configname"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.configname.disabled"
type=
'text'
style=
""
>
</input-box>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.formitem.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-item
name=
'formitem'
:itemRules=
"this.rules().formitem"
class=
''
:caption=
"$t('entities.metadynamicmodel.dynainst_form.details.formitem')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.formitem.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
<app-file-upload
:formState=
"formState"
:ignorefieldvaluechange=
"ignorefieldvaluechange"
@
formitemvaluechange=
"onFormItemValueChange"
:data=
"JSON.stringify(this.data)"
name=
'formitem'
:value=
"data.formitem"
:disabled=
"detailsModel.formitem.disabled"
:uploadparams=
'
{}' :exportparams='{}' style="overflow: auto;">
</app-file-upload>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.tabpanel1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<tabs
:animated=
"false"
name=
'tabpanel1'
v-show=
"detailsModel.tabpanel1.visible"
class=
''
:value=
"detailsModel.tabpanel1.activiedPage"
@
on-click=
"detailsModel.tabpanel1.clickPage($event)"
>
<tab-pane
v-show=
"detailsModel.tabpage1.visible"
name=
'tabpage1'
:index=
"0"
tab=
'tabpanel1'
class=
''
:label=
"(h) =>
{
return h('span',{
class:'caption'
},[
$t('entities.metadynamicmodel.dynainst_form.details.tabpage1')
])
}">
<i-col
v-show=
"detailsModel.druipart1.visible"
:style=
"
{'height': '500px !important',}" :lg="{ span: 24, offset: 0 }">
<app-form-druipart
:formState=
"formState"
:isForbidLoad=
"this.data.srfuf === '0'"
paramItem=
'metadynamicmodel'
:parentdata=
'
{"srfparentdefname":"PDYNAINSTID","srfparentdename":"META_DYNAMICMODEL","SRFPARENTTYPE":"DER1N","srfparentmode":"DER1N_META_DYNAMICMODEL_META_DYNAMICMODEL_PDYNAINSTID","SRFDER1NID":"DER1N_META_DYNAMICMODEL_META_DYNAMICMODEL_PDYNAINSTID"}'
:parameters="[
]"
:context="context"
:viewparams="viewparams"
:localContext ='{}'
:localParam ='{}'
parameterName='metadynamicmodel'
parentName="MetaDynamicModel"
refviewtype='DEGRIDVIEW'
refreshitems=''
:ignorefieldvaluechange="ignorefieldvaluechange"
viewname='meta-dynamic-model-dyna-inst-grid-view'
tempMode='0'
:data="JSON.stringify(this.data)"
@drdatasaved="drdatasaved($event)"
style="height:500px;overflow: auto;">
</app-form-druipart>
</i-col>
</tab-pane>
</tabs>
</i-col>
</row>
</app-form-group>
</i-col>
</row>
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
,
ViewTool
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
AppCenterService
from
"@service/app/app-center-service"
;
import
MetaDynamicModelEntityService
from
'@/service/meta-dynamic-model/meta-dynamic-model-service'
;
import
DynaInstService
from
'./dyna-inst-form-service'
;
import
MetaDynamicModelUIService
from
'@/uiservice/meta-dynamic-model/meta-dynamic-model-ui-service'
;
import
{
FormButtonModel
,
FormPageModel
,
FormItemModel
,
FormDRUIPartModel
,
FormPartModel
,
FormGroupPanelModel
,
FormIFrameModel
,
FormRowItemModel
,
FormTabPageModel
,
FormTabPanelModel
,
FormUserControlModel
}
from
'@/model/form-detail'
;
import
{
debounceTime
,
distinctUntilChanged
}
from
'rxjs/operators'
;
import
schema
from
'async-validator'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
DynaInstBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof DynaInstBase
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof DynaInstBase
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof DynaInstBase
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof DynaInstBase
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof DynaInstBase
*/
public
getControlType
():
string
{
return
'FORM'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof DynaInstBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {DynaInstService}
* @memberof DynaInstBase
*/
public
service
:
DynaInstService
=
new
DynaInstService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {MetaDynamicModelService}
* @memberof DynaInstBase
*/
public
appEntityService
:
MetaDynamicModelEntityService
=
new
MetaDynamicModelEntityService
({
$store
:
this
.
$store
});
/**
* 转化数据
*
* @param {any} args
* @memberof DynaInstBase
*/
public
transformData
(
args
:
any
)
{
let
_this
:
any
=
this
;
if
(
_this
.
service
&&
_this
.
service
.
handleRequestData
instanceof
Function
&&
_this
.
service
.
handleRequestData
(
'transform'
,
_this
.
context
,
args
)){
return
_this
.
service
.
handleRequestData
(
'transform'
,
_this
.
context
,
args
)[
'data'
];
}
}
/**
* 关闭视图
*
* @param {any} args
* @memberof DynaInstBase
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof DynaInstBase
*/
public
counterRefresh
(){
const
_this
:
any
=
this
;
if
(
_this
.
counterServiceArray
&&
_this
.
counterServiceArray
.
length
>
0
){
_this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
refreshData
&&
item
.
refreshData
instanceof
Function
){
item
.
refreshData
();
}
})
}
}
/**
* 视图默认使用
*
* @type {string}
* @memberof DynaInstBase
*/
@
Inject
({
from
:
'navModel'
,
default
:
'tab'
})
public
navModel
!
:
string
;
/**
* 主键表单项名称
*
* @protected
* @type {string}
* @memberof DynaInstBase
*/
public
formKeyItemName
:
string
=
''
;
/**
* 是否自动加载
*
* @type {boolean}
* @memberof DynaInstBase
*/
@
Prop
({
default
:
false
})
public
isautoload
?:
boolean
;
/**
* 界面UI服务对象
*
* @type {MetaDynamicModelUIService}
* @memberof DynaInstBase
*/
public
appUIService
:
MetaDynamicModelUIService
=
new
MetaDynamicModelUIService
(
this
.
$store
);
/**
* 工作流审批意见控件绑定值
*
* @memberof DynaInstBase
*/
public
srfwfmemo
:
string
=
""
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof DynaInstBase
*/
public
getDatas
():
any
[]
{
return
[
this
.
data
];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof DynaInstBase
*/
public
getData
():
any
{
return
this
.
data
;
}
/**
* 是否默认保存
*
* @type {boolean}
* @memberof DynaInstBase
*/
@
Prop
({
default
:
false
})
public
autosave
?:
boolean
;
/**
* 显示处理提示
*
* @type {boolean}
* @memberof DynaInstBase
*/
@
Prop
({
default
:
true
})
public
showBusyIndicator
?:
boolean
;
/**
* 部件行为--submit
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
WFSubmitAction
!
:
string
;
/**
* 部件行为--start
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
WFStartAction
!
:
string
;
/**
* 部件行为--update
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
updateAction
!
:
string
;
/**
* 部件行为--remove
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
removeAction
!
:
string
;
/**
* 部件行为--loaddraft
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
loaddraftAction
!
:
string
;
/**
* 部件行为--load
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
loadAction
!
:
string
;
/**
* 部件行为--create
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
createAction
!
:
string
;
/**
* 部件行为--create
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
searchAction
!
:
string
;
/**
* 视图标识
*
* @type {string}
* @memberof DynaInstBase
*/
@
Prop
()
public
viewtag
!
:
string
;
/**
* 表单状态
*
* @type {Subject<any>}
* @memberof DynaInstBase
*/
public
formState
:
Subject
<
any
>
=
new
Subject
();
/**
* 忽略表单项值变化
*
* @type {boolean}
* @memberof DynaInstBase
*/
public
ignorefieldvaluechange
:
boolean
=
false
;
/**
* 数据变化
*
* @public
* @type {Subject<any>}
* @memberof DynaInstBase
*/
public
dataChang
:
Subject
<
any
>
=
new
Subject
();
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof DynaInstBase
*/
public
dataChangEvent
:
Subscription
|
undefined
;
/**
* 原始数据
*
* @public
* @type {*}
* @memberof DynaInstBase
*/
public
oldData
:
any
=
{};
/**
* 混入表单数据对象
*
* @type {*}
* @memberof DynaInstBase
*/
public
mixinData
:
any
=
{};
/**
* 表单项校验错误提示信息
*
* @memberof DynaInstBase
*/
public
errorMessages
:
Array
<
any
>
=
[];
/**
* 应用状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof DynaInstBase
*/
public
appStateEvent
:
Subscription
|
undefined
;
/**
* 设置表单项错误提示信息
*
* @param {*} prop 表单项字段名
* @param {*} status 校验状态
* @param {*} error 错误信息
* @memberof DynaInstBase
*/
public
formItemValidate
(
prop
:
string
,
status
:
boolean
,
error
:
string
){
error
=
error
?
error
:
''
;
if
(
this
.
errorMessages
&&
this
.
errorMessages
.
length
>
0
){
const
index
=
this
.
errorMessages
.
findIndex
((
errorMessage
:
any
)
=>
Object
.
is
(
errorMessage
.
prop
,
prop
));
if
(
index
!=
-
1
){
this
.
errorMessages
[
index
].
error
=
error
;
}
else
{
this
.
errorMessages
.
push
({
prop
:
prop
,
error
:
error
});
}
}
else
{
this
.
errorMessages
.
push
({
prop
:
prop
,
error
:
error
});
}
}
/**
* 表单数据对象
*
* @type {*}
* @memberof DynaInstBase
*/
public
data
:
any
=
{
srforikey
:
null
,
srfkey
:
null
,
srfmajortext
:
null
,
srftempmode
:
null
,
srfuf
:
null
,
srfdeid
:
null
,
srfsourcekey
:
null
,
configname
:
null
,
formitem
:
null
,
configid
:
null
,
metadynamicmodel
:
null
,
};
/**
* 当前执行的行为逻辑
*
* @type {string}
* @memberof DynaInstBase
*/
public
currentAction
:
string
=
""
;
/**
* 关系界面计数器
*
* @type {number}
* @memberof DynaInstBase
*/
public
drcounter
:
number
=
0
;
/**
* 需要等待关系界面保存时,第一次调用save参数的备份
*
* @type {number}
* @memberof DynaInstBase
*/
public
drsaveopt
:
any
=
{};
/**
* 表单保存回调存储对象
*
* @type {any}
* @memberof DynaInstBase
*/
public
saveState
:
any
;
/**
* 主信息属性映射表单项名称
*
* @type {string}
* @memberof DynaInstBase
*/
public
majorMessageField
:
string
=
"configname"
;
/**
* 值规则
*
* @type {*}
* @memberof DynaInstBase
*/
public
rules
()
:
any
{
return
{
configname
:
[
{
required
:
this
.
detailsModel
.
configname
.
required
,
type
:
'string'
,
message
:
'配置名称 值不能为空'
,
trigger
:
'change'
},
{
required
:
this
.
detailsModel
.
configname
.
required
,
type
:
'string'
,
message
:
'配置名称 值不能为空'
,
trigger
:
'blur'
},
],
formitem
:
[
{
required
:
this
.
detailsModel
.
formitem
.
required
,
type
:
'string'
,
message
:
'文件 值不能为空'
,
trigger
:
'change'
},
{
required
:
this
.
detailsModel
.
formitem
.
required
,
type
:
'string'
,
message
:
'文件 值不能为空'
,
trigger
:
'blur'
},
],
}
}
/**
* 属性值规则
*
* @type {*}
* @memberof DynaInstBase
*/
public
deRules
(){
return
{
}
}
/**
* 校验属性值规则
*
* @public
* @param {{ name: string }} { name }
* @memberof DynaInstBase
*/
public
verifyDeRules
(
name
:
string
,
rule
:
any
=
this
.
deRules
(),
op
:
string
=
"AND"
)
:{
isPast
:
boolean
,
infoMessage
:
string
}{
let
falg
:
any
=
{
infoMessage
:
""
};
if
(
!
rule
[
name
]){
return
falg
;
}
let
opValue
=
op
==
'AND'
?
true
:
false
;
let
startOp
=
(
val
:
boolean
)
=>
{
if
(
falg
.
isPast
){
if
(
opValue
){
falg
.
isPast
=
falg
.
isPast
&&
val
;
}
else
{
falg
.
isPast
=
falg
.
isPast
||
val
;
}
}
else
{
falg
.
isPast
=
val
;
}
}
for
(
let
i
=
0
;
i
<
rule
[
name
].
length
;
i
++
){
let
item
:
any
=
rule
[
name
][
i
];
let
dataValue
=
item
.
deName
?
this
.
data
[
this
.
service
.
getItemNameByDeName
(
item
.
deName
)]:
""
;
item
.
ruleInfo
=
item
.
ruleInfo
?
item
.
ruleInfo
:
this
.
$t
(
'app.formpage.valuecheckex'
);
if
((
dataValue
===
null
||
dataValue
===
undefined
||
dataValue
===
""
)
&&
(
item
.
type
!=
'GROUP'
)){
startOp
(
true
);
return
falg
;
}
try
{
// 常规规则
if
(
item
.
type
==
'SIMPLE'
){
startOp
(
!
this
.
$verify
.
checkFieldSimpleRule
(
dataValue
,
item
.
condOP
,
item
.
paramValue
,
item
.
ruleInfo
,
item
.
paramType
,
this
.
data
,
item
.
isKeyCond
));
falg
.
infoMessage
=
item
.
ruleInfo
;
if
(
!
falg
.
isPast
)
return
falg
;
}
// 数值范围
if
(
item
.
type
==
'VALUERANGE2'
){
startOp
(
!
this
.
$verify
.
checkFieldValueRangeRule
(
dataValue
,
item
.
minValue
,
item
.
isIncludeMinValue
,
item
.
maxValue
,
item
.
isIncludeMaxValue
,
item
.
ruleInfo
,
item
.
isKeyCond
));
falg
.
infoMessage
=
item
.
ruleInfo
;
if
(
!
falg
.
isPast
)
return
falg
;
}
// 正则式
if
(
item
.
type
==
"REGEX"
)
{
startOp
(
!
this
.
$verify
.
checkFieldRegExRule
(
dataValue
,
item
.
regExCode
,
item
.
ruleInfo
,
item
.
isKeyCond
));
falg
.
infoMessage
=
item
.
ruleInfo
;
if
(
!
falg
.
isPast
)
return
falg
;
}
// 长度
if
(
item
.
type
==
"STRINGLENGTH"
)
{
startOp
(
!
this
.
$verify
.
checkFieldStringLengthRule
(
dataValue
,
item
.
minValue
,
item
.
isIncludeMinValue
,
item
.
maxValue
,
item
.
isIncludeMaxValue
,
item
.
ruleInfo
,
item
.
isKeyCond
));
falg
.
infoMessage
=
item
.
ruleInfo
;
if
(
!
falg
.
isPast
)
return
falg
;
}
// 系统值规则
if
(
item
.
type
==
"SYSVALUERULE"
)
{
startOp
(
!
this
.
$verify
.
checkFieldSysValueRule
(
dataValue
,
item
.
sysRule
.
regExCode
,
item
.
ruleInfo
,
item
.
isKeyCond
));
falg
.
infoMessage
=
item
.
ruleInfo
;
if
(
!
falg
.
isPast
)
return
falg
;
}
}
catch
(
error
)
{
falg
.
infoMessage
=
item
.
ruleInfo
;
startOp
(
false
);
if
(
!
falg
.
isPast
)
return
falg
;
}
// 分组
if
(
item
.
type
==
'GROUP'
){
falg
=
this
.
verifyDeRules
(
'group'
,
item
,
item
.
condOP
?
item
.
condOP
:
"AND"
);
if
(
item
.
isNotMode
){
falg
.
isPast
=
!
falg
.
isPast
;
}
if
(
!
falg
.
isPast
)
return
falg
;
}
}
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]
&&
this
.
data
[
name
]
!=
0
){
falg
.
isPast
=
true
;
}
return
falg
;
}
/**
* 详情模型集合
*
* @type {*}
* @memberof DynaInstBase
*/
public
detailsModel
:
any
=
{
druipart1
:
new
FormDRUIPartModel
({
caption
:
'副本'
,
detailType
:
'DRUIPART'
,
name
:
'druipart1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
})
,
tabpage1
:
new
FormTabPageModel
({
caption
:
'副本'
,
detailType
:
'TABPAGE'
,
name
:
'tabpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
})
,
tabpanel1
:
new
FormTabPanelModel
({
caption
:
''
,
detailType
:
'TABPANEL'
,
name
:
'tabpanel1'
,
visible
:
true
,
isShowCaption
:
false
,
form
:
this
,
isControlledContent
:
false
,
tabPages
:
[{
name
:
'tabpage1'
,
index
:
0
,
visible
:
true
}]
})
,
group1
:
new
FormGroupPanelModel
({
caption
:
'动态模型基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.metadynamicmodel.dynainst_form'
,
extractMode
:
'ITEM'
,
details
:
[]
},
isManageContainer
:
false
,
showMoreModeItems
:
[]
})
,
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
})
,
srforikey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srforikey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srfkey
:
new
FormItemModel
({
caption
:
'配置标识'
,
detailType
:
'FORMITEM'
,
name
:
'srfkey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srfmajortext
:
new
FormItemModel
({
caption
:
'配置名称'
,
detailType
:
'FORMITEM'
,
name
:
'srfmajortext'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srftempmode
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srftempmode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srfuf
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfuf'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srfdeid
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfdeid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
srfsourcekey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfsourcekey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
configname
:
new
FormItemModel
({
caption
:
'配置名称'
,
detailType
:
'FORMITEM'
,
name
:
'configname'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
formitem
:
new
FormItemModel
({
caption
:
'文件'
,
detailType
:
'FORMITEM'
,
name
:
'formitem'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
true
,
disabled
:
false
,
enableCond
:
3
})
,
configid
:
new
FormItemModel
({
caption
:
'配置标识'
,
detailType
:
'FORMITEM'
,
name
:
'configid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
isControlledContent
:
false
,
required
:
false
,
disabled
:
false
,
enableCond
:
3
})
,
};
/**
* 监控表单属性 srforikey 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srforikey'
)
onSrforikeyChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srforikey'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srfkey 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srfkey'
)
onSrfkeyChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srfkey'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srfmajortext 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srfmajortext'
)
onSrfmajortextChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srfmajortext'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srftempmode 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srftempmode'
)
onSrftempmodeChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srftempmode'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srfuf 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srfuf'
)
onSrfufChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srfuf'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srfdeid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srfdeid'
)
onSrfdeidChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srfdeid'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 srfsourcekey 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.srfsourcekey'
)
onSrfsourcekeyChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'srfsourcekey'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 configname 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.configname'
)
onConfignameChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'configname'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 formitem 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.formitem'
)
onFormitemChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'formitem'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 configid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof DynaInstBase
*/
@
Watch
(
'data.configid'
)
onConfigidChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'configid'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 显示更多模式切换操作
*
* @type {string}
* @memberof DynaInstBase
*/
public
manageContainerClick
(
name
:
string
){
let
model
=
this
.
detailsModel
[
name
];
if
(
model
.
isManageContainer
){
model
.
setManageContainerStatus
(
!
model
.
manageContainerStatus
);
model
.
showMoreModeItems
.
forEach
((
item
:
any
)
=>
{
if
(
this
.
detailsModel
[
item
].
isControlledContent
){
this
.
detailsModel
[
item
].
setVisible
(
model
.
manageContainerStatus
?
this
.
detailsModel
[
item
].
oldVisible
:
false
);
}
});
}
}
/**
* 重置表单项值
*
* @public
* @param {{ name: string, newVal: any, oldVal: any }} { name, newVal, oldVal }
* @memberof DynaInstBase
*/
public
resetFormData
({
name
,
newVal
,
oldVal
}:
{
name
:
string
,
newVal
:
any
,
oldVal
:
any
}):
void
{
}
/**
* 置空对象
*
* @param {any[]} args
* @memberof DynaInstBase
*/
public
ResetData
(
_datas
:
any
){
if
(
Object
.
keys
(
_datas
).
length
>
0
){
Object
.
keys
(
_datas
).
forEach
((
name
:
string
)
=>
{
if
(
this
.
data
.
hasOwnProperty
(
name
))
{
this
.
data
[
name
]
=
null
;
}
});
}
}
/**
* 表单逻辑
*
* @public
* @param {{ name: string, newVal: any, oldVal: any }} { name, newVal, oldVal }
* @memberof DynaInstBase
*/
public
async
formLogic
({
name
,
newVal
,
oldVal
}:
{
name
:
string
,
newVal
:
any
,
oldVal
:
any
}){
}
/**
* 表单项检查逻辑
*
* @public
* @param name 属性名
* @memberof DynaInstBase
*/
public
checkItem
(
name
:
string
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
var
validator
=
new
schema
({[
name
]:
this
.
rules
()[
name
]});
validator
.
validate
({[
name
]:
this
.
data
[
name
]}).
then
(()
=>
{
resolve
(
true
);
})
.
catch
(()
=>
{
resolve
(
false
);
});;
})
}
/**
* 表单值变化
*
* @public
* @param {{ name: string, newVal: any, oldVal: any }} { name, newVal, oldVal }
* @returns {void}
* @memberof DynaInstBase
*/
public
formDataChange
({
name
,
newVal
,
oldVal
}:
{
name
:
string
,
newVal
:
any
,
oldVal
:
any
}):
void
{
if
(
this
.
ignorefieldvaluechange
)
{
return
;
}
this
.
resetFormData
({
name
:
name
,
newVal
:
newVal
,
oldVal
:
oldVal
});
this
.
formLogic
({
name
:
name
,
newVal
:
newVal
,
oldVal
:
oldVal
});
this
.
dataChang
.
next
(
JSON
.
stringify
(
this
.
data
));
}
/**
* 表单加载完成
*
* @public
* @param {*} [data={}]
* @param {string} [action]
* @memberof DynaInstBase
*/
public
onFormLoad
(
data
:
any
=
{},
action
:
string
):
void
{
if
(
Object
.
is
(
action
,
"save"
)
||
Object
.
is
(
action
,
"autoSave"
)
||
Object
.
is
(
action
,
"submit"
))
// 更新context的实体主键
if
(
data
.
metadynamicmodel
){
Object
.
assign
(
this
.
context
,{
metadynamicmodel
:
data
.
metadynamicmodel
})
}
this
.
setFormEnableCond
(
data
);
this
.
computeButtonState
(
data
);
this
.
fillForm
(
data
,
action
);
this
.
oldData
=
{};
Object
.
assign
(
this
.
oldData
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
data
)));
this
.
$store
.
commit
(
'viewaction/setViewDataChange'
,
{
viewtag
:
this
.
viewtag
,
viewdatachange
:
false
});
this
.
formLogic
({
name
:
''
,
newVal
:
null
,
oldVal
:
null
});
}
/**
* 值填充
*
* @param {*} [_datas={}]
* @param {string} [action]
* @memberof DynaInstBase
*/
public
fillForm
(
_datas
:
any
=
{},
action
:
string
):
void
{
this
.
mixinData
=
_datas
;
this
.
ignorefieldvaluechange
=
true
;
Object
.
keys
(
_datas
).
forEach
((
name
:
string
)
=>
{
if
(
this
.
data
.
hasOwnProperty
(
name
))
{
this
.
data
[
name
]
=
_datas
[
name
];
}
});
if
(
Object
.
is
(
action
,
'loadDraft'
)){
this
.
createDefault
();
}
if
(
Object
.
is
(
action
,
'load'
)){
this
.
updateDefault
();
}
this
.
$nextTick
(
function
()
{
this
.
ignorefieldvaluechange
=
false
;
})
}
/**
* 设置表单项是否启用
*
* @public
* @param {*} data
* @memberof DynaInstBase
*/
public
setFormEnableCond
(
data
:
any
):
void
{
Object
.
values
(
this
.
detailsModel
).
forEach
((
detail
:
any
)
=>
{
if
(
!
Object
.
is
(
detail
.
detailType
,
'FORMITEM'
))
{
return
;
}
const
formItem
:
FormItemModel
=
detail
;
formItem
.
setEnableCond
(
data
.
srfuf
);
});
}
/**
* 重置草稿表单状态
*
* @public
* @memberof DynaInstBase
*/
public
resetDraftFormStates
():
void
{
const
form
:
any
=
this
.
$refs
.
form
;
if
(
form
)
{
form
.
resetFields
();
}
}
/**
* 重置校验结果
*
* @memberof DynaInstBase
*/
public
resetValidates
():
void
{
Object
.
values
(
this
.
detailsModel
).
forEach
((
detail
:
any
)
=>
{
if
(
!
Object
.
is
(
detail
.
detailType
,
'FORMITEM'
))
{
return
;
}
const
formItem
:
FormItemModel
=
detail
;
formItem
.
setError
(
''
);
});
}
/**
* 填充校验结果 (后台)
*
* @param {any[]} fieldErrors
* @memberof DynaInstBase
*/
public
fillValidates
(
fieldErrors
:
any
[]):
void
{
fieldErrors
.
forEach
((
error
:
any
)
=>
{
const
formItem
:
FormItemModel
=
this
.
detailsModel
[
error
.
field
];
if
(
!
formItem
)
{
return
;
}
this
.
$nextTick
(()
=>
{
formItem
.
setError
(
error
.
message
);
});
});
}
/**
* 表单校验状态
*
* @returns {boolean}
* @memberof DynaInstBase
*/
public
formValidateStatus
():
boolean
{
const
form
:
any
=
this
.
$refs
.
form
;
let
validatestate
:
boolean
=
true
;
form
.
validate
((
valid
:
boolean
)
=>
{
validatestate
=
valid
?
true
:
false
;
});
return
validatestate
}
/**
* 获取全部值
*
* @returns {*}
* @memberof DynaInstBase
*/
public
getValues
():
any
{
return
this
.
data
;
}
/**
* 表单项值变更
*
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof DynaInstBase
*/
public
onFormItemValueChange
(
$event
:
{
name
:
string
,
value
:
any
}):
void
{
if
(
!
$event
)
{
return
;
}
if
(
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
this
.
data
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
this
.
data
[
$event
.
name
]
=
$event
.
value
;
}
/**
* 编辑器行为触发
*
* @param {*} arg
* @returns {void}
* @memberof DynaInstBase
*/
public
onFormItemActionClick
(
arg
:
any
){
if
(
arg
&&
(
arg
instanceof
Function
))
arg
();
}
/**
* 设置数据项值
*
* @param {string} name
* @param {*} value
* @returns {void}
* @memberof DynaInstBase
*/
public
setDataItemValue
(
name
:
string
,
value
:
any
):
void
{
if
(
!
name
||
Object
.
is
(
name
,
''
)
||
!
this
.
data
.
hasOwnProperty
(
name
))
{
return
;
}
if
(
Object
.
is
(
this
.
data
[
name
],
value
))
{
return
;
}
this
.
data
[
name
]
=
value
;
}
/**
* 计算表单按钮权限状态
*
* @param {*} [data] 传入数据
* @memberof DynaInstBase
*/
public
computeButtonState
(
data
:
any
){
let
targetData
:
any
=
this
.
transformData
(
data
);
if
(
this
.
detailsModel
&&
Object
.
keys
(
this
.
detailsModel
).
length
>
0
){
Object
.
keys
(
this
.
detailsModel
).
forEach
((
name
:
any
)
=>
{
if
(
this
.
detailsModel
[
name
]
&&
this
.
detailsModel
[
name
].
uiaction
&&
this
.
detailsModel
[
name
].
uiaction
.
dataaccaction
&&
Object
.
is
(
this
.
detailsModel
[
name
].
detailType
,
"BUTTON"
)){
this
.
detailsModel
[
name
].
isPower
=
true
;
let
tempUIAction
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
detailsModel
[
name
].
uiaction
));
let
result
:
any
[]
=
ViewTool
.
calcActionItemAuthState
(
targetData
,[
tempUIAction
],
this
.
appUIService
);
this
.
detailsModel
[
name
].
visible
=
tempUIAction
.
visabled
;
this
.
detailsModel
[
name
].
disabled
=
tempUIAction
.
disabled
;
this
.
detailsModel
[
name
].
isPower
=
result
[
0
]
===
1
?
true
:
false
;
}
})
}
}
/**
* 分组界面行为事件
*
* @param {*} $event
* @memberof DynaInstBase
*/
public
groupUIActionClick
(
$event
:
any
):
void
{
if
(
!
$event
)
{
return
;
}
const
item
:
any
=
$event
.
item
;
}
/**
* Vue声明周期(处理组件的输入属性)
*
* @memberof DynaInstBase
*/
public
created
():
void
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof DynaInstBase
*/
public
afterCreated
(){
if
(
this
.
isautoload
){
this
.
autoLoad
({
srfkey
:
this
.
context
.
metadynamicmodel
});
}
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
if
(
Object
.
is
(
'autoload'
,
action
))
{
this
.
autoLoad
(
data
);
}
if
(
Object
.
is
(
'load'
,
action
))
{
this
.
load
(
data
);
}
if
(
Object
.
is
(
'loaddraft'
,
action
))
{
this
.
loadDraft
(
data
);
}
if
(
Object
.
is
(
'save'
,
action
))
{
this
.
save
(
data
,
data
.
showResultInfo
);
}
if
(
Object
.
is
(
'remove'
,
action
))
{
this
.
remove
(
data
);
}
if
(
Object
.
is
(
'saveandexit'
,
action
))
{
this
.
saveAndExit
(
data
);
}
if
(
Object
.
is
(
'saveandnew'
,
action
))
{
this
.
saveAndNew
(
data
);
}
if
(
Object
.
is
(
'removeandexit'
,
action
))
{
this
.
removeAndExit
(
data
);
}
if
(
Object
.
is
(
'refresh'
,
action
))
{
this
.
refresh
(
data
);
}
if
(
Object
.
is
(
'panelaction'
,
action
))
{
this
.
panelAction
(
data
.
action
,
data
.
emitAction
,
data
.
data
);
}
});
}
this
.
dataChang
.
pipe
(
debounceTime
(
300
),
distinctUntilChanged
()
).
subscribe
((
data
:
any
)
=>
{
if
(
this
.
autosave
)
{
this
.
autoSave
();
}
const
state
=
!
Object
.
is
(
JSON
.
stringify
(
this
.
oldData
),
JSON
.
stringify
(
this
.
data
))
?
true
:
false
;
this
.
$store
.
commit
(
'viewaction/setViewDataChange'
,
{
viewtag
:
this
.
viewtag
,
viewdatachange
:
state
});
});
}
/**
* vue 生命周期
*
* @memberof DynaInstBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof DynaInstBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
if
(
this
.
dataChangEvent
)
{
this
.
dataChangEvent
.
unsubscribe
();
}
if
(
this
.
appStateEvent
){
this
.
appStateEvent
.
unsubscribe
();
}
}
/**
*打印
*@memberof @memberof DynaInstBase
*/
public
print
(){
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'metadynamicmodel_dynainst'
,
popTitle
:
'主实例及副本实例关系表单'
});
}
/**
* 部件刷新
*
* @param {any} args
* @memberof DynaInstBase
*/
public
refresh
(
args
?:
any
):
void
{
let
arg
:
any
=
{};
Object
.
assign
(
arg
,
args
?
args
[
0
]:{});
if
(
this
.
data
.
srfkey
&&
!
Object
.
is
(
this
.
data
.
srfkey
,
''
))
{
Object
.
assign
(
arg
,
{
srfkey
:
this
.
data
.
srfkey
});
this
.
load
(
arg
);
return
;
}
if
(
this
.
data
.
srfkeys
&&
!
Object
.
is
(
this
.
data
.
srfkeys
,
''
))
{
Object
.
assign
(
arg
,
{
srfkey
:
this
.
data
.
srfkeys
});
this
.
load
(
arg
);
return
;
}
}
/**
* 自动加载
*
* @param {*} [arg={}]
* @returns {void}
* @memberof DynaInstBase
*/
public
autoLoad
(
arg
:
any
=
{}):
void
{
if
(
arg
.
srfkey
&&
!
Object
.
is
(
arg
.
srfkey
,
''
))
{
Object
.
assign
(
arg
,
{
srfkey
:
arg
.
srfkey
});
this
.
load
(
arg
);
return
;
}
if
(
arg
.
srfkeys
&&
!
Object
.
is
(
arg
.
srfkeys
,
''
))
{
Object
.
assign
(
arg
,
{
srfkey
:
arg
.
srfkeys
});
this
.
load
(
arg
);
return
;
}
this
.
loadDraft
(
arg
);
}
/**
* 加载
*
* @public
* @param {*} [opt={}]
* @memberof DynaInstBase
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelDynaInstEditView'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
let
viewparamResult
:
any
=
Object
.
assign
(
arg
,
this
.
viewparams
);
const
get
:
Promise
<
any
>
=
this
.
service
.
get
(
this
.
loadAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),{
viewparams
:
viewparamResult
},
this
.
showBusyIndicator
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
200
)
{
const
data
=
response
.
data
;
this
.
onFormLoad
(
data
,
'load'
);
this
.
$emit
(
'load'
,
data
);
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'load'
,
data
:
data
});
});
}
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
return
;
}
});
}
/**
* 加载草稿
*
* @param {*} [opt={}]
* @memberof DynaInstBase
*/
public
loadDraft
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelDynaInstEditView'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
let
viewparamResult
:
any
=
Object
.
assign
(
arg
,
this
.
viewparams
);
let
post
:
Promise
<
any
>
=
this
.
service
.
loadDraft
(
this
.
loaddraftAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),{
viewparams
:
viewparamResult
},
this
.
showBusyIndicator
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
.
status
||
response
.
status
!==
200
)
{
if
(
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
}
return
;
}
const
data
=
response
.
data
;
this
.
resetDraftFormStates
();
this
.
onFormLoad
(
data
,
'loadDraft'
);
data
.
metadynamicmodel
=
null
;
this
.
$emit
(
'load'
,
data
);
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'load'
,
data
:
data
});
});
setTimeout
(()
=>
{
const
form
:
any
=
this
.
$refs
.
form
;
if
(
form
)
{
form
.
fields
.
forEach
((
field
:
any
)
=>
{
field
.
validateMessage
=
""
;
field
.
validateState
=
""
;
field
.
validateStatus
=
false
;
});
}
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
return
;
}
});
}
/**
* 自动保存
*
* @param {*} [opt={}]
* @memberof DynaInstBase
*/
public
autoSave
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
formValidateStatus
())
{
return
;
}
const
arg
:
any
=
{
...
opt
};
const
data
=
this
.
getValues
();
Object
.
assign
(
arg
,
data
);
Object
.
assign
(
arg
,{
srfmajortext
:
data
[
this
.
majorMessageField
]});
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelDynaInstEditView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
const
post
:
Promise
<
any
>
=
this
.
service
.
add
(
action
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
.
status
||
response
.
status
!==
200
)
{
if
(
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
}
return
;
}
const
data
=
response
.
data
;
this
.
onFormLoad
(
data
,
'autoSave'
);
this
.
$emit
(
'save'
,
data
);
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'save'
,
data
:
data
});
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
if
(
response
.
data
.
errorKey
)
{
if
(
Object
.
is
(
response
.
data
.
errorKey
,
"versionCheck"
))
{
this
.
$Modal
.
confirm
({
title
:
(
this
.
$t
(
'app.formpage.saveerror'
)
as
string
),
content
:
(
this
.
$t
(
'app.formpage.savecontent'
)
as
string
),
onOk
:
()
=>
{
this
.
refresh
([]);
},
onCancel
:
()
=>
{
}
});
}
else
if
(
Object
.
is
(
response
.
data
.
errorKey
,
'DupCheck'
))
{
let
errorProp
:
string
=
response
.
data
.
message
.
match
(
/
\[[
a-zA-Z
]
*
\]
/
)[
0
];
let
name
:
string
=
this
.
service
.
getNameByProp
(
errorProp
.
substr
(
1
,
errorProp
.
length
-
2
));
if
(
name
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.createFailed'
)
as
string
),
desc
:
this
.
detailsModel
[
name
].
caption
+
" : "
+
arg
[
name
]
+
(
this
.
$t
(
'app.commonWords.isExist'
)
as
string
)
+
'!'
,
});
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.createFailed'
)
as
string
),
desc
:
response
.
data
.
message
?
response
.
data
.
message
:(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
),
})
}
}
else
if
(
Object
.
is
(
response
.
data
.
errorKey
,
'DuplicateKeyException'
)){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.createFailed'
)
as
string
),
desc
:
this
.
detailsModel
[
this
.
formKeyItemName
].
caption
+
" : "
+
arg
[
this
.
formKeyItemName
]
+
(
this
.
$t
(
'app.commonWords.isExist'
)
as
string
)
+
'!'
,
});
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
?
response
.
data
.
message
:(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
}
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
?
response
.
data
.
message
:(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
}
return
;
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
}
});
}
/**
* 保存
*
* @param {*} [opt={}]
* @param {boolean} [showResultInfo]
* @param {boolean} [ifStateNext] formState是否下发通知
* @returns {Promise<any>}
* @memberof DynaInstBase
*/
public
async
save
(
opt
:
any
=
{},
showResultInfo
?:
boolean
,
ifStateNext
:
boolean
=
true
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
showResultInfo
=
showResultInfo
===
undefined
?
true
:
false
;
if
(
!
this
.
formValidateStatus
())
{
if
(
this
.
errorMessages
&&
this
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
this
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
return
;
}
const
arg
:
any
=
{
...
opt
};
const
data
=
this
.
getValues
();
Object
.
assign
(
arg
,
this
.
context
);
Object
.
assign
(
arg
,
data
);
Object
.
assign
(
arg
,{
srfmajortext
:
data
[
this
.
majorMessageField
]});
if
(
ifStateNext
)
{
this
.
drcounter
=
1
;
if
(
this
.
drcounter
!==
0
){
this
.
drsaveopt
=
opt
;
this
.
formState
.
next
({
type
:
'beforesave'
,
data
:
arg
});
//先通知关系界面保存
this
.
saveState
=
resolve
;
return
;
}
}
if
(
this
.
viewparams
&&
this
.
viewparams
.
copymode
){
data
.
srfuf
=
'0'
;
}
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelDynaInstEditView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
const
post
:
Promise
<
any
>
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
this
.
service
.
update
(
action
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
):
this
.
service
.
add
(
action
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
.
status
||
response
.
status
!==
200
)
{
if
(
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
}
return
;
}
this
.
viewparams
.
copymode
=
false
;
const
data
=
response
.
data
;
this
.
onFormLoad
(
data
,
'save'
);
this
.
$emit
(
'save'
,
data
);
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'save'
,
data
:
data
});
});
if
(
showResultInfo
)
{
this
.
$Notice
.
success
({
title
:
''
,
desc
:
(
data
.
srfmajortext
?
data
.
srfmajortext
:
''
)
+
' '
+
(
this
.
$t
(
'app.formpage.savesuccess'
)
as
string
)
});
}
resolve
(
response
);
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
if
(
response
.
data
.
errorKey
)
{
if
(
Object
.
is
(
response
.
data
.
errorKey
,
"versionCheck"
))
{
this
.
$Modal
.
confirm
({
title
:
(
this
.
$t
(
'app.formpage.saveerror'
)
as
string
),
content
:
(
this
.
$t
(
'app.formpage.savecontent'
)
as
string
),
onOk
:
()
=>
{
this
.
refresh
([]);
},
onCancel
:
()
=>
{
}
});
}
else
if
(
Object
.
is
(
response
.
data
.
errorKey
,
'DupCheck'
))
{
let
errorProp
:
string
=
response
.
data
.
message
.
match
(
/
\[[
a-zA-Z
]
*
\]
/
)[
0
];
let
name
:
string
=
this
.
service
.
getNameByProp
(
errorProp
.
substr
(
1
,
errorProp
.
length
-
2
));
if
(
name
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.createFailed'
)
as
string
),
desc
:
this
.
detailsModel
[
name
].
caption
+
" : "
+
arg
[
name
]
+
(
this
.
$t
(
'app.commonWords.isExist'
)
as
string
)
+
'!'
,
});
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.createFailed'
)
as
string
),
desc
:
response
.
data
.
message
,
})
}
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
}
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
reject
(
response
);
}
return
;
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
reject
(
response
);
}
reject
(
response
);
});
})
}
/**
* 删除
*
* @public
* @param {*} [opt={}]
* @memberof DynaInstBase
*/
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelDynaInstEditView'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
opt
[
0
];
const
_this
:
any
=
this
;
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
this
.
service
.
delete
(
_this
.
removeAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
showResultInfo
).
then
((
response
:
any
)
=>
{
if
(
response
)
{
const
data
=
response
.
data
;
this
.
$emit
(
'remove'
,
data
);
this
.
formState
.
next
({
type
:
'remove'
,
data
:
data
});
this
.
data
.
ismodify
=
false
;
this
.
$Notice
.
success
({
title
:
''
,
desc
:
(
data
.
srfmajortext
?
data
.
srfmajortext
:
''
)
+
' '
+
(
this
.
$t
(
'app.formpage.deletesuccess'
)
as
string
)
});
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
resolve
(
response
);
}
}).
catch
((
error
:
any
)
=>
{
const
{
data
:
_data
}
=
error
;
this
.
$Notice
.
error
({
title
:
_data
.
title
,
desc
:
_data
.
message
});
reject
(
error
);
});
});
}
/**
* 工作流启动
*
* @param {*} [data={}]
* @param {*} [localdata={}]
* @returns {Promise<any>}
* @memberof DynaInstBase
*/
public
async
wfstart
(
data
:
any
,
localdata
?:
any
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
const
_this
:
any
=
this
;
const
formData
:
any
=
this
.
getData
();
const
copyData
:
any
=
Util
.
deepCopy
(
formData
);
const
post
:
Promise
<
any
>
=
Object
.
is
(
formData
.
srfuf
,
'1'
)?
this
.
service
.
update
(
this
.
updateAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
formData
,
this
.
showBusyIndicator
,
true
):
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
formData
,
this
.
showBusyIndicator
,
true
);
post
.
then
((
response
:
any
)
=>
{
const
responseData
:
any
=
response
.
data
;
let
tempResponseData
:
any
=
Util
.
deepCopy
(
response
);
this
.
service
.
handleResponse
(
'save'
,
tempResponseData
);
const
arg
:
any
=
tempResponseData
.
data
;
// 保存完成UI处理
this
.
onFormLoad
(
arg
,
'save'
);
this
.
$emit
(
'save'
,
arg
);
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'save'
,
data
:
arg
});
});
// 准备工作流数据,填充未存库数据
Object
.
assign
(
arg
,
copyData
);
// 准备提交参数
if
(
this
.
viewparams
){
let
copyViewParams
:
any
=
Util
.
deepCopy
(
this
.
viewparams
);
if
(
copyViewParams
.
w
){
delete
copyViewParams
.
w
;
}
Object
.
assign
(
responseData
,
copyViewParams
);
}
Object
.
assign
(
arg
,{
viewparams
:
responseData
});
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfstart
(
_this
.
WFStartAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
response
.
data
){
this
.
$Notice
.
error
({
title
:
''
,
desc
:
(
this
.
$t
(
'app.formpage.workflow.starterror'
)
as
string
)
+
', '
+
response
.
data
.
message
});
}
return
;
}
this
.
$Notice
.
info
({
title
:
''
,
desc
:
(
this
.
$t
(
'app.formpage.workflow.startsuccess'
)
as
string
)
});
resolve
(
response
);
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
reject
(
response
);
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
reject
(
response
);
return
;
}
reject
(
response
);
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
reject
(
response
);
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
reject
(
response
);
return
;
}
reject
(
response
);
})
});
}
/**
* 工作流提交
*
* @param {*} [data={}]
* @param {*} [localdata={}]
* @returns {Promise<any>}
* @memberof DynaInstBase
*/
public
async
wfsubmit
(
data
:
any
,
localdata
?:
any
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
const
_this
:
any
=
this
;
const
arg
:
any
=
data
[
0
];
const
copyData
:
any
=
Util
.
deepCopy
(
arg
);
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
if
(
!
arg
.
metadynamicmodel
||
Object
.
is
(
arg
.
metadynamicmodel
,
''
))
{
return
;
}
const
post
:
Promise
<
any
>
=
Object
.
is
(
arg
.
srfuf
,
'1'
)?
this
.
service
.
update
(
this
.
updateAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
true
):
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
true
);
post
.
then
((
response
:
any
)
=>
{
const
responseData
:
any
=
response
.
data
;
let
tempResponseData
:
any
=
Util
.
deepCopy
(
response
);
this
.
service
.
handleResponse
(
'save'
,
tempResponseData
);
const
arg
:
any
=
tempResponseData
.
data
;
// 保存完成UI处理
this
.
onFormLoad
(
arg
,
'save'
);
this
.
$emit
(
'save'
,
arg
);
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'save'
,
data
:
arg
});
});
// 准备工作流数据,填充未存库数据
Object
.
assign
(
arg
,
copyData
);
// 准备提交参数
if
(
this
.
viewparams
){
Object
.
assign
(
responseData
,
this
.
viewparams
);
}
Object
.
assign
(
arg
,{
viewparams
:
responseData
});
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
response
.
data
){
this
.
$Notice
.
error
({
title
:
''
,
desc
:
(
this
.
$t
(
'app.formpage.workflow.submiterror'
)
as
string
)
+
', '
+
response
.
data
.
message
});
}
return
;
}
this
.
onFormLoad
(
arg
,
'submit'
);
this
.
$store
.
dispatch
(
'viewaction/datasaved'
,
{
viewtag
:
this
.
viewtag
});
this
.
$Notice
.
info
({
title
:
''
,
desc
:
(
this
.
$t
(
'app.formpage.workflow.submitsuccess'
)
as
string
)
});
resolve
(
response
);
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
reject
(
response
);
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
reject
(
response
);
return
;
}
reject
(
response
);
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
reject
(
response
);
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
reject
(
response
);
return
;
}
reject
(
response
);
})
})
}
/**
* 面板行为
*
* @param {string} [action] 调用的实体行为
* @param {string} [emitAction] 抛出行为
* @param {*} [data={}] 传入数据
* @param {boolean} [showloading] 是否显示加载状态
*
* @memberof DynaInstBase
*/
public
panelAction
(
action
:
string
,
emitAction
:
string
,
data
:
any
=
{},
showloading
?:
boolean
):
void
{
if
(
!
action
||
(
action
&&
Object
.
is
(
action
,
''
)))
{
return
;
}
const
arg
:
any
=
{
...
data
};
const
formdata
=
this
.
getValues
();
Object
.
assign
(
arg
,
formdata
);
Object
.
assign
(
arg
,
this
.
viewparams
);
const
post
:
Promise
<
any
>
=
this
.
service
.
frontLogic
(
action
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
showloading
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
.
status
||
response
.
status
!==
200
)
{
if
(
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
}
return
;
}
const
data
=
response
.
data
;
this
.
onFormLoad
(
data
,
emitAction
);
this
.
$emit
(
emitAction
,
data
);
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
emitAction
,
data
:
data
});
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
return
;
}
});
}
/**
* 表单项更新
*
* @param {string} mode 界面行为名称
* @param {*} [data={}] 请求数据
* @param {string[]} updateDetails 更新项
* @param {boolean} [showloading] 是否显示加载状态
* @returns {void}
* @memberof DynaInstBase
*/
public
updateFormItems
(
mode
:
string
,
data
:
any
=
{},
updateDetails
:
string
[],
showloading
?:
boolean
):
void
{
if
(
!
mode
||
(
mode
&&
Object
.
is
(
mode
,
''
)))
{
return
;
}
const
arg
:
any
=
{
...
data
};
Object
.
assign
(
arg
,
this
.
viewparams
);
const
post
:
Promise
<
any
>
=
this
.
service
.
frontLogic
(
mode
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
showloading
);
post
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.formpage.updateerror'
)
as
string
)
});
return
;
}
const
data
=
response
.
data
;
const
_data
:
any
=
{};
updateDetails
.
forEach
((
name
:
string
)
=>
{
if
(
!
data
.
hasOwnProperty
(
name
))
{
return
;
}
Object
.
assign
(
_data
,
{
[
name
]:
data
[
name
]
});
});
this
.
setFormEnableCond
(
_data
);
this
.
fillForm
(
_data
,
'updateFormItem'
);
this
.
formLogic
({
name
:
''
,
newVal
:
null
,
oldVal
:
null
});
this
.
dataChang
.
next
(
JSON
.
stringify
(
this
.
data
));
AppCenterService
.
notifyMessage
({
name
:
"MetaDynamicModel"
,
action
:
'appRefresh'
,
data
:
data
});
this
.
$nextTick
(()
=>
{
this
.
formState
.
next
({
type
:
'updateformitem'
,
ufimode
:
arg
.
srfufimode
,
data
:
_data
});
});
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
&&
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
.
message
});
return
;
}
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
return
;
}
});
}
/**
* 回车事件
*
* @param {*} $event
* @memberof DynaInstBase
*/
public
onEnter
(
$event
:
any
):
void
{
}
/**
* 保存并退出
*
* @param {any[]} args
* @memberof DynaInstBase
*/
public
saveAndExit
(
data
:
any
[]):
Promise
<
any
>
{
let
_this
=
this
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
arg
:
any
=
{};
if
(
data
&&
data
.
length
>
0
){
Object
.
assign
(
arg
,
data
[
0
]);
}
_this
.
currentAction
=
"saveAndExit"
;
_this
.
save
([
arg
]).
then
((
res
)
=>
{
if
(
res
){
_this
.
closeView
(
res
.
data
);
}
resolve
(
res
);
}).
catch
((
error
)
=>
{
reject
(
error
);
})
})
}
/**
* 保存并新建
*
* @param {any[]} args
* @memberof DynaInstBase
*/
public
saveAndNew
(
data
:
any
[]):
Promise
<
any
>
{
let
_this
=
this
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
arg
:
any
=
{};
if
(
data
&&
data
.
length
>
0
){
Object
.
assign
(
arg
,
data
[
0
]);
}
_this
.
currentAction
=
"saveAndNew"
;
_this
.
save
([
arg
]).
then
((
res
)
=>
{
_this
.
ResetData
(
res
);
_this
.
loadDraft
({});
}).
catch
((
error
)
=>
{
reject
(
error
);
})
})
}
/**
* 删除并退出
*
* @param {any[]} args
* @memberof DynaInstBase
*/
public
removeAndExit
(
data
:
any
[]):
Promise
<
any
>
{
let
_this
=
this
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
arg
:
any
=
{};
if
(
data
&&
data
.
length
>
0
){
Object
.
assign
(
arg
,
data
[
0
]);
}
_this
.
remove
([
arg
]).
then
((
res
)
=>
{
if
(
res
){
_this
.
closeView
(
res
.
data
);
}
resolve
(
res
);
}).
catch
((
error
)
=>
{
reject
(
error
);
})
})
}
/**
* 关系界面数据保存完成
*
* @param {any} $event
* @memberof DynaInstBase
*/
public
drdatasaved
(
$event
:
any
){
let
_this
=
this
;
this
.
drcounter
--
;
if
(
this
.
drcounter
===
0
){
this
.
save
(
this
.
drsaveopt
,
undefined
,
false
).
then
((
res
)
=>
{
this
.
saveState
(
res
);
this
.
drsaveopt
=
{};
if
(
Object
.
is
(
_this
.
currentAction
,
"saveAndNew"
)){
_this
.
ResetData
(
res
);
_this
.
loadDraft
({});
}
else
if
(
Object
.
is
(
_this
.
currentAction
,
"saveAndExit"
)){
if
(
res
){
_this
.
closeView
(
res
.
data
);
}
}
});
}
}
/**
* 新建默认值
* @memberof DynaInstBase
*/
public
createDefault
(){
}
/**
* 更新默认值
* @memberof DynaInstBase
*/
public
updateDefault
(){
}
/**
* 面板数据变化处理事件
* @param {any} item 当前列数据
* @param {any} $event 面板事件数据
*
* @memberof DynaInstBase
*/
public
onPanelDataChange
(
item
:
any
,
$event
:
any
)
{
Object
.
assign
(
item
,
$event
,
{
rowDataState
:
'update'
});
}
}
</
script
>
<
style
lang=
'less'
>
@import './dyna-inst-form.less';
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form-model.ts
0 → 100644
浏览文件 @
05af3447
/**
* DynaInst 部件模型
*
* @export
* @class DynaInstModel
*/
export
default
class
DynaInstModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof DynaInstModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'srfwfmemo'
,
prop
:
'srfwfmemo'
,
dataType
:
'TEXT'
,
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name
:
'srffrontuf'
,
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
{
name
:
'srforikey'
,
},
{
name
:
'srfkey'
,
prop
:
'configid'
,
dataType
:
'TEXT'
,
},
{
name
:
'srfmajortext'
,
prop
:
'configname'
,
dataType
:
'TEXT'
,
},
{
name
:
'srftempmode'
,
},
{
name
:
'srfuf'
,
},
{
name
:
'srfdeid'
,
},
{
name
:
'srfsourcekey'
,
},
{
name
:
'configname'
,
prop
:
'configname'
,
dataType
:
'TEXT'
,
},
{
name
:
'formitem'
,
prop
:
'modelfile'
,
dataType
:
'TEXT'
,
},
{
name
:
'configid'
,
prop
:
'configid'
,
dataType
:
'TEXT'
,
},
{
name
:
'metadynamicmodel'
,
prop
:
'configid'
,
dataType
:
'FONTKEY'
,
},
]
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form-service.ts
0 → 100644
浏览文件 @
05af3447
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
MetaDynamicModelService
from
'@/service/meta-dynamic-model/meta-dynamic-model-service'
;
import
DynaInstModel
from
'./dyna-inst-form-model'
;
/**
* DynaInst 部件服务对象
*
* @export
* @class DynaInstService
*/
export
default
class
DynaInstService
extends
ControlService
{
/**
* 动态模型服务对象
*
* @type {MetaDynamicModelService}
* @memberof DynaInstService
*/
public
appEntityService
:
MetaDynamicModelService
=
new
MetaDynamicModelService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof DynaInstService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of DynaInstService.
*
* @param {*} [opts={}]
* @memberof DynaInstService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
DynaInstModel
();
}
/**
* 远端数据
*
* @type {*}
* @memberof DynaInstService
*/
private
remoteCopyData
:
any
=
{};
/**
* 处理数据
*
* @private
* @param {Promise<any>} promise
* @returns {Promise<any>}
* @memberof DynaInstService
*/
private
doItems
(
promise
:
Promise
<
any
>
,
deKeyField
:
string
,
deName
:
string
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
promise
.
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
200
)
{
const
data
=
response
.
data
;
data
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
item
[
deName
]
=
item
[
deKeyField
];
data
[
index
]
=
item
;
});
resolve
(
data
);
}
else
{
reject
([])
}
}).
catch
((
response
:
any
)
=>
{
reject
([])
});
});
}
/**
* 获取跨实体数据集合
*
* @param {string} serviceName 服务名称
* @param {string} interfaceName 接口名称
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any[]>}
* @memberof DynaInstService
*/
@
Errorlog
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
data
.
page
=
data
.
page
?
data
.
page
:
0
;
data
.
size
=
data
.
size
?
data
.
size
:
1000
;
return
Promise
.
reject
([])
}
/**
* 启动工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
wfstart
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
context
,
data
,
isloading
,
localdata
);
}
else
{
result
=
this
.
appEntityService
.
WFStart
(
context
,
data
,
isloading
,
localdata
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 提交工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
context
,
data
,
isloading
,
localdata
);
}
else
{
result
=
this
.
appEntityService
.
WFSubmit
(
context
,
data
,
isloading
,
localdata
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 添加数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {boolean} [isWorkflow] 是否在工作流中添加数据
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
add
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
isWorkflow
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Create
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
if
(
isWorkflow
){
resolve
(
response
);
}
else
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
delete
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Remove
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 修改数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {boolean} [isWorkflow] 是否在工作流中修改数据
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
update
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
isWorkflow
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Update
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
if
(
isWorkflow
){
resolve
(
response
);
}
else
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
get
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Get
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
setRemoteCopyData
(
response
);
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 加载草稿
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
loadDraft
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
//仿真主键数据
const
PrimaryKey
=
Util
.
createUUID
();
Data
.
configid
=
PrimaryKey
;
Data
.
metadynamicmodel
=
PrimaryKey
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
GetDraft
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
setRemoteCopyData
(
response
);
response
.
data
.
configid
=
PrimaryKey
;
this
.
handleResponse
(
action
,
response
,
true
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 前台逻辑
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DynaInstService
*/
@
Errorlog
public
frontLogic
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
return
Promise
.
reject
({
status
:
500
,
data
:
{
title
:
'失败'
,
message
:
'系统异常'
}
});
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
,
true
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
})
}
/**
* 处理请求数据
*
* @param action 行为
* @param data 数据
* @memberof DynaInstService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{},
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
requestData
[
item
.
prop
]
=
context
[
item
.
name
];
}
}
else
{
if
(
item
&&
item
.
prop
){
requestData
[
item
.
prop
]
=
data
[
item
.
name
];
}
else
{
if
(
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
"FORMPART"
)){
Object
.
assign
(
requestData
,
data
[
item
.
name
]);
}
}
}
});
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
delete
tempContext
.
srfsessionid
;
}
return
{
context
:
tempContext
,
data
:
requestData
};
}
/**
* 通过属性名称获取表单项名称
*
* @param name 实体属性名称
* @memberof DynaInstService
*/
public
getItemNameByDeName
(
name
:
string
)
:
string
{
let
itemName
=
name
;
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
name
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
prop
===
name
){
itemName
=
item
.
name
;
}
});
return
itemName
.
trim
();
}
/**
* 重写处理返回数据
*
* @param {string} action
* @param {*} response
* @memberof DynaInstService
*/
public
handleResponseData
(
action
:
string
,
data
:
any
=
{},
isCreate
?:
boolean
,
codelistArray
?:
any
){
let
model
:
any
=
this
.
getMode
();
if
(
!
model
&&
model
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
item
:
any
=
{};
let
dataItems
:
any
[]
=
model
.
getDataItems
();
dataItems
.
forEach
(
dataitem
=>
{
let
val
=
data
.
hasOwnProperty
(
dataitem
.
prop
)
?
data
[
dataitem
.
prop
]
:
null
;
if
(
val
===
null
)
{
val
=
data
.
hasOwnProperty
(
dataitem
.
name
)
?
data
[
dataitem
.
name
]
:
null
;
}
if
((
isCreate
===
undefined
||
isCreate
===
null
)
&&
Object
.
is
(
dataitem
.
dataType
,
'GUID'
)
&&
Object
.
is
(
dataitem
.
name
,
'srfkey'
)
&&
(
val
&&
!
Object
.
is
(
val
,
''
))){
isCreate
=
true
;
}
item
[
dataitem
.
name
]
=
val
;
// 转化代码表
if
(
codelistArray
&&
dataitem
.
codelist
){
if
(
codelistArray
.
get
(
dataitem
.
codelist
.
tag
)
&&
codelistArray
.
get
(
dataitem
.
codelist
.
tag
).
get
(
val
)){
item
[
dataitem
.
name
]
=
codelistArray
.
get
(
dataitem
.
codelist
.
tag
).
get
(
val
);
}
}
});
item
.
srfuf
=
data
.
srfuf
?
data
.
srfuf
:
(
isCreate
?
"0"
:
"1"
);
item
=
Object
.
assign
(
data
,
item
);
return
item
;
}
/**
* 设置远端数据
*
* @param result 远端请求结果
* @memberof DynaInstService
*/
public
setRemoteCopyData
(
result
:
any
){
if
(
result
&&
result
.
status
===
200
)
{
this
.
remoteCopyData
=
Util
.
deepCopy
(
result
.
data
);
}
}
/**
* 获取远端数据
*
* @memberof DynaInstService
*/
public
getRemoteCopyData
(){
return
this
.
remoteCopyData
;
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form.less
0 → 100644
浏览文件 @
05af3447
.ivu-tabs-no-animation>.ivu-tabs-content{
padding: 0 16px;
}
.ivu-card-head{
padding: 14px 0;
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
display: flex;
flex-direction: column;
> .ivu-tabs-content {
flex-grow: 1;
overflow: auto;
> .ivu-tabs-tabpane {
height: 100%;
}
}
}
}
}
.app-tabpanel-flex {
height: 100%;
> .ivu-tabs-content {
height: calc(100% - 52px);
> .ivu-tabs-tabpane {
height: 100%;
}
}
}
.app-form {
>.ivu-row:nth-child(2) {
>.ivu-col:nth-child(1) {
>.ivu-row.app-form-group.app-group-hiddden-caption:nth-child(1) {
margin-top: 12px;
}
}
}
}
.app-form{
// 表单行间距
.app-form-item{
margin-bottom: 20px;
}
// 表单按钮margin
.app-form-button{
margin:0 6px;
}
}
// this is less
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/dyna-inst-form/dyna-inst-form.vue
0 → 100644
浏览文件 @
05af3447
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
DynaInstBase
from
'./dyna-inst-form-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
DynaInst
extends
DynaInstBase
{
}
</
script
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/widgets/meta-dynamic-model/main-grid/main-grid-base.vue
浏览文件 @
05af3447
...
...
@@ -837,7 +837,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{},
pageReset
:
boolean
=
false
):
void
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
return
;
}
if
(
pageReset
){
...
...
@@ -932,7 +932,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
return
;
}
let
_datas
:
any
[]
=
[];
...
...
@@ -1038,7 +1038,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
addBatch
(
arg
:
any
=
{}):
void
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
return
;
}
if
(
!
arg
){
...
...
@@ -1914,7 +1914,7 @@ export default class MainBase extends Vue implements ControlInterface {
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
...
...
@@ -1922,7 +1922,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
metadynamicmodel
){
...
...
@@ -1989,7 +1989,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
newRow
(
args
:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModelGridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'MetaDynamicModel
DynaInst
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
let
_this
=
this
;
...
...
This diff is collapsed.
Click to expand it.
ibzlite-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
05af3447
...
...
@@ -244,7 +244,7 @@
<!--输出实体[META_DYNAMICMODEL]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-meta_dynamicmodel-
96
-12"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-meta_dynamicmodel-
105
-12"
>
<createTable
tableName=
"IBZDYNAMICMODEL"
>
<column
name=
"DYNAINSTID"
remarks=
""
type=
"VARCHAR(100)"
>
</column>
...
...
@@ -448,10 +448,10 @@
<!--输出实体[DST_VIEW]外键关系 -->
<!--输出实体[META_DATASET]外键关系 -->
<!--输出实体[META_DYNAMICMODEL]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-meta_dynamicmodel-
96
-18"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-meta_dynamicmodel-
105
-18"
>
<addForeignKeyConstraint
baseColumnNames=
"SYSTEMID"
baseTableName=
"IBZDYNAMICMODEL"
constraintName=
"DER1N_META_DYNAMICMODEL_DST_SY"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"PSSYSTEMID"
referencedTableName=
"IBZPSSYSTEM"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-meta_dynamicmodel-
96
-19"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-meta_dynamicmodel-
105
-19"
>
<addForeignKeyConstraint
baseColumnNames=
"PDYNAINSTID"
baseTableName=
"IBZDYNAMICMODEL"
constraintName=
"DER1N_META_DYNAMICMODEL_META_D"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"CONFIGID"
referencedTableName=
"IBZDYNAMICMODEL"
validate=
"true"
/>
</changeSet>
<!--输出实体[META_ENTITY]外键关系 -->
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录