Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
c5f14fb3
提交
c5f14fb3
编写于
2月 23, 2022
作者:
MosYCo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:更新表单关系界面保存
上级
adc3ef6a
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
98 行增加
和
7 行删除
+98
-7
form-druipart.hbs
...r7/@macro/front-end/widgets/form-detail/form-druipart.hbs
+5
-1
app-form-druipart.vue
.../app_{{apps}}/src/components/common/app-form-druipart.vue
+30
-4
main-view.ts
...pp_{{apps}}/src/core/modules/views/main-view/main-view.ts
+7
-2
form-control.ts
...s}}/src/core/modules/widgets/form-control/form-control.ts
+55
-0
md-control.ts
...{apps}}/src/core/modules/widgets/md-control/md-control.ts
+1
-0
未找到文件。
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/front-end/widgets/form-detail/form-druipart.hbs
浏览文件 @
c5f14fb3
...
...
@@ -25,7 +25,11 @@
:localViewParams=
"
{{>
@macro
/
front-end
/
common
/
navparam
.
hbs
appNavParams
=
item
.
psNavigateParams
}}
"
{{/if}}
:data=
"state.data"
:viewSubject=
"state.viewSubject"
>
:viewSubject=
"state.viewSubject"
{{#
or
(
eq
item
.
psAppView
.
tempMode
0
)
(
eq
item
.
psAppView
.
tempMode
1
)
eq
item
.
psAppView
.
tempMode
2
}}
:tempMode=
"
{{
item
.
psAppView
.
tempMode
}}
"
{{/
or
}}
@
componentEvent=
"onComponentEvent"
>
<template
#
default=
"druipartParams"
>
<
{{
item
.
psAppView
.
codeName
}}
:class
="['
app-view-layout--from-druipart
']"
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/common/app-form-druipart.vue
浏览文件 @
c5f14fb3
...
...
@@ -7,8 +7,6 @@ interface FormDruipartProps {
name
:
string
;
// 布局配置项
layoutOpts
:
ILayoutOpts
;
// 刷新关系项
tempMode
?:
string
;
// 禁止加载
isForbidLoad
?:
boolean
;
// 传入参数项名称
...
...
@@ -43,6 +41,8 @@ interface FormDruipartProps {
localContext
?:
IParam
;
// 导航视图参数
localViewParams
?:
IParam
;
// 临时模式
tempMode
?:
0
|
1
|
2
|
number
;
}
interface
FormDruipartEmit
{
(
name
:
'componentEvent'
,
value
:
IActionParam
):
void
;
...
...
@@ -91,6 +91,18 @@ onBeforeMount(() => {
);
druipartInit
();
});
const
beforeSave
=
(
data
:
any
)
=>
{
if
(
props
.
tempMode
==
2
)
{
props
.
viewSubject
.
next
({
tag
:
props
.
viewCodeName
,
action
:
'viewSave'
,
data
:
data
});
}
else
{
if
(
data
&&
data
.
srfuf
!==
'0'
)
{
props
.
viewSubject
.
next
({
tag
:
props
.
viewCodeName
,
action
:
'viewSave'
,
data
:
data
});
}
else
{
emit
(
"componentEvent"
,
{
tag
:
props
.
name
,
action
:
'formDruipartAction'
,
data
:
{
type
:
'drDataSaved'
}
});
}
}
}
// 关系界面初始化
const
druipartInit
=
()
=>
{
if
(
!
props
.
viewSubject
)
{
...
...
@@ -101,10 +113,17 @@ const druipartInit = () => {
});
formSubjectEvent
=
props
.
formSubject
.
subscribe
(({
type
,
data
})
=>
{
if
(
!
type
)
{
return
;
}
// 表单加载完成
if
(
type
&&
Object
.
is
(
type
,
'load'
))
{
if
(
Object
.
is
(
type
,
'load'
))
{
refreshDRUIPart
(
data
);
}
// 表单保存之前
if
(
Object
.
is
(
type
,
'beforesave'
))
{
beforeSave
(
data
);
}
})
};
...
...
@@ -164,7 +183,14 @@ const refreshDRUIPart = (data?: any) => {
});
};
const
onViewEvent
=
(
action
:
any
)
=>
{
// 处理视图事件
const
onViewEvent
=
(
actionParam
:
IActionParam
)
=>
{
const
{
tag
,
action
,
data
}
=
actionParam
;
if
(
tag
&&
tag
===
props
.
viewCodeName
)
{
if
(
action
===
'save'
)
{
emit
(
"componentEvent"
,
{
tag
:
props
.
name
,
action
:
'formDruipartAction'
,
data
:
{
type
:
'drDataSaved'
}
});
}
}
};
</
script
>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/views/main-view/main-view.ts
浏览文件 @
c5f14fb3
import
{
ViewBase
,
MainViewState
,
IActionParam
,
IParam
,
isExistAndNotEmpty
}
from
'@core'
;
import
{
ViewBase
,
MainViewState
,
IActionParam
,
IParam
,
isExistAndNotEmpty
,
hasFunction
}
from
'@core'
;
/**
* 实体视图
...
...
@@ -38,6 +38,11 @@ export class MainView extends ViewBase {
if
(
action
===
'viewRefresh'
)
{
this
.
refresh
(
data
);
}
if
(
action
===
'viewSave'
)
{
if
(
this
.
xDataControl
&&
hasFunction
(
this
.
xDataControl
,
'save'
))
{
this
.
xDataControl
.
save
(
data
);
}
}
})
}
}
...
...
@@ -195,7 +200,7 @@ export class MainView extends ViewBase {
const
{
tag
,
action
,
data
}
=
actionParam
;
if
(
tag
===
this
.
state
.
xDataControlName
)
{
if
(
action
===
'save'
)
{
this
.
emit
(
'viewEvent'
,
{
tag
:
this
.
state
.
viewName
,
action
:
'
view
save'
,
data
:
data
});
this
.
emit
(
'viewEvent'
,
{
tag
:
this
.
state
.
viewName
,
action
:
'save'
,
data
:
data
});
}
}
}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/widgets/form-control/form-control.ts
浏览文件 @
c5f14fb3
...
...
@@ -45,6 +45,23 @@ export class FormControl extends MainControl {
public
setState
()
{
super
.
setState
();
this
.
state
.
formSubject
=
new
Subject
();
this
.
computeDrCount
();
}
/**
* @description 计算关系界面个数
* @private
* @memberof FormControl
*/
private
computeDrCount
()
{
const
{
detailsModel
}
=
this
.
state
;
if
(
detailsModel
&&
Object
.
values
(
detailsModel
).
length
)
{
Object
.
values
(
detailsModel
).
forEach
((
item
:
IParam
)
=>
{
if
(
item
.
detailType
===
'DRUIPART'
)
{
this
.
state
.
drCount
+=
1
;
}
})
}
}
/**
...
...
@@ -549,6 +566,11 @@ export class FormControl extends MainControl {
Object
.
assign
(
arg
,
data
.
getDo
());
Object
.
assign
(
arg
,
_viewParams
);
if
(
isStateNext
&&
this
.
state
.
drCount
>
0
)
{
this
.
state
.
drCounter
=
this
.
state
.
drCount
;
this
.
state
.
drSaveOpt
=
opt
;
// 通知关系界面保存
formSubject
.
next
({
type
:
'beforesave'
,
data
:
arg
});
return
;
}
// 拷贝模式
if
(
_viewParams
&&
_viewParams
.
copyMode
)
{
...
...
@@ -760,6 +782,9 @@ export class FormControl extends MainControl {
case
'formButtonAction'
:
this
.
handleFormButtonAction
(
tag
,
data
);
break
;
case
'formDruipartAction'
:
this
.
handleFormDruipartAction
(
tag
,
data
);
break
;
default
:
break
;
}
...
...
@@ -787,6 +812,20 @@ export class FormControl extends MainControl {
this
.
handleUIAction
(
data
);
}
/**
* @description 处理表单关系界面行为
* @protected
* @param {string} tag
* @param {*} data
* @memberof FormControl
*/
protected
handleFormDruipartAction
(
tag
:
string
,
data
:
any
)
{
// 关系界面保存完成
if
(
data
?.
type
==
'drDataSaved'
)
{
this
.
onDrDataSaved
();
}
}
/**
* @description 处理界面行为
* @private
...
...
@@ -811,6 +850,22 @@ export class FormControl extends MainControl {
App
.
getAppActionService
().
execute
(
data
,
inputParam
);
}
/**
* @description 表单关系界面保存完成
* @protected
* @memberof FormControl
*/
protected
onDrDataSaved
()
{
let
{
drCounter
,
drSaveOpt
,
showBusyIndicator
}
=
this
.
state
;
drCounter
--
;
if
(
drCounter
==
0
)
{
this
.
save
(
drSaveOpt
,
showBusyIndicator
,
false
).
then
(()
=>
{
// TODO 待补充保存并关闭、保存并新建后续操作
drSaveOpt
=
{};
});
}
}
/**
* @description 表单值规则校验状态
* @private
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/widgets/md-control/md-control.ts
浏览文件 @
c5f14fb3
...
...
@@ -161,6 +161,7 @@ export class MDControl extends MainControl {
if
(
response
.
status
&&
response
.
status
==
200
)
{
}
}
this
.
emit
(
'ctrlEvent'
,
{
tag
:
this
.
props
.
name
,
action
:
'save'
,
data
:
items
});
}
catch
(
error
)
{
// TODO 错误异常处理
console
.
log
(
error
);
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录