Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
8378f511
提交
8378f511
编写于
11月 08, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mosher 发布系统代码 [后台服务,演示应用]
上级
eca90f9e
变更
6
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
268 行增加
和
220 行删除
+268
-220
grid-load-ui-logic-base.ts
app_Web/src/uiservice/ibizbook/grid-load-ui-logic-base.ts
+139
-118
main-form-base.vue
app_Web/src/widgets/ibizbook/main-form/main-form-base.vue
+5
-5
card-navigation-dataview-base.vue
...ard-navigation-dataview/card-navigation-dataview-base.vue
+4
-4
list-exp-list-base.vue
...rc/widgets/ibizorder/list-exp-list/list-exp-list-base.vue
+4
-4
IBIZBOOK.json
...remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json
+115
-88
h2_table.xml
demo-core/src/main/resources/liquibase/h2_table.xml
+1
-1
未找到文件。
app_Web/src/uiservice/ibizbook/grid-load-ui-logic-base.ts
浏览文件 @
8378f511
...
@@ -28,19 +28,14 @@ export default class GridLoadUILogicBase {
...
@@ -28,19 +28,14 @@ export default class GridLoadUILogicBase {
*/
*/
protected
logicParams
:
any
[]
=
[
protected
logicParams
:
any
[]
=
[
{
{
name
:
'应用上下文'
,
name
:
'当前表格'
,
codeName
:
'context'
,
codeName
:
'grid'
,
navContextParam
:
true
,
},
{
name
:
'当前搜索表单'
,
codeName
:
'searchForm'
,
ctrlParam
:
true
,
ctrlParam
:
true
,
},
},
{
{
name
:
'
当前视图
'
,
name
:
'
应用上下文
'
,
codeName
:
'
view
'
,
codeName
:
'
context
'
,
activeView
Param
:
true
,
navContext
Param
:
true
,
},
},
{
{
name
:
'当前视图参数'
,
name
:
'当前视图参数'
,
...
@@ -48,8 +43,8 @@ export default class GridLoadUILogicBase {
...
@@ -48,8 +43,8 @@ export default class GridLoadUILogicBase {
viewNavDataParam
:
true
,
viewNavDataParam
:
true
,
},
},
{
{
name
:
'当前
表格
'
,
name
:
'当前
搜索表单
'
,
codeName
:
'
grid
'
,
codeName
:
'
searchForm
'
,
ctrlParam
:
true
,
ctrlParam
:
true
,
},
},
{
{
...
@@ -63,6 +58,11 @@ export default class GridLoadUILogicBase {
...
@@ -63,6 +58,11 @@ export default class GridLoadUILogicBase {
codeName
:
'otherParam'
,
codeName
:
'otherParam'
,
entityParam
:
true
,
entityParam
:
true
,
},
},
{
name
:
'当前视图'
,
codeName
:
'view'
,
activeViewParam
:
true
,
},
];
];
/**
/**
...
@@ -118,24 +118,34 @@ export default class GridLoadUILogicBase {
...
@@ -118,24 +118,34 @@ export default class GridLoadUILogicBase {
}
}
/**
/**
*
准备参数
*
表格加载
*
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
* @memberof GridLoadUILogicBase
*/
*/
protected
async
execute_preparejsparam1_node
(
actionContext
:
UIActionContext
)
{
protected
async
execute_viewctrlinvoke2_node
(
actionContext
:
UIActionContext
)
{
try
{
const
invokeCtrl
=
'grid'
;
// 目标数据
const
invokeMethod
=
'load'
;
const
dstParam_1
:
any
=
actionContext
.
getParam
(
'otherParam'
);
const
invokeParam
=
'viewParam'
;
// 无值类型
if
(
!
invokeCtrl
||
!
invokeMethod
)
{
// 直接值
throw
new
Error
(
`界面对象或者调用方法缺失`
);
const
result_1
=
'12'
;
dstParam_1
.
set
(
'book'
,
result_1
);
}
catch
(
error
:
any
)
{
throw
new
Error
(
`逻辑节点 准备参数
${
error
&&
error
.
message
?
error
.
message
:
'发生未知错误!'
}
`
);
}
}
console
.
log
(
'已完成执行 准备参数 节点'
);
const
invokeUICtrl
=
actionContext
.
getParam
(
invokeCtrl
).
getReal
();
await
this
.
execute_deaction1_node
(
actionContext
);
if
(
invokeUICtrl
[
invokeMethod
]
&&
invokeUICtrl
[
invokeMethod
]
instanceof
Function
)
{
try
{
const
result
=
await
invokeUICtrl
[
invokeMethod
]();
if
(
invokeParam
)
{
actionContext
.
getParam
(
invokeParam
).
bind
(
result
);
}
actionContext
.
bindLastReturnParam
(
result
);
}
catch
(
error
:
any
)
{
throw
new
Error
(
`
${
invokeCtrl
}
界面对象调用
${
invokeMethod
}
方法发生异常`
);
}
}
else
{
throw
new
Error
(
`
${
invokeCtrl
}
界面对象不存在
${
invokeMethod
}
方法`
);
}
console
.
log
(
'已完成执行 表格加载 节点'
);
await
this
.
execute_preparejsparam2_node
(
actionContext
);
}
}
/**
/**
...
@@ -216,30 +226,56 @@ export default class GridLoadUILogicBase {
...
@@ -216,30 +226,56 @@ export default class GridLoadUILogicBase {
}
}
/**
/**
*
绑定表格
*
实体处理逻辑
*
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
* @memberof GridLoadUILogicBase
*/
*/
protected
async
execute_bindparam2_node
(
actionContext
:
UIActionContext
)
{
protected
async
execute_delogic1_node
(
actionContext
:
UIActionContext
)
{
const
dstParam
=
actionContext
.
getParam
(
'viewParam'
);
const
retParam
=
actionContext
.
getParam
(
'viewParam'
);
if
(
dstParam
)
{
try
{
const
deLogic
:
InitDataLogic
=
new
InitDataLogic
({
context
:
actionContext
.
context
,
data
:
dstParam
.
getReal
()
?
dstParam
.
getReal
()
:
{}
});
const
result
=
await
deLogic
.
onExecute
(
actionContext
.
context
,
dstParam
.
getReal
()
?
dstParam
.
getReal
()
:
{},
false
);
if
(
result
)
{
if
(
retParam
){
retParam
.
bind
(
result
);
}
actionContext
.
bindLastReturnParam
(
result
);
}
else
{
throw
new
Error
(
`调用实体处理逻辑异常`
);
}
}
catch
(
error
:
any
)
{
throw
new
Error
(
`调用实体处理逻辑异常
${
error
&&
error
.
message
?
error
.
message
:
''
}
`
);
}
}
else
{
throw
new
Error
(
`操作参数缺失!`
);
}
console
.
log
(
'已完成执行 实体处理逻辑 节点'
);
await
this
.
execute_msgbox1_node
(
actionContext
);
await
this
.
execute_preparejsparam1_node
(
actionContext
);
}
/**
* 准备参数
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
*/
protected
async
execute_preparejsparam1_node
(
actionContext
:
UIActionContext
)
{
try
{
try
{
// 源数据
const
srcParam
=
actionContext
.
getParam
(
'view'
);
// 目标数据
// 目标数据
const
dstParam
=
actionContext
.
getParam
(
'grid'
);
const
dstParam_1
:
any
=
actionContext
.
getParam
(
'otherParam'
);
// 源属性
// 无值类型
const
srcFieldName
:
string
=
'grid'
;
// 直接值
if
(
srcFieldName
)
{
const
result_1
=
'12'
;
dstParam
.
bind
(
srcParam
.
get
(
srcFieldName
));
dstParam_1
.
set
(
'book'
,
result_1
);
}
else
{
dstParam
.
bind
(
srcParam
.
getReal
());
}
actionContext
.
bindLastReturnParam
(
null
);
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
throw
new
Error
(
`逻辑
参数当前表格
${
error
&&
error
.
message
?
error
.
message
:
'发生未知错误!
'
}
`
);
throw
new
Error
(
`逻辑
节点 准备参数
${
error
&&
error
.
message
?
error
.
message
:
'发生未知错误!
'
}
`
);
}
}
console
.
log
(
'已完成执行
绑定表格
节点'
);
console
.
log
(
'已完成执行
准备参数
节点'
);
await
this
.
execute_
viewctrlinvoke
1_node
(
actionContext
);
await
this
.
execute_
deaction
1_node
(
actionContext
);
}
}
/**
/**
...
@@ -273,6 +309,38 @@ export default class GridLoadUILogicBase {
...
@@ -273,6 +309,38 @@ export default class GridLoadUILogicBase {
await
this
.
execute_viewctrlinvoke2_node
(
actionContext
);
await
this
.
execute_viewctrlinvoke2_node
(
actionContext
);
}
}
/**
* 消息弹窗
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
*/
protected
async
execute_msgbox1_node
(
actionContext
:
UIActionContext
)
{
// TODO 等待补充
return
new
Promise
<
void
>
((
resolve
:
any
)
=>
{
const
msgBoxParam
:
any
=
actionContext
.
getParam
(
''
);
const
data
=
msgBoxParam
?
msgBoxParam
.
getReal
()
:
{};
const
options
=
{
type
:
'INFO'
,
title
:
data
&&
data
.
title
?
data
.
title
:
'触发'
,
content
:
data
&&
data
.
message
?
data
.
message
:
'我被触发啦'
,
buttonType
:
'ok'
,
showMode
:
'center'
,
showClose
:
false
,
mask
:
true
,
maskClosable
:
true
};
// TODO 支持具体弹窗
// const subject: Subject<any> | null = AppMessageBoxService.getInstance().open(options);
// const subscription = subject?.subscribe((result: any) => {
// resolve(this.handleResponse(logicNode, actionContext, options, result));
// subscription!.unsubscribe();
// subject.complete();
// })
});
console
.
log
(
'已完成执行 消息弹窗 节点'
);
}
/**
/**
* 结束
* 结束
*
*
...
@@ -301,35 +369,30 @@ export default class GridLoadUILogicBase {
...
@@ -301,35 +369,30 @@ export default class GridLoadUILogicBase {
}
}
/**
/**
*
实体处理逻辑
*
绑定表格
*
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
* @memberof GridLoadUILogicBase
*/
*/
protected
async
execute_delogic1_node
(
actionContext
:
UIActionContext
)
{
protected
async
execute_bindparam2_node
(
actionContext
:
UIActionContext
)
{
const
dstParam
=
actionContext
.
getParam
(
'viewParam'
);
try
{
const
retParam
=
actionContext
.
getParam
(
'viewParam'
);
// 源数据
if
(
dstParam
)
{
const
srcParam
=
actionContext
.
getParam
(
'view'
);
try
{
// 目标数据
const
deLogic
:
InitDataLogic
=
new
InitDataLogic
({
context
:
actionContext
.
context
,
data
:
dstParam
.
getReal
()
?
dstParam
.
getReal
()
:
{}
});
const
dstParam
=
actionContext
.
getParam
(
'grid'
);
const
result
=
await
deLogic
.
onExecute
(
actionContext
.
context
,
dstParam
.
getReal
()
?
dstParam
.
getReal
()
:
{},
false
);
// 源属性
if
(
result
)
{
const
srcFieldName
:
string
=
'grid'
;
if
(
retParam
){
if
(
srcFieldName
)
{
retParam
.
bind
(
result
);
dstParam
.
bind
(
srcParam
.
get
(
srcFieldName
));
}
}
else
{
actionContext
.
bindLastReturnParam
(
result
);
dstParam
.
bind
(
srcParam
.
getReal
());
}
else
{
throw
new
Error
(
`调用实体处理逻辑异常`
);
}
}
catch
(
error
:
any
)
{
throw
new
Error
(
`调用实体处理逻辑异常
${
error
&&
error
.
message
?
error
.
message
:
''
}
`
);
}
}
}
else
{
actionContext
.
bindLastReturnParam
(
null
);
throw
new
Error
(
`操作参数缺失!`
);
}
catch
(
error
:
any
)
{
throw
new
Error
(
`逻辑参数当前表格
${
error
&&
error
.
message
?
error
.
message
:
'发生未知错误!'
}
`
);
}
}
console
.
log
(
'已完成执行 实体处理逻辑 节点'
);
console
.
log
(
'已完成执行 绑定表格 节点'
);
await
this
.
execute_msgbox1_node
(
actionContext
);
await
this
.
execute_viewctrlinvoke1_node
(
actionContext
);
await
this
.
execute_preparejsparam1_node
(
actionContext
);
}
}
/**
/**
...
@@ -360,67 +423,25 @@ export default class GridLoadUILogicBase {
...
@@ -360,67 +423,25 @@ export default class GridLoadUILogicBase {
}
}
/**
/**
*
表格加载
*
准备参数
*
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
* @memberof GridLoadUILogicBase
*/
*/
protected
async
execute_viewctrlinvoke2_node
(
actionContext
:
UIActionContext
)
{
protected
async
execute_preparejsparam2_node
(
actionContext
:
UIActionContext
)
{
const
invokeCtrl
=
'grid'
;
try
{
const
invokeMethod
=
'load'
;
// 目标数据
const
invokeParam
=
'viewParam'
;
const
dstParam_1
:
any
=
actionContext
.
getParam
(
'context'
);
if
(
!
invokeCtrl
||
!
invokeMethod
)
{
// 无值类型
throw
new
Error
(
`界面对象或者调用方法缺失`
);
// 直接值
}
const
result_1
=
'12'
;
const
invokeUICtrl
=
actionContext
.
getParam
(
invokeCtrl
).
getReal
();
dstParam_1
.
set
(
'ibizbook'
,
result_1
);
if
(
invokeUICtrl
[
invokeMethod
]
&&
invokeUICtrl
[
invokeMethod
]
instanceof
Function
)
{
}
catch
(
error
:
any
)
{
try
{
throw
new
Error
(
`逻辑节点 准备参数
${
error
&&
error
.
message
?
error
.
message
:
'发生未知错误!'
}
`
);
const
result
=
await
invokeUICtrl
[
invokeMethod
]();
if
(
invokeParam
)
{
actionContext
.
getParam
(
invokeParam
).
bind
(
result
);
}
actionContext
.
bindLastReturnParam
(
result
);
}
catch
(
error
:
any
)
{
throw
new
Error
(
`
${
invokeCtrl
}
界面对象调用
${
invokeMethod
}
方法发生异常`
);
}
}
else
{
throw
new
Error
(
`
${
invokeCtrl
}
界面对象不存在
${
invokeMethod
}
方法`
);
}
}
console
.
log
(
'已完成执行
表格加载
节点'
);
console
.
log
(
'已完成执行
准备参数
节点'
);
await
this
.
execute_delogic1_node
(
actionContext
);
await
this
.
execute_delogic1_node
(
actionContext
);
}
}
/**
* 消息弹窗
*
* @param {UIActionContext} actionContext 界面逻辑上下文
* @memberof GridLoadUILogicBase
*/
protected
async
execute_msgbox1_node
(
actionContext
:
UIActionContext
)
{
// TODO 等待补充
return
new
Promise
<
void
>
((
resolve
:
any
)
=>
{
const
msgBoxParam
:
any
=
actionContext
.
getParam
(
''
);
const
data
=
msgBoxParam
?
msgBoxParam
.
getReal
()
:
{};
const
options
=
{
type
:
'INFO'
,
title
:
data
&&
data
.
title
?
data
.
title
:
'触发'
,
content
:
data
&&
data
.
message
?
data
.
message
:
'我被触发啦'
,
buttonType
:
'ok'
,
showMode
:
'center'
,
showClose
:
false
,
mask
:
true
,
maskClosable
:
true
};
// TODO 支持具体弹窗
// const subject: Subject<any> | null = AppMessageBoxService.getInstance().open(options);
// const subscription = subject?.subscribe((result: any) => {
// resolve(this.handleResponse(logicNode, actionContext, options, result));
// subscription!.unsubscribe();
// subject.complete();
// })
});
console
.
log
(
'已完成执行 消息弹窗 节点'
);
}
}
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/main-form/main-form-base.vue
浏览文件 @
8378f511
...
@@ -1800,7 +1800,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1800,7 +1800,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
load
(
opt
:
any
=
{}):
void
{
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
return
;
return
;
}
}
const
arg
:
any
=
{
...
opt
};
const
arg
:
any
=
{
...
opt
};
...
@@ -1835,7 +1835,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1835,7 +1835,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
loadDraft
(
opt
:
any
=
{}):
void
{
public
loadDraft
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loaddraftAction
){
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
return
;
return
;
}
}
const
arg
:
any
=
{
...
opt
}
;
const
arg
:
any
=
{
...
opt
}
;
...
@@ -1897,7 +1897,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1897,7 +1897,7 @@ export default class MainBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
return
;
}
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
@@ -2005,7 +2005,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -2005,7 +2005,7 @@ export default class MainBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
return
;
}
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
@@ -2082,7 +2082,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -2082,7 +2082,7 @@ export default class MainBase extends Vue implements ControlInterface {
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKOptionView'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
return
;
return
;
}
}
const
arg
:
any
=
opt
[
0
];
const
arg
:
any
=
opt
[
0
];
...
...
app_Web/src/widgets/ibizorder/card-navigation-dataview/card-navigation-dataview-base.vue
浏览文件 @
8378f511
...
@@ -657,7 +657,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
...
@@ -657,7 +657,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
*/
*/
public
load
(
opt
:
any
=
{},
isReset
:
boolean
=
false
):
void
{
public
load
(
opt
:
any
=
{},
isReset
:
boolean
=
false
):
void
{
if
(
!
this
.
fetchAction
){
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
return
;
return
;
}
}
const
arg
:
any
=
{...
opt
};
const
arg
:
any
=
{...
opt
};
...
@@ -736,7 +736,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
...
@@ -736,7 +736,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
*/
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
!
this
.
removeAction
){
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView
_layout
'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
return
;
return
;
}
}
let
_datas
:
any
[]
=
[];
let
_datas
:
any
[]
=
[];
...
@@ -845,7 +845,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
...
@@ -845,7 +845,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
try
{
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
}
else
{
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
...
@@ -853,7 +853,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
...
@@ -853,7 +853,7 @@ export default class CardNavigationBase extends Vue implements ControlInterface
}
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDataViewExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
}
else
{
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
ibizorder
){
if
(
item
.
ibizorder
){
...
...
app_Web/src/widgets/ibizorder/list-exp-list/list-exp-list-base.vue
浏览文件 @
8378f511
...
@@ -522,7 +522,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
...
@@ -522,7 +522,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
*/
public
load
(
opt
:
any
=
{}):
void
{
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
fetchAction
){
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
return
;
return
;
}
}
const
arg
:
any
=
{...
opt
};
const
arg
:
any
=
{...
opt
};
...
@@ -638,7 +638,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
...
@@ -638,7 +638,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
!
this
.
removeAction
){
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView'
+
(
this
.
$t
(
'app.list.notConfig.removeAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.removeAction'
)
as
string
)
});
return
;
return
;
}
}
if
(
datas
.
length
===
0
)
{
if
(
datas
.
length
===
0
)
{
...
@@ -733,7 +733,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
...
@@ -733,7 +733,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
try
{
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderListExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
}
else
{
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
...
@@ -741,7 +741,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
...
@@ -741,7 +741,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
}
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.warning'
)
as
string
),
desc
:
'IBIZOrderListExpView'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.warning'
)
as
string
),
desc
:
'IBIZOrderListExpView
_layout
'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
}
else
{
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
ibizorder
){
if
(
item
.
ibizorder
){
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json
浏览文件 @
8378f511
...
@@ -2076,31 +2076,29 @@
...
@@ -2076,31 +2076,29 @@
}
],
}
],
"parallelOutput"
:
true
"parallelOutput"
:
true
},
{
},
{
"codeName"
:
"PREPAREJSPARAM1"
,
"codeName"
:
"VIEWCTRLINVOKE2"
,
"logicNodeType"
:
"PREPAREJSPARAM"
,
"getInvokeCtrl"
:
{
"name"
:
"准备参数"
,
"modelref"
:
true
,
"id"
:
"grid"
},
"invokeMethod"
:
"load"
,
"getInvokeParam"
:
{
"modelref"
:
true
,
"id"
:
"viewParam"
},
"logicNodeType"
:
"VIEWCTRLINVOKE"
,
"name"
:
"表格加载"
,
"getPSDEUILogicLinks"
:
[
{
"getPSDEUILogicLinks"
:
[
{
"getDstPSDEUILogicNode"
:
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
DEACTION1
"
"id"
:
"
PREPAREJSPARAM2
"
},
},
"linkMode"
:
0
,
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
PREPAREJSPARAM1
"
"id"
:
"
VIEWCTRLINVOKE2
"
}
}
}
],
"getPSDEUILogicNodeParams"
:
[
{
"dstFieldName"
:
"book"
,
"getDstPSDEUILogicParam"
:
{
"modelref"
:
true
,
"id"
:
"otherParam"
},
"name"
:
"直接值[12] ==> otherParam[book]"
,
"paramAction"
:
"SETPARAMVALUE"
,
"srcValue"
:
"12"
,
"srcValueType"
:
"SRCVALUE"
}
]
}
]
},
{
},
{
"codeName"
:
"DEACTION1"
,
"codeName"
:
"DEACTION1"
,
...
@@ -2135,30 +2133,71 @@
...
@@ -2135,30 +2133,71 @@
"id"
:
"Default"
"id"
:
"Default"
}
}
},
{
},
{
"codeName"
:
"BINDPARAM2"
,
"codeName"
:
"DELOGIC1"
,
"getDstPSAppDELogic"
:
{
"modelref"
:
true
,
"id"
:
"initData"
},
"getDstPSAppDataEntity"
:
{
"modelref"
:
true
,
"path"
:
"PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getDstPSDEUILogicParam"
:
{
"getDstPSDEUILogicParam"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
grid
"
"id"
:
"
viewParam
"
},
},
"logicNodeType"
:
"
BINDPARAM
"
,
"logicNodeType"
:
"
DELOGIC
"
,
"name"
:
"
绑定表格
"
,
"name"
:
"
实体处理逻辑
"
,
"getPSDEUILogicLinks"
:
[
{
"getPSDEUILogicLinks"
:
[
{
"getDstPSDEUILogicNode"
:
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
VIEWCTRLINVOKE
1"
"id"
:
"
MSGBOX
1"
},
},
"linkMode"
:
0
,
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"BINDPARAM2"
"id"
:
"DELOGIC1"
}
},
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"PREPAREJSPARAM1"
},
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"DELOGIC1"
}
}
]
},
{
"codeName"
:
"PREPAREJSPARAM1"
,
"logicNodeType"
:
"PREPAREJSPARAM"
,
"name"
:
"准备参数"
,
"getPSDEUILogicLinks"
:
[
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"DEACTION1"
},
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"PREPAREJSPARAM1"
}
}
}
],
}
],
"srcFieldName"
:
"grid"
,
"getPSDEUILogicNodeParams"
:
[
{
"getSrcPSDEUILogicParam"
:
{
"dstFieldName"
:
"book"
,
"modelref"
:
true
,
"getDstPSDEUILogicParam"
:
{
"id"
:
"view"
"modelref"
:
true
,
}
"id"
:
"otherParam"
},
"name"
:
"直接值[12] ==> otherParam[book]"
,
"paramAction"
:
"SETPARAMVALUE"
,
"srcValue"
:
"12"
,
"srcValueType"
:
"SRCVALUE"
}
]
},
{
},
{
"codeName"
:
"VIEWCTRLINVOKE1"
,
"codeName"
:
"VIEWCTRLINVOKE1"
,
"getInvokeCtrl"
:
{
"getInvokeCtrl"
:
{
...
@@ -2184,6 +2223,15 @@
...
@@ -2184,6 +2223,15 @@
"id"
:
"VIEWCTRLINVOKE1"
"id"
:
"VIEWCTRLINVOKE1"
}
}
}
]
}
]
},
{
"buttonsType"
:
"OK"
,
"codeName"
:
"MSGBOX1"
,
"logicNodeType"
:
"MSGBOX"
,
"message"
:
"我被触发啦"
,
"msgBoxType"
:
"INFO"
,
"name"
:
"消息弹窗"
,
"showMode"
:
"CENTER"
,
"title"
:
"触发"
},
{
},
{
"codeName"
:
"END1"
,
"codeName"
:
"END1"
,
"logicNodeType"
:
"END"
,
"logicNodeType"
:
"END"
,
...
@@ -2194,44 +2242,30 @@
...
@@ -2194,44 +2242,30 @@
},
},
"returnType"
:
"LOGICPARAM"
"returnType"
:
"LOGICPARAM"
},
{
},
{
"codeName"
:
"DELOGIC1"
,
"codeName"
:
"BINDPARAM2"
,
"getDstPSAppDELogic"
:
{
"modelref"
:
true
,
"id"
:
"initData"
},
"getDstPSAppDataEntity"
:
{
"modelref"
:
true
,
"path"
:
"PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getDstPSDEUILogicParam"
:
{
"getDstPSDEUILogicParam"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
viewParam
"
"id"
:
"
grid
"
},
},
"logicNodeType"
:
"
DELOGIC
"
,
"logicNodeType"
:
"
BINDPARAM
"
,
"name"
:
"
实体处理逻辑
"
,
"name"
:
"
绑定表格
"
,
"getPSDEUILogicLinks"
:
[
{
"getPSDEUILogicLinks"
:
[
{
"getDstPSDEUILogicNode"
:
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"MSGBOX1"
"id"
:
"VIEWCTRLINVOKE1"
},
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"DELOGIC1"
}
},
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"id"
:
"PREPAREJSPARAM1"
},
},
"linkMode"
:
0
,
"linkMode"
:
0
,
"name"
:
"连接名称"
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
DELOGIC1
"
"id"
:
"
BINDPARAM2
"
}
}
}
]
}
],
"srcFieldName"
:
"grid"
,
"getSrcPSDEUILogicParam"
:
{
"modelref"
:
true
,
"id"
:
"view"
}
},
{
},
{
"codeName"
:
"BINDPARAM1"
,
"codeName"
:
"BINDPARAM1"
,
"getDstPSDEUILogicParam"
:
{
"getDstPSDEUILogicParam"
:
{
...
@@ -2258,18 +2292,9 @@
...
@@ -2258,18 +2292,9 @@
"id"
:
"view"
"id"
:
"view"
}
}
},
{
},
{
"codeName"
:
"VIEWCTRLINVOKE2"
,
"codeName"
:
"PREPAREJSPARAM2"
,
"getInvokeCtrl"
:
{
"logicNodeType"
:
"PREPAREJSPARAM"
,
"modelref"
:
true
,
"name"
:
"准备参数"
,
"id"
:
"grid"
},
"invokeMethod"
:
"load"
,
"getInvokeParam"
:
{
"modelref"
:
true
,
"id"
:
"viewParam"
},
"logicNodeType"
:
"VIEWCTRLINVOKE"
,
"name"
:
"表格加载"
,
"getPSDEUILogicLinks"
:
[
{
"getPSDEUILogicLinks"
:
[
{
"getDstPSDEUILogicNode"
:
{
"getDstPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
...
@@ -2279,43 +2304,40 @@
...
@@ -2279,43 +2304,40 @@
"name"
:
"连接名称"
,
"name"
:
"连接名称"
,
"getSrcPSDEUILogicNode"
:
{
"getSrcPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
"id"
:
"
VIEWCTRLINVOKE
2"
"id"
:
"
PREPAREJSPARAM
2"
}
}
}
],
"getPSDEUILogicNodeParams"
:
[
{
"dstFieldName"
:
"ibizbook"
,
"getDstPSDEUILogicParam"
:
{
"modelref"
:
true
,
"id"
:
"context"
},
"name"
:
"直接值[12] ==> context[ibizbook]"
,
"paramAction"
:
"SETPARAMVALUE"
,
"srcValue"
:
"12"
,
"srcValueType"
:
"SRCVALUE"
}
]
}
]
},
{
"buttonsType"
:
"OK"
,
"codeName"
:
"MSGBOX1"
,
"logicNodeType"
:
"MSGBOX"
,
"message"
:
"我被触发啦"
,
"msgBoxType"
:
"INFO"
,
"name"
:
"消息弹窗"
,
"showMode"
:
"CENTER"
,
"title"
:
"触发"
}
],
}
],
"getPSDEUILogicParams"
:
[
{
"getPSDEUILogicParams"
:
[
{
"codeName"
:
"grid"
,
"logicName"
:
"当前表格"
,
"name"
:
"当前表格"
,
"ctrlParam"
:
true
},
{
"codeName"
:
"context"
,
"codeName"
:
"context"
,
"logicName"
:
"应用上下文"
,
"logicName"
:
"应用上下文"
,
"name"
:
"应用上下文"
,
"name"
:
"应用上下文"
,
"navContextParam"
:
true
"navContextParam"
:
true
},
{
"codeName"
:
"searchForm"
,
"logicName"
:
"当前搜索表单"
,
"name"
:
"当前搜索表单"
,
"ctrlParam"
:
true
},
{
"codeName"
:
"view"
,
"logicName"
:
"当前视图"
,
"name"
:
"当前视图"
,
"activeViewParam"
:
true
},
{
},
{
"codeName"
:
"viewParam"
,
"codeName"
:
"viewParam"
,
"logicName"
:
"当前视图参数"
,
"logicName"
:
"当前视图参数"
,
"name"
:
"当前视图参数"
,
"name"
:
"当前视图参数"
,
"viewNavDataParam"
:
true
"viewNavDataParam"
:
true
},
{
},
{
"codeName"
:
"
grid
"
,
"codeName"
:
"
searchForm
"
,
"logicName"
:
"当前
表格
"
,
"logicName"
:
"当前
搜索表单
"
,
"name"
:
"当前
表格
"
,
"name"
:
"当前
搜索表单
"
,
"ctrlParam"
:
true
"ctrlParam"
:
true
},
{
},
{
"codeName"
:
"Default"
,
"codeName"
:
"Default"
,
...
@@ -2328,6 +2350,11 @@
...
@@ -2328,6 +2350,11 @@
"logicName"
:
"额外参数"
,
"logicName"
:
"额外参数"
,
"name"
:
"额外参数"
,
"name"
:
"额外参数"
,
"entityParam"
:
true
"entityParam"
:
true
},
{
"codeName"
:
"view"
,
"logicName"
:
"当前视图"
,
"name"
:
"当前视图"
,
"activeViewParam"
:
true
}
],
}
],
"getStartPSDEUILogicNode"
:
{
"getStartPSDEUILogicNode"
:
{
"modelref"
:
true
,
"modelref"
:
true
,
...
...
demo-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
8378f511
...
@@ -172,7 +172,7 @@
...
@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizbook-
297
-7"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizbook-
302
-7"
>
<createTable
tableName=
"T_IBIZBOOK"
>
<createTable
tableName=
"T_IBIZBOOK"
>
<column
name=
"CREATEMAN"
remarks=
""
type=
"VARCHAR(60)"
>
<column
name=
"CREATEMAN"
remarks=
""
type=
"VARCHAR(60)"
>
</column>
</column>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录