@ibiz-template/runtime 0.0.3-beta.3 → 0.0.3-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/system/index.system.js +1 -1
- package/out/config/global-config.d.ts +3 -0
- package/out/config/global-config.d.ts.map +1 -1
- package/out/config/global-config.js +3 -0
- package/out/controller/control/form/edit-form.d.ts.map +1 -1
- package/out/controller/control/form/edit-form.js +6 -1
- package/out/controller/control/form/form-button.d.ts.map +1 -1
- package/out/controller/control/form/form-button.js +1 -1
- package/out/controller/control/form/form-detail.d.ts +2 -2
- package/out/controller/control/form/form-detail.d.ts.map +1 -1
- package/out/controller/control/form/form-detail.js +2 -2
- package/out/controller/control/form/form-druipart.d.ts +2 -2
- package/out/controller/control/form/form-druipart.d.ts.map +1 -1
- package/out/controller/control/form/form-druipart.js +4 -4
- package/out/controller/control/form/form-item.d.ts +2 -2
- package/out/controller/control/form/form-item.d.ts.map +1 -1
- package/out/controller/control/form/form-item.js +4 -4
- package/out/controller/control/form/form.d.ts +1 -1
- package/out/controller/control/form/form.d.ts.map +1 -1
- package/out/controller/control/form/form.js +19 -7
- package/out/controller/control/form/search-form.d.ts +1 -1
- package/out/controller/control/form/search-form.d.ts.map +1 -1
- package/out/controller/control/form/search-form.js +2 -2
- package/out/controller/control/grid/grid-field-column.d.ts +1 -1
- package/out/controller/control/grid/grid-field-column.d.ts.map +1 -1
- package/out/controller/control/grid/grid-field-column.js +8 -2
- package/out/controller/control/grid/grid-row.d.ts +8 -0
- package/out/controller/control/grid/grid-row.d.ts.map +1 -1
- package/out/controller/control/grid/grid-row.js +8 -0
- package/out/controller/control/grid/grid.d.ts +1 -1
- package/out/controller/control/grid/grid.d.ts.map +1 -1
- package/out/controller/control/grid/grid.js +27 -8
- package/out/controller/control/portlet/portlet-part.js +3 -4
- package/out/controller/editor/autocomplete.d.ts +73 -0
- package/out/controller/editor/autocomplete.d.ts.map +1 -0
- package/out/controller/editor/autocomplete.js +117 -0
- package/out/controller/editor/check-box.d.ts +12 -0
- package/out/controller/editor/check-box.d.ts.map +1 -0
- package/out/controller/editor/check-box.js +10 -0
- package/out/controller/editor/code-list-editor.d.ts.map +1 -1
- package/out/controller/editor/code-list-editor.js +1 -1
- package/out/controller/editor/editor.d.ts +1 -1
- package/out/controller/editor/editor.d.ts.map +1 -1
- package/out/controller/editor/editor.js +6 -6
- package/out/controller/editor/index.d.ts +4 -0
- package/out/controller/editor/index.d.ts.map +1 -1
- package/out/controller/editor/index.js +4 -0
- package/out/controller/editor/list-box-picker.d.ts +42 -0
- package/out/controller/editor/list-box-picker.d.ts.map +1 -0
- package/out/controller/editor/list-box-picker.js +67 -0
- package/out/controller/editor/list-box.d.ts +11 -0
- package/out/controller/editor/list-box.d.ts.map +1 -0
- package/out/controller/editor/list-box.js +9 -0
- package/out/controller/editor/picker.d.ts +6 -2
- package/out/controller/editor/picker.d.ts.map +1 -1
- package/out/controller/editor/picker.js +20 -10
- package/out/controller/interface/register/i-view-register.d.ts +2 -2
- package/out/controller/interface/register/i-view-register.d.ts.map +1 -1
- package/out/controller/neuron/nerve/view/grid-exp-view-nerve.d.ts.map +1 -1
- package/out/controller/neuron/nerve/view/grid-exp-view-nerve.js +1 -0
- package/out/controller/neuron/nerve/view/kanban-view-nerve.d.ts.map +1 -1
- package/out/controller/neuron/nerve/view/kanban-view-nerve.js +1 -0
- package/out/controller/neuron/nerve/view/list-exp-view-nerve.d.ts.map +1 -1
- package/out/controller/neuron/nerve/view/list-exp-view-nerve.js +1 -0
- package/out/controller/register/control-register.d.ts.map +1 -1
- package/out/controller/register/control-register.js +1 -0
- package/out/controller/register/editor-register.d.ts.map +1 -1
- package/out/controller/register/editor-register.js +2 -0
- package/out/controller/register/view-register.d.ts +2 -2
- package/out/controller/register/view-register.d.ts.map +1 -1
- package/out/controller/register/view-register.js +10 -12
- package/out/controller/state/control/form/form-state.d.ts +8 -0
- package/out/controller/state/control/form/form-state.d.ts.map +1 -1
- package/out/controller/state/control/form/form-state.js +8 -0
- package/out/controller/view/md-view.d.ts +0 -27
- package/out/controller/view/md-view.d.ts.map +1 -1
- package/out/controller/view/md-view.js +1 -28
- package/out/controller/view/pickup-grid-view.js +1 -1
- package/out/de-logic/de-logic-context.d.ts +28 -0
- package/out/de-logic/de-logic-context.d.ts.map +1 -0
- package/out/de-logic/de-logic-context.js +29 -0
- package/out/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.d.ts +11 -0
- package/out/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.d.ts.map +1 -0
- package/out/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.js +10 -0
- package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.d.ts +58 -0
- package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.d.ts.map +1 -0
- package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.js +79 -0
- package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.d.ts +48 -0
- package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.d.ts.map +1 -0
- package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.js +65 -0
- package/out/de-logic/de-logic-link/de-logic-link.d.ts +59 -0
- package/out/de-logic/de-logic-link/de-logic-link.d.ts.map +1 -0
- package/out/de-logic/de-logic-link/de-logic-link.js +67 -0
- package/out/de-logic/de-logic-node/bind-param-node/bind-param-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/bind-param-node/bind-param-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/bind-param-node/bind-param-node.js +25 -0
- package/out/de-logic/de-logic-node/data-set-node/data-set-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/data-set-node/data-set-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/data-set-node/data-set-node.js +29 -0
- package/out/de-logic/de-logic-node/de-action-node/de-action-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/de-action-node/de-action-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/de-action-node/de-action-node.js +36 -0
- package/out/de-logic/de-logic-node/de-logic-node.d.ts +43 -0
- package/out/de-logic/de-logic-node/de-logic-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/de-logic-node.js +22 -0
- package/out/de-logic/de-logic-node/end-node/end-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/end-node/end-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/end-node/end-node.js +37 -0
- package/out/de-logic/de-logic-node/index.d.ts +8 -0
- package/out/de-logic/de-logic-node/index.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/index.js +7 -0
- package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.js +15 -0
- package/out/de-logic/de-logic-node/start-node/start-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/start-node/start-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/start-node/start-node.js +15 -0
- package/out/de-logic/de-logic-node/throw-exception-node/throw-exception-node.d.ts +15 -0
- package/out/de-logic/de-logic-node/throw-exception-node/throw-exception-node.d.ts.map +1 -0
- package/out/de-logic/de-logic-node/throw-exception-node/throw-exception-node.js +23 -0
- package/out/de-logic/de-logic-param/de-logic-param.d.ts +33 -0
- package/out/de-logic/de-logic-param/de-logic-param.d.ts.map +1 -0
- package/out/de-logic/de-logic-param/de-logic-param.js +93 -0
- package/out/de-logic/de-logic.d.ts +79 -0
- package/out/de-logic/de-logic.d.ts.map +1 -0
- package/out/de-logic/de-logic.js +157 -0
- package/out/de-logic/index.d.ts +17 -0
- package/out/de-logic/index.d.ts.map +1 -0
- package/out/de-logic/index.js +38 -0
- package/out/interface/i-global-config/i-global-config.d.ts +31 -0
- package/out/interface/i-global-config/i-global-config.d.ts.map +1 -1
- package/out/interface/i-plugin-factory/i-plugin-factory.d.ts +8 -23
- package/out/interface/i-plugin-factory/i-plugin-factory.d.ts.map +1 -1
- package/out/interface/i-plugin-item/i-plugin-item.d.ts +1 -8
- package/out/interface/i-plugin-item/i-plugin-item.d.ts.map +1 -1
- package/out/service/dto/method.dto.d.ts +3 -3
- package/out/service/dto/method.dto.d.ts.map +1 -1
- package/out/service/dto/method.dto.js +22 -22
- package/out/service/entity/entity.d.ts +9 -0
- package/out/service/entity/entity.d.ts.map +1 -1
- package/out/service/entity/entity.js +11 -2
- package/out/service/service/entity/method/de-action.d.ts.map +1 -1
- package/out/service/service/entity/method/de-action.js +12 -4
- package/out/service/service/entity/method/method-renturn.js +2 -2
- package/out/service/service/entity/method/method.d.ts +1 -1
- package/out/service/service/entity/method/method.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +28 -25
- package/out/service/service/widget/control-service.d.ts +1 -1
- package/out/service/service/widget/control-service.d.ts.map +1 -1
- package/out/service/service/widget/control-service.js +2 -2
- package/out/service/service/widget/edit-form-service.d.ts.map +1 -1
- package/out/service/service/widget/edit-form-service.js +3 -3
- package/out/service/service/widget/md-control-service.d.ts.map +1 -1
- package/out/service/service/widget/md-control-service.js +3 -3
- package/out/service/service/widget/wizard-panel-service.d.ts +2 -2
- package/out/service/service/widget/wizard-panel-service.d.ts.map +1 -1
- package/out/service/service/widget/wizard-panel-service.js +4 -4
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.js +5 -2
- package/out/service/vo/tree-node-data/tree-data-set-node-data.js +2 -2
- package/out/ui-logic/ui-logic.d.ts +1 -1
- package/out/ui-logic/ui-logic.d.ts.map +1 -1
- package/out/utils/app-de-ui-action-util/handler/backend-ui-action-handler.d.ts.map +1 -1
- package/out/utils/app-de-ui-action-util/handler/backend-ui-action-handler.js +4 -0
- package/package.json +6 -6
- package/src/config/global-config.ts +6 -0
- package/src/controller/control/form/edit-form.ts +7 -1
- package/src/controller/control/form/form-button.ts +4 -1
- package/src/controller/control/form/form-detail.ts +2 -2
- package/src/controller/control/form/form-druipart.ts +4 -4
- package/src/controller/control/form/form-item.ts +7 -4
- package/src/controller/control/form/form.ts +21 -7
- package/src/controller/control/form/search-form.ts +2 -2
- package/src/controller/control/grid/grid-field-column.ts +8 -2
- package/src/controller/control/grid/grid-row.ts +9 -0
- package/src/controller/control/grid/grid.ts +32 -9
- package/src/controller/control/portlet/portlet-part.ts +3 -3
- package/src/controller/editor/autocomplete.ts +138 -0
- package/src/controller/editor/check-box.ts +11 -0
- package/src/controller/editor/code-list-editor.ts +5 -1
- package/src/controller/editor/editor.ts +10 -16
- package/src/controller/editor/index.ts +4 -0
- package/src/controller/editor/list-box-picker.ts +78 -0
- package/src/controller/editor/list-box.ts +10 -0
- package/src/controller/editor/picker.ts +33 -10
- package/src/controller/interface/register/i-view-register.ts +2 -2
- package/src/controller/neuron/nerve/view/grid-exp-view-nerve.ts +4 -0
- package/src/controller/neuron/nerve/view/kanban-view-nerve.ts +4 -0
- package/src/controller/neuron/nerve/view/list-exp-view-nerve.ts +4 -0
- package/src/controller/register/control-register.ts +5 -0
- package/src/controller/register/editor-register.ts +6 -0
- package/src/controller/register/view-register.ts +14 -14
- package/src/controller/state/control/form/form-state.ts +9 -0
- package/src/controller/view/md-view.ts +1 -31
- package/src/controller/view/pickup-grid-view.ts +1 -1
- package/src/de-logic/de-logic-context.ts +28 -0
- package/src/de-logic/de-logic-link/de-logic-link-cond/de-logic-link-cond.ts +9 -0
- package/src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts +97 -0
- package/src/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.ts +96 -0
- package/src/de-logic/de-logic-link/de-logic-link.ts +80 -0
- package/src/de-logic/de-logic-node/bind-param-node/bind-param-node.ts +33 -0
- package/src/de-logic/de-logic-node/data-set-node/data-set-node.ts +42 -0
- package/src/de-logic/de-logic-node/de-action-node/de-action-node.ts +49 -0
- package/src/de-logic/de-logic-node/de-logic-node.ts +52 -0
- package/src/de-logic/de-logic-node/end-node/end-node.ts +49 -0
- package/src/de-logic/de-logic-node/index.ts +7 -0
- package/src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts +23 -0
- package/src/de-logic/de-logic-node/start-node/start-node.ts +23 -0
- package/src/de-logic/de-logic-node/throw-exception-node/throw-exception-node.ts +32 -0
- package/src/de-logic/de-logic-param/de-logic-param.ts +90 -0
- package/src/de-logic/de-logic.ts +190 -0
- package/src/de-logic/index.ts +45 -0
- package/src/interface/i-global-config/i-global-config.ts +34 -0
- package/src/interface/i-plugin-factory/i-plugin-factory.ts +8 -23
- package/src/interface/i-plugin-item/i-plugin-item.ts +1 -8
- package/src/service/dto/method.dto.ts +25 -23
- package/src/service/entity/entity.ts +12 -2
- package/src/service/service/entity/method/de-action.ts +13 -4
- package/src/service/service/entity/method/method-renturn.ts +2 -2
- package/src/service/service/entity/method/method.ts +33 -26
- package/src/service/service/widget/control-service.ts +7 -1
- package/src/service/service/widget/edit-form-service.ts +13 -3
- package/src/service/service/widget/md-control-service.ts +13 -3
- package/src/service/service/widget/wizard-panel-service.ts +4 -2
- package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +6 -2
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +2 -2
- package/src/ui-logic/ui-logic.ts +1 -1
- package/src/utils/app-de-ui-action-util/handler/backend-ui-action-handler.ts +6 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/* eslint-disable no-await-in-loop */
|
|
2
|
+
import { DELogicModel, UnsupportedModelError } from '@ibiz-template/model';
|
|
3
|
+
import { DELogicContext } from './de-logic-context';
|
|
4
|
+
import {
|
|
5
|
+
DEActionNode,
|
|
6
|
+
EndNode,
|
|
7
|
+
PrepareParamNode,
|
|
8
|
+
StartNode,
|
|
9
|
+
DELogicNode,
|
|
10
|
+
DataSetNode,
|
|
11
|
+
BindParamNode,
|
|
12
|
+
} from './de-logic-node';
|
|
13
|
+
import { ThrowExceptionNode } from './de-logic-node/throw-exception-node/throw-exception-node';
|
|
14
|
+
import { DELogicParam } from './de-logic-param/de-logic-param';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 界面逻辑
|
|
18
|
+
*
|
|
19
|
+
* @author lxm
|
|
20
|
+
* @date 2023-02-07 16:02:48
|
|
21
|
+
* @export
|
|
22
|
+
* @class DELogic
|
|
23
|
+
*/
|
|
24
|
+
export class DELogic {
|
|
25
|
+
/**
|
|
26
|
+
* 所有节点实例
|
|
27
|
+
*
|
|
28
|
+
* @author lxm
|
|
29
|
+
* @date 2023-02-08 21:02:38
|
|
30
|
+
* @protected
|
|
31
|
+
* @type {Map<string, DELogicNode>}
|
|
32
|
+
*/
|
|
33
|
+
protected nodes: Map<string, DELogicNode> = new Map();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 所有参数实例
|
|
37
|
+
*
|
|
38
|
+
* @author lxm
|
|
39
|
+
* @date 2023-02-08 21:02:25
|
|
40
|
+
* @protected
|
|
41
|
+
* @type {Map<string, DELogicParam>}
|
|
42
|
+
*/
|
|
43
|
+
protected params: Map<string, DELogicParam> = new Map();
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates an instance of DELogic.
|
|
47
|
+
* @author lxm
|
|
48
|
+
* @date 2023-02-08 17:02:26
|
|
49
|
+
* @param {DELogicModel} model
|
|
50
|
+
*/
|
|
51
|
+
constructor(protected model: DELogicModel) {
|
|
52
|
+
model.nodes.forEach(node => {
|
|
53
|
+
const { logicNodeType } = node.source;
|
|
54
|
+
let logicNode;
|
|
55
|
+
switch (logicNodeType) {
|
|
56
|
+
case 'BEGIN': // 开始
|
|
57
|
+
logicNode = new StartNode(node);
|
|
58
|
+
break;
|
|
59
|
+
case 'END': // 结束
|
|
60
|
+
logicNode = new EndNode(node);
|
|
61
|
+
break;
|
|
62
|
+
case 'DEACTION': // 实体行为
|
|
63
|
+
logicNode = new DEActionNode(node);
|
|
64
|
+
break;
|
|
65
|
+
case 'PREPAREPARAM': // 准备参数
|
|
66
|
+
logicNode = new PrepareParamNode(node);
|
|
67
|
+
break;
|
|
68
|
+
case 'DEDATASET': // 实体数据集
|
|
69
|
+
logicNode = new DataSetNode(node);
|
|
70
|
+
break;
|
|
71
|
+
case 'THROWEXCEPTION': // 抛出异常
|
|
72
|
+
logicNode = new ThrowExceptionNode(node);
|
|
73
|
+
break;
|
|
74
|
+
case 'BINDPARAM': // 绑定参数
|
|
75
|
+
logicNode = new BindParamNode(node);
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
throw new UnsupportedModelError(
|
|
79
|
+
node.source,
|
|
80
|
+
`未支持的逻辑节点类型: ${logicNodeType}`,
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
this.nodes.set(node.codeName, logicNode);
|
|
84
|
+
});
|
|
85
|
+
model.params.forEach(param => {
|
|
86
|
+
this.params.set(param.codeName, new DELogicParam(param));
|
|
87
|
+
});
|
|
88
|
+
// 将已经实例化的逻辑节点挂载到逻辑连接上
|
|
89
|
+
this.nodes.forEach(node => {
|
|
90
|
+
node.links.forEach(link => {
|
|
91
|
+
const { srcNode, dstNode } = link.model;
|
|
92
|
+
if (this.nodes.has(srcNode.codeName)) {
|
|
93
|
+
link.srcNode = this.nodes.get(srcNode.codeName)!;
|
|
94
|
+
}
|
|
95
|
+
if (this.nodes.has(dstNode.codeName)) {
|
|
96
|
+
link.dstNode = this.nodes.get(dstNode.codeName)!;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 初始化逻辑参数
|
|
104
|
+
*
|
|
105
|
+
* @author lxm
|
|
106
|
+
* @date 2023-02-08 21:02:58
|
|
107
|
+
* @protected
|
|
108
|
+
* @param {DELogicContext} ctx
|
|
109
|
+
* @param {IContext} context
|
|
110
|
+
* @param {IData} data
|
|
111
|
+
* @param {IParams} [opt]
|
|
112
|
+
*/
|
|
113
|
+
protected initLogicParams(
|
|
114
|
+
ctx: DELogicContext,
|
|
115
|
+
context: IContext,
|
|
116
|
+
data: IData | null,
|
|
117
|
+
params: IParams,
|
|
118
|
+
opt?: IParams,
|
|
119
|
+
): void {
|
|
120
|
+
this.params.forEach(param => {
|
|
121
|
+
param.calc(ctx, context, data, params, opt);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 执行逻辑
|
|
127
|
+
*
|
|
128
|
+
* @author lxm
|
|
129
|
+
* @date 2023-02-08 21:02:09
|
|
130
|
+
* @param {IContext} context
|
|
131
|
+
* @param {IData} data
|
|
132
|
+
* @param {IParams} [opt]
|
|
133
|
+
* @return {*} {Promise<IData>}
|
|
134
|
+
*/
|
|
135
|
+
async exec(
|
|
136
|
+
context: IContext,
|
|
137
|
+
data: IData | null,
|
|
138
|
+
params: IParams,
|
|
139
|
+
opt?: IParams,
|
|
140
|
+
): Promise<unknown> {
|
|
141
|
+
const ctx = new DELogicContext();
|
|
142
|
+
this.initLogicParams(ctx, context, data, params, opt);
|
|
143
|
+
if (this.model.startNode && this.nodes.has(this.model.startNode.codeName)) {
|
|
144
|
+
const start = this.nodes.get(this.model.startNode.codeName)!;
|
|
145
|
+
await this.deepExec(start, ctx, context, data, params, opt);
|
|
146
|
+
} else {
|
|
147
|
+
throw new UnsupportedModelError(this.model.source, `未设置起始节点`);
|
|
148
|
+
}
|
|
149
|
+
return ctx.result || ctx.params.default || null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* 开始根据连线递归执行逻辑
|
|
154
|
+
*
|
|
155
|
+
* @author lxm
|
|
156
|
+
* @date 2023-02-09 15:02:32
|
|
157
|
+
* @protected
|
|
158
|
+
* @param {DELogicNode} node
|
|
159
|
+
* @param {DELogicContext} ctx
|
|
160
|
+
* @param {IContext} context
|
|
161
|
+
* @param {(IData | null)} data
|
|
162
|
+
* @param {IParams} params
|
|
163
|
+
* @param {IParams} [opt]
|
|
164
|
+
* @return {*} {(Promise<IData | null>)}
|
|
165
|
+
*/
|
|
166
|
+
protected async deepExec(
|
|
167
|
+
node: DELogicNode,
|
|
168
|
+
ctx: DELogicContext,
|
|
169
|
+
context: IContext,
|
|
170
|
+
data: IData | null,
|
|
171
|
+
params: IParams,
|
|
172
|
+
opt?: IParams,
|
|
173
|
+
): Promise<void> {
|
|
174
|
+
// 执行逻辑节点
|
|
175
|
+
await node.exec(ctx, context, data, params, opt);
|
|
176
|
+
const { links } = node;
|
|
177
|
+
// 遍历所有节点连接,递归执行下级连接节点
|
|
178
|
+
for (let index = 0; index < links.length; index++) {
|
|
179
|
+
const link = links[index];
|
|
180
|
+
const bol = await link.exec(ctx, context, data, params, opt);
|
|
181
|
+
if (bol && link.dstNode) {
|
|
182
|
+
await this.deepExec(link.dstNode, ctx, context, data, params, opt);
|
|
183
|
+
// 平行输出: 在满足连接条件并逻辑执行完毕后若是非平行输出则执行完成
|
|
184
|
+
if (node.model.parallel === false) {
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { HttpError, HttpResponse } from '@ibiz-template/core';
|
|
2
|
+
import { IPSDELogic, DELogicModel } from '@ibiz-template/model';
|
|
3
|
+
import { DELogic } from './de-logic';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 实体处理逻辑实例缓存
|
|
7
|
+
*/
|
|
8
|
+
const deLogicMap: WeakMap<IPSDELogic, DELogic> = new Map();
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 执行实体处理逻辑
|
|
12
|
+
*
|
|
13
|
+
* @author lxm
|
|
14
|
+
* @date 2023-02-09 11:02:23
|
|
15
|
+
* @export
|
|
16
|
+
* @param {IPSDELogic} deDELogic
|
|
17
|
+
* @param {IContext} context
|
|
18
|
+
* @param {(IData | null)} data
|
|
19
|
+
* @param {IParams} params
|
|
20
|
+
* @param {IParams} [opt]
|
|
21
|
+
* @return {*} {Promise<HttpResponse<IData>>}
|
|
22
|
+
*/
|
|
23
|
+
export async function execDELogic(
|
|
24
|
+
deDELogic: IPSDELogic,
|
|
25
|
+
context: IContext,
|
|
26
|
+
data: IData | null,
|
|
27
|
+
params: IParams,
|
|
28
|
+
opt?: IParams,
|
|
29
|
+
): Promise<HttpResponse<IData>> {
|
|
30
|
+
if (!deLogicMap.has(deDELogic)) {
|
|
31
|
+
const deLogicModel = new DELogicModel(deDELogic);
|
|
32
|
+
await deLogicModel.init();
|
|
33
|
+
deLogicMap.set(deDELogic, new DELogic(deLogicModel));
|
|
34
|
+
}
|
|
35
|
+
const deLogic = deLogicMap.get(deDELogic)!;
|
|
36
|
+
try {
|
|
37
|
+
const result = await deLogic.exec(context, data, params, opt);
|
|
38
|
+
return new HttpResponse(result);
|
|
39
|
+
} catch (err) {
|
|
40
|
+
if (err instanceof HttpError) {
|
|
41
|
+
return new HttpResponse(err, 500);
|
|
42
|
+
}
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -17,4 +17,38 @@ export interface IGlobalConfig {
|
|
|
17
17
|
* @type {boolean}
|
|
18
18
|
*/
|
|
19
19
|
enableDataInfoBar: boolean;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 默认代码表超时时间(单位:毫秒)
|
|
23
|
+
*
|
|
24
|
+
* @author lxm
|
|
25
|
+
* @date 2023-03-08 03:12:28
|
|
26
|
+
* @type {number}
|
|
27
|
+
* @memberof IGlobalConfig
|
|
28
|
+
*/
|
|
29
|
+
defaultCodeListCacheTimeout: number;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 表格行编辑呈现模式
|
|
33
|
+
* - cell 每次只呈现悬浮点击之后的一个单元格的编辑态
|
|
34
|
+
* - row 每次呈现编辑中的那一行所有单元格的编辑态 TODO
|
|
35
|
+
* - all 呈现所有编辑项的编辑态
|
|
36
|
+
* @author lxm
|
|
37
|
+
* @date 2023-03-06 09:42:44
|
|
38
|
+
* @type {('cell' | 'row' | 'all')}
|
|
39
|
+
* @memberof IGlobalConfig
|
|
40
|
+
*/
|
|
41
|
+
gridEditShowMode: 'cell' | 'row' | 'all';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 表格行编辑保存模式
|
|
45
|
+
* - cell-blur 单元格失焦时保存整行数据
|
|
46
|
+
* - auto 自动保存,值变更之后一段时间保存整行数据
|
|
47
|
+
* - manual 手动保存,由界面行为调用表格整体保存或行保存。
|
|
48
|
+
* @author lxm
|
|
49
|
+
* @date 2023-03-06 03:33:35
|
|
50
|
+
* @type {('cell-blur' | 'auto' | 'manual')}
|
|
51
|
+
* @memberof IGlobalConfig
|
|
52
|
+
*/
|
|
53
|
+
gridEditSaveMode: 'cell-blur' | 'auto' | 'manual';
|
|
20
54
|
}
|
|
@@ -39,7 +39,7 @@ export interface IPluginFactory {
|
|
|
39
39
|
*/
|
|
40
40
|
loadPluginRef(rtObjectName: string, rtObjectRepo: string): Promise<boolean>;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* 给入应用实例,将已经加载的过插件注入。主要用于多实例的情况
|
|
43
43
|
*
|
|
44
44
|
* @author chitanda
|
|
45
45
|
* @date 2023-02-02 16:02:39
|
|
@@ -51,31 +51,16 @@ export interface IPluginFactory {
|
|
|
51
51
|
*
|
|
52
52
|
* @author chitanda
|
|
53
53
|
* @date 2023-02-06 21:02:06
|
|
54
|
-
* @param {IPluginItem} plugin
|
|
54
|
+
* @param {IPluginItem} plugin 其中 Name 将作为插件标识
|
|
55
55
|
*/
|
|
56
|
-
|
|
56
|
+
registerPredefinedPlugin(plugin: IPluginItem): void;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* 加载指定标识视图插件
|
|
59
59
|
*
|
|
60
60
|
* @author chitanda
|
|
61
|
-
* @date 2023-
|
|
62
|
-
* @param {
|
|
61
|
+
* @date 2023-03-09 18:03:44
|
|
62
|
+
* @param {string} name 插件标识
|
|
63
|
+
* @return {*} {Promise<void>}
|
|
63
64
|
*/
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* 注册默认编辑器插件
|
|
67
|
-
*
|
|
68
|
-
* @author chitanda
|
|
69
|
-
* @date 2023-02-06 21:02:30
|
|
70
|
-
* @param {IPluginItem} plugin
|
|
71
|
-
*/
|
|
72
|
-
registerEditorPlugin(plugin: IPluginItem): void;
|
|
73
|
-
/**
|
|
74
|
-
* 获取所有的默认编辑器插件
|
|
75
|
-
*
|
|
76
|
-
* @author chitanda
|
|
77
|
-
* @date 2023-02-06 21:02:15
|
|
78
|
-
* @return {*} {IPluginItem[]}
|
|
79
|
-
*/
|
|
80
|
-
getAllDefaultPlugins(): IPluginItem[];
|
|
65
|
+
loadPredefinedPlugin(name: string): Promise<void>;
|
|
81
66
|
}
|
|
@@ -7,17 +7,10 @@
|
|
|
7
7
|
* @interface IPluginItem
|
|
8
8
|
*/
|
|
9
9
|
export interface IPluginItem {
|
|
10
|
-
/**
|
|
11
|
-
* 用于标识类型,具体的类型解释归具体的插件识别对象解释。例如此插件用于视图,那么由视图的注册机制做解释。其他类似
|
|
12
|
-
*
|
|
13
|
-
* @author chitanda
|
|
14
|
-
* @date 2023-02-06 21:02:54
|
|
15
|
-
* @type {string}
|
|
16
|
-
*/
|
|
17
|
-
type: string;
|
|
18
10
|
/**
|
|
19
11
|
* 插件名称,对应模型 rtObjectName
|
|
20
12
|
*
|
|
13
|
+
* @description 预置插件类型名称规则: 视图(VIEW_${视图类型}_DEFAULT)、部件(CONTROL_${部件类型}_DEFAULT)、编辑器(EDITOR_${编辑器类型}_DEFAULT)
|
|
21
14
|
* @author chitanda
|
|
22
15
|
* @date 2023-02-06 21:02:21
|
|
23
16
|
* @type {string}
|
|
@@ -108,32 +108,34 @@ export class MethodDto {
|
|
|
108
108
|
* @author chitanda
|
|
109
109
|
* @date 2022-10-10 23:10:50
|
|
110
110
|
* @param {IContext} context
|
|
111
|
-
* @param {IData} data
|
|
112
|
-
* @return {*} {Promise<
|
|
111
|
+
* @param {IData[]} data
|
|
112
|
+
* @return {*} {Promise<Entity[]>}
|
|
113
113
|
*/
|
|
114
|
-
async
|
|
114
|
+
async sets(context: IContext, data: IData[]): Promise<Entity[]> {
|
|
115
115
|
const service = await this.app!.es.getService(this.entity.codeName);
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
.map(async
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
116
|
+
service.local.clear(context);
|
|
117
|
+
return Promise.all(
|
|
118
|
+
data.map(async datum => {
|
|
119
|
+
const all = this.fields
|
|
120
|
+
.filter(field => field.type === 'DTOS')
|
|
121
|
+
.map(async field => {
|
|
122
|
+
const key = field.codeName.toLowerCase();
|
|
123
|
+
const dto = await this.getFieldDto(field);
|
|
124
|
+
const items: IData[] = datum[key];
|
|
125
|
+
if (items) {
|
|
126
|
+
await dto.sets(context, items);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
for (let i = 0; i < all.length; i++) {
|
|
130
|
+
await all[i];
|
|
127
131
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
return entityData;
|
|
132
|
+
const entityData = new Entity(this.entity.source, datum);
|
|
133
|
+
if (this.entity.isLocalMode) {
|
|
134
|
+
await service.local.add(context, entityData);
|
|
135
|
+
}
|
|
136
|
+
return entityData;
|
|
137
|
+
}),
|
|
138
|
+
);
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
/**
|
|
@@ -20,6 +20,16 @@ export class Entity {
|
|
|
20
20
|
|
|
21
21
|
protected declare entity: IPSAppDataEntity;
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* 前端临时主键
|
|
25
|
+
*
|
|
26
|
+
* @author chitanda
|
|
27
|
+
* @date 2023-03-08 17:03:12
|
|
28
|
+
* @protected
|
|
29
|
+
* @type {string}
|
|
30
|
+
*/
|
|
31
|
+
protected _srfkey: string = '';
|
|
32
|
+
|
|
23
33
|
declare srfdename: string;
|
|
24
34
|
|
|
25
35
|
declare srfkey: string;
|
|
@@ -58,10 +68,10 @@ export class Entity {
|
|
|
58
68
|
});
|
|
59
69
|
Object.defineProperty(this, 'srfkey', {
|
|
60
70
|
set(val: unknown) {
|
|
61
|
-
this.
|
|
71
|
+
this._srfkey = val;
|
|
62
72
|
},
|
|
63
73
|
get() {
|
|
64
|
-
return this.data[key];
|
|
74
|
+
return this.data[key] || this._srfkey;
|
|
65
75
|
},
|
|
66
76
|
});
|
|
67
77
|
Object.defineProperty(this, 'srfmajortext', {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpResponse, IHttpResponse } from '@ibiz-template/core';
|
|
2
|
+
import { execDELogic } from '../../../../de-logic';
|
|
2
3
|
import { Entity } from '../../../entity/entity';
|
|
3
4
|
import { Method } from './method';
|
|
4
5
|
|
|
@@ -17,6 +18,14 @@ export class DEActionMethod extends Method {
|
|
|
17
18
|
data: IData,
|
|
18
19
|
params: IParams,
|
|
19
20
|
): Promise<HttpResponse<IData>> {
|
|
21
|
+
// 实体逻辑处理
|
|
22
|
+
if (this.method.actionType === 'DELOGIC') {
|
|
23
|
+
const deLogic = this.method.getPSAppDELogic();
|
|
24
|
+
if (deLogic?.enableFront) {
|
|
25
|
+
return execDELogic(deLogic, context, data, params);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
20
29
|
if (!this.entity.isLocalMode) {
|
|
21
30
|
data = await this.input.handle(context, data);
|
|
22
31
|
}
|
|
@@ -30,11 +39,11 @@ export class DEActionMethod extends Method {
|
|
|
30
39
|
case 'Create':
|
|
31
40
|
return this.create(context, data, params);
|
|
32
41
|
case 'Get':
|
|
33
|
-
return this.get(context,
|
|
42
|
+
return this.get(context, params);
|
|
34
43
|
case 'GetDraft':
|
|
35
|
-
return this.getDraft(context,
|
|
44
|
+
return this.getDraft(context, params);
|
|
36
45
|
case 'Remove':
|
|
37
|
-
return this.remove(context,
|
|
46
|
+
return this.remove(context, params);
|
|
38
47
|
case 'Update':
|
|
39
48
|
return this.update(context, data, params);
|
|
40
49
|
case 'CreateTemp':
|
|
@@ -42,7 +51,7 @@ export class DEActionMethod extends Method {
|
|
|
42
51
|
case 'GetTemp':
|
|
43
52
|
return this.getTemp(context, data);
|
|
44
53
|
case 'GetDraftTemp':
|
|
45
|
-
return this.getDraftTemp(context,
|
|
54
|
+
return this.getDraftTemp(context, params);
|
|
46
55
|
case 'RemoveTemp':
|
|
47
56
|
return this.removeTemp(context, data);
|
|
48
57
|
case 'UpdateTemp':
|
|
@@ -46,8 +46,8 @@ export class MethodReturn {
|
|
|
46
46
|
*/
|
|
47
47
|
async handle(context: IContext, data: IData): Promise<Entity> {
|
|
48
48
|
if (this.dto) {
|
|
49
|
-
this.
|
|
50
|
-
return
|
|
49
|
+
const items = await this.dto.sets(context, [data]);
|
|
50
|
+
return items[0];
|
|
51
51
|
}
|
|
52
52
|
return new Entity(this.entity.source, data);
|
|
53
53
|
}
|
|
@@ -101,38 +101,45 @@ export abstract class Method {
|
|
|
101
101
|
*/
|
|
102
102
|
protected async request(
|
|
103
103
|
path: string,
|
|
104
|
-
|
|
104
|
+
context: IContext,
|
|
105
105
|
data: IData,
|
|
106
106
|
params: IParams,
|
|
107
107
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
108
108
|
): Promise<HttpResponse<any>> {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.method,
|
|
129
|
-
`未支持的请求方式: ${requestType}`,
|
|
109
|
+
const { actionType, requestMethod } = this.method;
|
|
110
|
+
if (actionType === 'REMOTE') {
|
|
111
|
+
const methodName = this.method.codeName.toLowerCase();
|
|
112
|
+
let res: HttpResponse | null = null;
|
|
113
|
+
switch (requestMethod) {
|
|
114
|
+
case 'POST':
|
|
115
|
+
res = await this.app.net.post(`${path}/${methodName}`, data, params);
|
|
116
|
+
break;
|
|
117
|
+
case 'GET':
|
|
118
|
+
res = await this.app.net.get(`${path}/${methodName}`, data, params);
|
|
119
|
+
break;
|
|
120
|
+
case 'PUT':
|
|
121
|
+
res = await this.app.net.put(`${path}/${methodName}`, data, params);
|
|
122
|
+
break;
|
|
123
|
+
case 'DELETE':
|
|
124
|
+
res = await this.app.net.delete(
|
|
125
|
+
`${path}/${methodName}`,
|
|
126
|
+
data,
|
|
127
|
+
params,
|
|
130
128
|
);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
break;
|
|
130
|
+
default:
|
|
131
|
+
if (requestMethod) {
|
|
132
|
+
throw new DefectModelError(
|
|
133
|
+
this.method,
|
|
134
|
+
`未支持的请求方式: ${requestMethod}`,
|
|
135
|
+
);
|
|
136
|
+
} else {
|
|
137
|
+
throw new DefectModelError(this.method, '未配置请求方式');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return res;
|
|
134
141
|
}
|
|
135
|
-
|
|
142
|
+
throw new DefectModelError(this.method, `未支持的行为类型[${actionType}]`);
|
|
136
143
|
}
|
|
137
144
|
|
|
138
145
|
/**
|
|
@@ -108,9 +108,15 @@ export class ControlService<T extends ControlModel = ControlModel> {
|
|
|
108
108
|
async exec(
|
|
109
109
|
methodName: string,
|
|
110
110
|
context: IContext,
|
|
111
|
+
data: IData = {},
|
|
111
112
|
params: IParams = {},
|
|
112
113
|
): Promise<IHttpResponse> {
|
|
113
|
-
const res = await this.entityService.exec(
|
|
114
|
+
const res = await this.entityService.exec(
|
|
115
|
+
methodName,
|
|
116
|
+
context,
|
|
117
|
+
data,
|
|
118
|
+
params,
|
|
119
|
+
);
|
|
114
120
|
return res;
|
|
115
121
|
}
|
|
116
122
|
|
|
@@ -20,7 +20,7 @@ export class EditFormService<
|
|
|
20
20
|
context: IContext,
|
|
21
21
|
params: IParams = {},
|
|
22
22
|
): Promise<IHttpResponse<ControlVO>> {
|
|
23
|
-
let res = await this.exec(this.model.getAction, context, params);
|
|
23
|
+
let res = await this.exec(this.model.getAction, context, undefined, params);
|
|
24
24
|
res = this.handleResponse(res);
|
|
25
25
|
return res as IHttpResponse<ControlVO>;
|
|
26
26
|
}
|
|
@@ -38,7 +38,12 @@ export class EditFormService<
|
|
|
38
38
|
context: IContext,
|
|
39
39
|
params: IParams = {},
|
|
40
40
|
): Promise<IHttpResponse<ControlVO>> {
|
|
41
|
-
let res = await this.exec(
|
|
41
|
+
let res = await this.exec(
|
|
42
|
+
this.model.getDraftAction,
|
|
43
|
+
context,
|
|
44
|
+
undefined,
|
|
45
|
+
params,
|
|
46
|
+
);
|
|
42
47
|
res = this.handleResponse(res);
|
|
43
48
|
return res as IHttpResponse<ControlVO>;
|
|
44
49
|
}
|
|
@@ -56,7 +61,12 @@ export class EditFormService<
|
|
|
56
61
|
context: IContext,
|
|
57
62
|
params: IParams = {},
|
|
58
63
|
): Promise<IHttpResponse> {
|
|
59
|
-
const res = await this.exec(
|
|
64
|
+
const res = await this.exec(
|
|
65
|
+
this.model.removeAction,
|
|
66
|
+
context,
|
|
67
|
+
undefined,
|
|
68
|
+
params,
|
|
69
|
+
);
|
|
60
70
|
return res;
|
|
61
71
|
}
|
|
62
72
|
|
|
@@ -38,7 +38,7 @@ export class MDControlService<
|
|
|
38
38
|
context: IContext,
|
|
39
39
|
params: IParams = {},
|
|
40
40
|
): Promise<IHttpResponse<ControlVO>> {
|
|
41
|
-
let res = await this.exec(this.model.getAction, context, params);
|
|
41
|
+
let res = await this.exec(this.model.getAction, context, undefined, params);
|
|
42
42
|
res = this.handleResponse(res);
|
|
43
43
|
return res as IHttpResponse<ControlVO>;
|
|
44
44
|
}
|
|
@@ -56,7 +56,12 @@ export class MDControlService<
|
|
|
56
56
|
context: IContext,
|
|
57
57
|
params: IParams = {},
|
|
58
58
|
): Promise<IHttpResponse<ControlVO>> {
|
|
59
|
-
let res = await this.exec(
|
|
59
|
+
let res = await this.exec(
|
|
60
|
+
this.model.getDraftAction,
|
|
61
|
+
context,
|
|
62
|
+
undefined,
|
|
63
|
+
params,
|
|
64
|
+
);
|
|
60
65
|
res = this.handleResponse(res);
|
|
61
66
|
return res as IHttpResponse<ControlVO>;
|
|
62
67
|
}
|
|
@@ -74,7 +79,12 @@ export class MDControlService<
|
|
|
74
79
|
context: IContext,
|
|
75
80
|
params: IParams = {},
|
|
76
81
|
): Promise<IHttpResponse> {
|
|
77
|
-
const res = await this.exec(
|
|
82
|
+
const res = await this.exec(
|
|
83
|
+
this.model.removeAction,
|
|
84
|
+
context,
|
|
85
|
+
undefined,
|
|
86
|
+
params,
|
|
87
|
+
);
|
|
78
88
|
return res;
|
|
79
89
|
}
|
|
80
90
|
|
|
@@ -27,9 +27,10 @@ export class WizardPanelService<
|
|
|
27
27
|
*/
|
|
28
28
|
async initialize(
|
|
29
29
|
context: IContext,
|
|
30
|
+
data: IData = {},
|
|
30
31
|
params: IParams = {},
|
|
31
32
|
): Promise<IHttpResponse<IData>> {
|
|
32
|
-
let res = await this.exec(this.model.initAction!, context, params);
|
|
33
|
+
let res = await this.exec(this.model.initAction!, context, data, params);
|
|
33
34
|
res = this.handleResponse(res);
|
|
34
35
|
return res as IHttpResponse<IData>;
|
|
35
36
|
}
|
|
@@ -45,9 +46,10 @@ export class WizardPanelService<
|
|
|
45
46
|
*/
|
|
46
47
|
async finish(
|
|
47
48
|
context: IContext,
|
|
49
|
+
data: IData = {},
|
|
48
50
|
params: IParams = {},
|
|
49
51
|
): Promise<IHttpResponse<IData>> {
|
|
50
|
-
let res = await this.exec(this.model.finishAction, context, params);
|
|
52
|
+
let res = await this.exec(this.model.finishAction, context, data, params);
|
|
51
53
|
res = this.handleResponse(res);
|
|
52
54
|
return res as IHttpResponse<IData>;
|
|
53
55
|
}
|