@ibiz-template/runtime 0.1.21 → 0.1.22
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/index.esm.js +902 -204
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/constant/view-call-tag.d.ts +9 -1
- package/out/constant/view-call-tag.d.ts.map +1 -1
- package/out/constant/view-call-tag.js +8 -0
- package/out/controller/control/data-view/data-view.controller.d.ts +25 -2
- package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
- package/out/controller/control/data-view/data-view.controller.js +70 -30
- package/out/controller/control/data-view/data-view.service.d.ts +1 -1
- package/out/controller/control/data-view/data-view.service.d.ts.map +1 -1
- package/out/controller/control/data-view/data-view.service.js +2 -1
- package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.service.js +1 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +8 -4
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +1 -1
- package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.service.js +1 -0
- package/out/controller/control/index.d.ts +1 -0
- package/out/controller/control/index.d.ts.map +1 -1
- package/out/controller/control/index.js +1 -0
- package/out/controller/control/kanban/index.d.ts +3 -0
- package/out/controller/control/kanban/index.d.ts.map +1 -0
- package/out/controller/control/kanban/index.js +2 -0
- package/out/controller/control/kanban/kanban.controller.d.ts +99 -0
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -0
- package/out/controller/control/kanban/kanban.controller.js +310 -0
- package/out/controller/control/kanban/kanban.service.d.ts +24 -0
- package/out/controller/control/kanban/kanban.service.d.ts.map +1 -0
- package/out/controller/control/kanban/kanban.service.js +26 -0
- package/out/controller/control/list/list.controller.d.ts.map +1 -1
- package/out/controller/control/list/list.controller.js +3 -0
- package/out/controller/control/list/list.service.d.ts.map +1 -1
- package/out/controller/control/list/list.service.js +1 -0
- package/out/controller/control/md-ctrl/md-ctrl.service.d.ts.map +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.service.js +1 -0
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.d.ts.map +1 -1
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.js +3 -2
- package/out/controller/control/toolbar/toolbar.controllerr.js +2 -2
- package/out/controller/ctx/ctx.d.ts +8 -0
- package/out/controller/ctx/ctx.d.ts.map +1 -1
- package/out/controller/ctx/ctx.js +12 -0
- package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/de-logic/utils/handle-src-val.js +6 -4
- package/out/engine/view-base.engine.d.ts.map +1 -1
- package/out/engine/view-base.engine.js +2 -1
- package/out/interface/controller/controller/common/i-drag-change-info.d.ts +38 -0
- package/out/interface/controller/controller/common/i-drag-change-info.d.ts.map +1 -0
- package/out/interface/controller/controller/common/i-drag-change-info.js +1 -0
- package/out/interface/controller/controller/common/index.d.ts +1 -0
- package/out/interface/controller/controller/common/index.d.ts.map +1 -1
- package/out/interface/controller/controller/common/index.js +1 -0
- package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts +1 -1
- package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts +14 -0
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-kanban.controller.js +1 -0
- package/out/interface/controller/controller/control/index.d.ts +1 -0
- package/out/interface/controller/controller/control/index.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.js +1 -0
- package/out/interface/controller/event/control/i-kanban.event.d.ts +3 -3
- package/out/interface/controller/event/control/i-kanban.event.d.ts.map +1 -1
- package/out/interface/controller/event/view/i-kanban-view.event.d.ts +1 -1
- package/out/interface/controller/state/control/i-kanban.state.d.ts +33 -0
- package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-kanban.state.js +1 -0
- package/out/interface/controller/state/control/i-md-control.state.d.ts +7 -0
- package/out/interface/controller/state/control/i-md-control.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.d.ts +1 -0
- package/out/interface/controller/state/control/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.js +1 -0
- package/out/interface/controller/state/view/i-kanban-view.state.d.ts +11 -0
- package/out/interface/controller/state/view/i-kanban-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-kanban-view.state.js +1 -0
- package/out/interface/controller/state/view/index.d.ts +1 -0
- package/out/interface/controller/state/view/index.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.js +1 -0
- package/out/service/dto/method.dto.d.ts.map +1 -1
- package/out/service/dto/method.dto.js +1 -2
- package/out/service/service/entity/method/method.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +3 -1
- package/out/service/vo/control.vo.d.ts +1 -0
- package/out/service/vo/control.vo.d.ts.map +1 -1
- package/out/service/vo/control.vo.js +18 -5
- package/out/service/vo/ui-map-field.d.ts +8 -0
- package/out/service/vo/ui-map-field.d.ts.map +1 -1
- package/out/service/vo/ui-map-field.js +3 -0
- package/out/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.js +1 -1
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.js +25 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.js +23 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.js +21 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.js +37 -0
- package/out/ui-logic/ui-logic-node/index.d.ts +9 -0
- package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/index.js +9 -0
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts +56 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +122 -12
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.js +20 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.js +20 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.js +24 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.js +17 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts +16 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.js +37 -0
- package/out/ui-logic/ui-logic-param/ui-logic-param.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-param/ui-logic-param.js +2 -2
- package/out/ui-logic/ui-logic.d.ts.map +1 -1
- package/out/ui-logic/ui-logic.js +24 -6
- package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/ui-logic/utils/handle-src-val.js +7 -5
- package/out/utils/verify/de-rule-verify.js +1 -1
- package/package.json +5 -5
- package/src/constant/view-call-tag.ts +8 -0
- package/src/controller/control/data-view/data-view.controller.ts +93 -43
- package/src/controller/control/data-view/data-view.service.ts +5 -2
- package/src/controller/control/form/edit-form/edit-form.service.ts +1 -0
- package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +10 -5
- package/src/controller/control/grid/grid/grid.controller.ts +1 -1
- package/src/controller/control/grid/grid/grid.service.ts +1 -0
- package/src/controller/control/index.ts +1 -0
- package/src/controller/control/kanban/index.ts +2 -0
- package/src/controller/control/kanban/kanban.controller.ts +370 -0
- package/src/controller/control/kanban/kanban.service.ts +33 -0
- package/src/controller/control/list/list.controller.ts +3 -0
- package/src/controller/control/list/list.service.ts +1 -0
- package/src/controller/control/md-ctrl/md-ctrl.service.ts +1 -0
- package/src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts +3 -2
- package/src/controller/control/toolbar/toolbar.controllerr.ts +2 -2
- package/src/controller/ctx/ctx.ts +13 -0
- package/src/de-logic/utils/handle-src-val.ts +6 -4
- package/src/engine/view-base.engine.ts +2 -1
- package/src/interface/controller/controller/common/i-drag-change-info.ts +40 -0
- package/src/interface/controller/controller/common/index.ts +1 -0
- package/src/interface/controller/controller/control/i-data-view-control.controller.ts +5 -6
- package/src/interface/controller/controller/control/i-kanban.controller.ts +14 -0
- package/src/interface/controller/controller/control/index.ts +1 -0
- package/src/interface/controller/event/control/i-kanban.event.ts +3 -3
- package/src/interface/controller/event/view/i-kanban-view.event.ts +1 -1
- package/src/interface/controller/state/control/i-kanban.state.ts +35 -0
- package/src/interface/controller/state/control/i-md-control.state.ts +8 -0
- package/src/interface/controller/state/control/index.ts +1 -0
- package/src/interface/controller/state/view/i-kanban-view.state.ts +10 -0
- package/src/interface/controller/state/view/index.ts +1 -0
- package/src/service/dto/method.dto.ts +1 -2
- package/src/service/service/entity/method/method.ts +3 -1
- package/src/service/vo/control.vo.ts +19 -4
- package/src/service/vo/ui-map-field.ts +12 -0
- package/src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts +1 -1
- package/src/ui-logic/ui-logic-node/append-param-node/append-param-node.ts +44 -0
- package/src/ui-logic/ui-logic-node/copy-param-node/copy-param-node.ts +31 -0
- package/src/ui-logic/ui-logic-node/data-set-node/data-set-node.ts +37 -0
- package/src/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.ts +57 -0
- package/src/ui-logic/ui-logic-node/index.ts +9 -0
- package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +153 -17
- package/src/ui-logic/ui-logic-node/renew-param-node/renew-param-node.ts +25 -0
- package/src/ui-logic/ui-logic-node/reset-param-node/reset-param-node.ts +25 -0
- package/src/ui-logic/ui-logic-node/sort-param-node/sort-param-node.ts +29 -0
- package/src/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.ts +23 -0
- package/src/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.ts +47 -0
- package/src/ui-logic/ui-logic-param/ui-logic-param.ts +2 -5
- package/src/ui-logic/ui-logic.ts +32 -5
- package/src/ui-logic/utils/handle-src-val.ts +7 -5
- package/src/utils/verify/de-rule-verify.ts +1 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { RuntimeError, RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUIDELogicLogic } from '@ibiz/model-core';
|
|
3
|
+
import { execDELogicById } from '../../../de-logic';
|
|
4
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
5
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 执行实体逻辑节点
|
|
9
|
+
*
|
|
10
|
+
* @author lxm
|
|
11
|
+
* @date 2023-02-09 21:02:00
|
|
12
|
+
* @export
|
|
13
|
+
* @class ThrowExceptionNode
|
|
14
|
+
* @extends {UILogicNode}
|
|
15
|
+
*/
|
|
16
|
+
export class ExecuteDELogicNode extends UILogicNode {
|
|
17
|
+
declare model: IDEUIDELogicLogic;
|
|
18
|
+
|
|
19
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
20
|
+
const {
|
|
21
|
+
dstAppDELogicId,
|
|
22
|
+
dstAppDataEntityId,
|
|
23
|
+
dstDEUILogicParamId,
|
|
24
|
+
retDEUILogicParamId,
|
|
25
|
+
} = this.model;
|
|
26
|
+
|
|
27
|
+
// 配置报错
|
|
28
|
+
if (!dstAppDataEntityId) {
|
|
29
|
+
throw new RuntimeModelError(this.model, '没有配置实体');
|
|
30
|
+
}
|
|
31
|
+
if (!dstAppDELogicId) {
|
|
32
|
+
throw new RuntimeModelError(this.model, '没有配置实体逻辑');
|
|
33
|
+
}
|
|
34
|
+
if (!dstDEUILogicParamId) {
|
|
35
|
+
throw new RuntimeModelError(this.model, '没有配置传入逻辑参数');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const dstParam = ctx.params[dstDEUILogicParamId];
|
|
39
|
+
if (!dstParam) {
|
|
40
|
+
throw new RuntimeError(`没有找到传入参数${dstDEUILogicParamId}`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// todo 需要传入参数格式约束
|
|
44
|
+
const result = await execDELogicById(
|
|
45
|
+
dstAppDELogicId,
|
|
46
|
+
dstAppDataEntityId,
|
|
47
|
+
dstParam.context,
|
|
48
|
+
dstParam.data,
|
|
49
|
+
dstParam.params,
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
// 如果有返回值参数返回值填入。
|
|
53
|
+
if (retDEUILogicParamId) {
|
|
54
|
+
ctx.params[retDEUILogicParamId] = result;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -8,3 +8,12 @@ export { ViewCtrlInvokeNode } from './view-ctrl-invoke-node/view-ctrl-invoke-nod
|
|
|
8
8
|
export { BindParamNode } from './bind-param-node/bind-param-node';
|
|
9
9
|
export { MsgBoxNode } from './msg-box-node/msg-box-node';
|
|
10
10
|
export { DebugParamNode } from './debug-param-node/debug-param-node';
|
|
11
|
+
export { ResetParamNode } from './reset-param-node/reset-param-node';
|
|
12
|
+
export { CopyParamNode } from './copy-param-node/copy-param-node';
|
|
13
|
+
export { AppendParamNode } from './append-param-node/append-param-node';
|
|
14
|
+
export { SortParamNode } from './sort-param-node/sort-param-node';
|
|
15
|
+
export { RenewParamNode } from './renew-param-node/renew-param-node';
|
|
16
|
+
export { DataSetNode } from './data-set-node/data-set-node';
|
|
17
|
+
export { ThrowExceptionNode } from './throw-exception-node/throw-exception-node';
|
|
18
|
+
export { ViewCtrlFireEventNode } from './view-ctrl-fire-event-node/view-ctrl-fire-event-node';
|
|
19
|
+
export { ExecuteDELogicNode } from './execute-de-logic-node/execute-de-logic-node';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
/* eslint-disable no-await-in-loop */
|
|
1
2
|
import { ModelError } from '@ibiz-template/core';
|
|
2
3
|
import { IDEUILogicNodeParam } from '@ibiz/model-core';
|
|
4
|
+
import { clone } from 'ramda';
|
|
3
5
|
import { UILogicContext } from '../../ui-logic-context';
|
|
4
6
|
import { handleSrcVal } from '../../utils';
|
|
5
7
|
import { UILogicNode } from '../ui-logic-node';
|
|
@@ -16,21 +18,45 @@ import { UILogicNode } from '../ui-logic-node';
|
|
|
16
18
|
export class PrepareJSParamNode extends UILogicNode {
|
|
17
19
|
async exec(ctx: UILogicContext): Promise<void> {
|
|
18
20
|
const nodeParams = this.model.deuilogicNodeParams;
|
|
19
|
-
if (nodeParams?.length) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
21
|
+
if (!nodeParams?.length) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
for (const nodeParam of nodeParams) {
|
|
25
|
+
switch (nodeParam.paramAction) {
|
|
26
|
+
// 设置变量
|
|
27
|
+
case 'SETPARAMVALUE':
|
|
28
|
+
await this.setParamValue(nodeParam, ctx);
|
|
29
|
+
break;
|
|
30
|
+
// 重置变量
|
|
31
|
+
case 'RESETPARAM':
|
|
32
|
+
await this.resetParam(nodeParam, ctx);
|
|
33
|
+
break;
|
|
34
|
+
// 拷贝变量
|
|
35
|
+
case 'COPYPARAM':
|
|
36
|
+
await this.copyParam(nodeParam, ctx);
|
|
37
|
+
break;
|
|
38
|
+
// 绑定参数
|
|
39
|
+
case 'BINDPARAM':
|
|
40
|
+
await this.bindParam(nodeParam, ctx);
|
|
41
|
+
break;
|
|
42
|
+
// 重新建立变量
|
|
43
|
+
case 'RENEWPARAM':
|
|
44
|
+
await this.renewParam(nodeParam, ctx);
|
|
45
|
+
break;
|
|
46
|
+
// 附加到数组变量
|
|
47
|
+
case 'APPENDPARAM':
|
|
48
|
+
await this.appendParam(nodeParam, ctx);
|
|
49
|
+
break;
|
|
50
|
+
// 排序数组变量
|
|
51
|
+
case 'SORTPARAM':
|
|
52
|
+
await this.sortParam(nodeParam, ctx);
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
throw new ModelError(
|
|
56
|
+
nodeParam,
|
|
57
|
+
`暂未支持逻辑处理参数操作${nodeParam.paramAction}`,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
34
60
|
}
|
|
35
61
|
}
|
|
36
62
|
|
|
@@ -40,7 +66,7 @@ export class PrepareJSParamNode extends UILogicNode {
|
|
|
40
66
|
* @date 2023-03-17 03:34:02
|
|
41
67
|
* @protected
|
|
42
68
|
* @param {IPSDELogicNodeParam} nodeParam
|
|
43
|
-
* @param {
|
|
69
|
+
* @param {UILogicContext} ctx
|
|
44
70
|
*/
|
|
45
71
|
protected setParamValue(
|
|
46
72
|
nodeParam: IDEUILogicNodeParam,
|
|
@@ -48,7 +74,7 @@ export class PrepareJSParamNode extends UILogicNode {
|
|
|
48
74
|
): void {
|
|
49
75
|
const { dstFieldName, dstDEUILogicParamId } = nodeParam;
|
|
50
76
|
// 目标参数
|
|
51
|
-
const dstField = dstFieldName
|
|
77
|
+
const dstField = dstFieldName;
|
|
52
78
|
// 源参数
|
|
53
79
|
const srcVal = handleSrcVal(ctx, nodeParam);
|
|
54
80
|
if (dstField) {
|
|
@@ -57,4 +83,114 @@ export class PrepareJSParamNode extends UILogicNode {
|
|
|
57
83
|
ctx.params[dstDEUILogicParamId!] = srcVal;
|
|
58
84
|
}
|
|
59
85
|
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* 拷贝变量
|
|
89
|
+
* @author lxm
|
|
90
|
+
* @date 2023-03-24 09:50:02
|
|
91
|
+
* @protected
|
|
92
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
93
|
+
* @param {UILogicContext} ctx
|
|
94
|
+
* @return {*} {*}
|
|
95
|
+
*/
|
|
96
|
+
protected copyParam(
|
|
97
|
+
nodeParam: IDEUILogicNodeParam,
|
|
98
|
+
ctx: UILogicContext,
|
|
99
|
+
): void {
|
|
100
|
+
const { dstDEUILogicParamId } = nodeParam;
|
|
101
|
+
const srcVal = handleSrcVal(ctx, nodeParam);
|
|
102
|
+
ctx.params[dstDEUILogicParamId!] = clone(srcVal);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 绑定参数
|
|
107
|
+
* @author lxm
|
|
108
|
+
* @date 2023-06-13 05:43:43
|
|
109
|
+
* @protected
|
|
110
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
111
|
+
* @param {UILogicContext} ctx
|
|
112
|
+
*/
|
|
113
|
+
protected bindParam(
|
|
114
|
+
nodeParam: IDEUILogicNodeParam,
|
|
115
|
+
ctx: UILogicContext,
|
|
116
|
+
): void {
|
|
117
|
+
const srcVal = handleSrcVal(ctx, nodeParam);
|
|
118
|
+
ctx.params[nodeParam.dstDEUILogicParamId!] = srcVal;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 重置变量
|
|
123
|
+
* @author lxm
|
|
124
|
+
* @date 2023-03-24 09:46:57
|
|
125
|
+
* @protected
|
|
126
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
127
|
+
* @param {UILogicContext} ctx
|
|
128
|
+
*/
|
|
129
|
+
protected resetParam(
|
|
130
|
+
nodeParam: IDEUILogicNodeParam,
|
|
131
|
+
ctx: UILogicContext,
|
|
132
|
+
): void {
|
|
133
|
+
const { dstDEUILogicParamId } = nodeParam;
|
|
134
|
+
ctx.resetParam(dstDEUILogicParamId!);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 重新建立变量
|
|
139
|
+
* @author lxm
|
|
140
|
+
* @date 2023-03-24 09:46:47
|
|
141
|
+
* @protected
|
|
142
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
143
|
+
* @param {UILogicContext} ctx
|
|
144
|
+
*/
|
|
145
|
+
protected renewParam(
|
|
146
|
+
nodeParam: IDEUILogicNodeParam,
|
|
147
|
+
ctx: UILogicContext,
|
|
148
|
+
): void {
|
|
149
|
+
const { dstDEUILogicParamId } = nodeParam;
|
|
150
|
+
ctx.renewParam(dstDEUILogicParamId!);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* 附加到数组变量
|
|
155
|
+
* @author lxm
|
|
156
|
+
* @date 2023-03-24 09:46:47
|
|
157
|
+
* @protected
|
|
158
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
159
|
+
* @param {UILogicContext} ctx
|
|
160
|
+
*/
|
|
161
|
+
protected appendParam(
|
|
162
|
+
nodeParam: IDEUILogicNodeParam,
|
|
163
|
+
ctx: UILogicContext,
|
|
164
|
+
): void {
|
|
165
|
+
const { dstDEUILogicParamId, dstIndex, srcIndex, srcSize } = nodeParam;
|
|
166
|
+
const srcVal = handleSrcVal(ctx, nodeParam) as IData[];
|
|
167
|
+
const insertIndex = dstIndex || 0;
|
|
168
|
+
const _srcIndex = srcIndex || 0;
|
|
169
|
+
const _srcSize = srcSize || srcVal.length;
|
|
170
|
+
ctx.params[dstDEUILogicParamId!].splice(
|
|
171
|
+
insertIndex,
|
|
172
|
+
0,
|
|
173
|
+
...srcVal.slice(_srcIndex, _srcSize),
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* 排序数组变量
|
|
179
|
+
* @author lxm
|
|
180
|
+
* @date 2023-03-24 10:23:01
|
|
181
|
+
* @protected
|
|
182
|
+
* @param {IDEUILogicNodeParam} nodeParam
|
|
183
|
+
* @param {UILogicContext} ctx
|
|
184
|
+
*/
|
|
185
|
+
protected sortParam(
|
|
186
|
+
nodeParam: IDEUILogicNodeParam,
|
|
187
|
+
ctx: UILogicContext,
|
|
188
|
+
): void {
|
|
189
|
+
const { dstDEUILogicParamId, dstFieldName, dstSortDir } = nodeParam;
|
|
190
|
+
const key = dstFieldName!;
|
|
191
|
+
const arr = ctx.params[dstDEUILogicParamId!] as IData[];
|
|
192
|
+
arr.sort((a, b) => {
|
|
193
|
+
return dstSortDir === 'ASC' ? a[key] - b[key] : b[key] - a[key];
|
|
194
|
+
});
|
|
195
|
+
}
|
|
60
196
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUIRenewParamLogic } from '@ibiz/model-core';
|
|
3
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
4
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 重新建立参数
|
|
8
|
+
*
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-02-09 21:02:20
|
|
11
|
+
* @export
|
|
12
|
+
* @class RenewParamNode
|
|
13
|
+
* @extends {UILogicNode}
|
|
14
|
+
*/
|
|
15
|
+
export class RenewParamNode extends UILogicNode {
|
|
16
|
+
declare model: IDEUIRenewParamLogic;
|
|
17
|
+
|
|
18
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
19
|
+
const { dstDEUILogicParamId } = this.model;
|
|
20
|
+
if (!dstDEUILogicParamId) {
|
|
21
|
+
throw new RuntimeModelError(this.model, '缺少目标参数对象配置');
|
|
22
|
+
}
|
|
23
|
+
ctx.renewParam(dstDEUILogicParamId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUIResetParamLogic } from '@ibiz/model-core';
|
|
3
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
4
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 重置参数
|
|
8
|
+
*
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-02-09 21:02:20
|
|
11
|
+
* @export
|
|
12
|
+
* @class ResetParamNode
|
|
13
|
+
* @extends {UILogicNode}
|
|
14
|
+
*/
|
|
15
|
+
export class ResetParamNode extends UILogicNode {
|
|
16
|
+
declare model: IDEUIResetParamLogic;
|
|
17
|
+
|
|
18
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
19
|
+
const { dstDEUILogicParamId } = this.model;
|
|
20
|
+
if (!dstDEUILogicParamId) {
|
|
21
|
+
throw new RuntimeModelError(this.model, '缺少目标参数对象配置');
|
|
22
|
+
}
|
|
23
|
+
ctx.resetParam(dstDEUILogicParamId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUISortParamLogic } from '@ibiz/model-core';
|
|
3
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
4
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 排序数组参数
|
|
8
|
+
*
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-02-09 21:02:20
|
|
11
|
+
* @export
|
|
12
|
+
* @class SortParamNode
|
|
13
|
+
* @extends {UILogicNode}
|
|
14
|
+
*/
|
|
15
|
+
export class SortParamNode extends UILogicNode {
|
|
16
|
+
declare model: IDEUISortParamLogic;
|
|
17
|
+
|
|
18
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
19
|
+
const { dstDEUILogicParamId, dstSortDir, dstFieldName } = this.model;
|
|
20
|
+
if (!dstDEUILogicParamId || !dstFieldName) {
|
|
21
|
+
throw new RuntimeModelError(this.model, '缺少目标参数对象或目标属性配置');
|
|
22
|
+
}
|
|
23
|
+
const key = dstFieldName;
|
|
24
|
+
const arr = ctx.params[dstDEUILogicParamId!] as IData[];
|
|
25
|
+
arr.sort((a, b) => {
|
|
26
|
+
return dstSortDir === 'ASC' ? a[key] - b[key] : b[key] - a[key];
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RuntimeError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUIThrowExceptionLogic } from '@ibiz/model-core';
|
|
3
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
4
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 抛出异常节点
|
|
8
|
+
*
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-02-09 21:02:00
|
|
11
|
+
* @export
|
|
12
|
+
* @class ThrowExceptionNode
|
|
13
|
+
* @extends {UILogicNode}
|
|
14
|
+
*/
|
|
15
|
+
export class ThrowExceptionNode extends UILogicNode {
|
|
16
|
+
declare model: IDEUIThrowExceptionLogic;
|
|
17
|
+
|
|
18
|
+
async exec(_ctx: UILogicContext): Promise<void> {
|
|
19
|
+
const { errorInfo } = this.model;
|
|
20
|
+
|
|
21
|
+
throw new RuntimeError(errorInfo!);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { RuntimeError, RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUICtrlFireEventLogic } from '@ibiz/model-core';
|
|
3
|
+
import { IControlController } from '../../../interface';
|
|
4
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
5
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 视图部件事件触发逻辑节点
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-03-28 01:45:08
|
|
11
|
+
* @export
|
|
12
|
+
* @class ViewCtrlInvokeNode
|
|
13
|
+
* @extends {UILogicNode}
|
|
14
|
+
*/
|
|
15
|
+
export class ViewCtrlFireEventNode extends UILogicNode {
|
|
16
|
+
declare model: IDEUICtrlFireEventLogic;
|
|
17
|
+
|
|
18
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
19
|
+
ctx.isEndNode = true;
|
|
20
|
+
const { eventName, eventParamId, fireCtrlId } = this.model;
|
|
21
|
+
|
|
22
|
+
// 配置报错
|
|
23
|
+
if (!fireCtrlId) {
|
|
24
|
+
throw new RuntimeModelError(this.model, '没有配置触发对象');
|
|
25
|
+
}
|
|
26
|
+
if (!eventName) {
|
|
27
|
+
throw new RuntimeModelError(this.model, '没有配置事件名称参数');
|
|
28
|
+
}
|
|
29
|
+
if (!eventParamId) {
|
|
30
|
+
throw new RuntimeModelError(this.model, '没有配置事件参数');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const invokeCtrl = ctx.params[fireCtrlId] as IControlController;
|
|
34
|
+
if (!invokeCtrl) {
|
|
35
|
+
throw new RuntimeError(`没有找到触发对象${fireCtrlId}`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const eventParam = ctx.params[eventParamId];
|
|
39
|
+
if (!eventParam) {
|
|
40
|
+
throw new RuntimeError(`没有找到事件参数对象${eventParamId}`);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// 触发部件事件
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
await invokeCtrl.evt.emit(eventName as any, eventParam);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ModelError
|
|
1
|
+
import { ModelError } from '@ibiz-template/core';
|
|
2
2
|
import { IDEUILogicParam } from '@ibiz/model-core';
|
|
3
3
|
import { UILogicContext } from '../ui-logic-context';
|
|
4
4
|
|
|
@@ -46,10 +46,7 @@ export class UILogicParam {
|
|
|
46
46
|
if (control) {
|
|
47
47
|
ctx.params[tag] = control;
|
|
48
48
|
} else {
|
|
49
|
-
|
|
50
|
-
this.model,
|
|
51
|
-
`视图逻辑初始化参数,未找到${m.codeName!}指定部件对象`,
|
|
52
|
-
);
|
|
49
|
+
ibiz.log.error(`视图逻辑初始化参数,未找到${m.codeName!}指定部件对象`);
|
|
53
50
|
}
|
|
54
51
|
} else if (m.activeViewParam) {
|
|
55
52
|
// 当前视图
|
package/src/ui-logic/ui-logic.ts
CHANGED
|
@@ -4,15 +4,24 @@ import { IDEUILogic } from '@ibiz/model-core';
|
|
|
4
4
|
import { IUILogicParams } from '../interface';
|
|
5
5
|
import { UILogicContext } from './ui-logic-context';
|
|
6
6
|
import {
|
|
7
|
+
AppendParamNode,
|
|
7
8
|
BindParamNode,
|
|
9
|
+
CopyParamNode,
|
|
10
|
+
DataSetNode,
|
|
8
11
|
DEActionNode,
|
|
9
12
|
DebugParamNode,
|
|
10
13
|
DEUIActionNode,
|
|
11
14
|
EndNode,
|
|
15
|
+
ExecuteDELogicNode,
|
|
12
16
|
MsgBoxNode,
|
|
13
17
|
PrepareJSParamNode,
|
|
18
|
+
RenewParamNode,
|
|
19
|
+
ResetParamNode,
|
|
20
|
+
SortParamNode,
|
|
14
21
|
StartNode,
|
|
22
|
+
ThrowExceptionNode,
|
|
15
23
|
UILogicNode,
|
|
24
|
+
ViewCtrlFireEventNode,
|
|
16
25
|
ViewCtrlInvokeNode,
|
|
17
26
|
} from './ui-logic-node';
|
|
18
27
|
import { UILogicParam } from './ui-logic-param/ui-logic-param';
|
|
@@ -75,6 +84,12 @@ export class UILogic {
|
|
|
75
84
|
case 'PREPAREJSPARAM': // 准备参数
|
|
76
85
|
logicNode = new PrepareJSParamNode(node);
|
|
77
86
|
break;
|
|
87
|
+
case 'RESETPARAM': // 重置参数
|
|
88
|
+
logicNode = new ResetParamNode(node);
|
|
89
|
+
break;
|
|
90
|
+
case 'COPYPARAM': // 拷贝参数
|
|
91
|
+
logicNode = new CopyParamNode(node);
|
|
92
|
+
break;
|
|
78
93
|
case 'BINDPARAM': // 绑定参数
|
|
79
94
|
logicNode = new BindParamNode(node);
|
|
80
95
|
break;
|
|
@@ -87,16 +102,28 @@ export class UILogic {
|
|
|
87
102
|
case 'DEBUGPARAM': // 调试逻辑参数
|
|
88
103
|
logicNode = new DebugParamNode(node);
|
|
89
104
|
break;
|
|
90
|
-
case 'RESETPARAM': // 重置参数
|
|
91
|
-
case 'COPYPARAM': // 拷贝参数
|
|
92
|
-
case 'VIEWCTRLFIREEVENT': // 视图部件事件触发
|
|
93
105
|
case 'APPENDPARAM': // 附加到数组参数
|
|
106
|
+
logicNode = new AppendParamNode(node);
|
|
107
|
+
break;
|
|
94
108
|
case 'SORTPARAM': // 排序数组参数
|
|
109
|
+
logicNode = new SortParamNode(node);
|
|
110
|
+
break;
|
|
95
111
|
case 'RENEWPARAM': // 重新建立参数
|
|
96
|
-
|
|
112
|
+
logicNode = new RenewParamNode(node);
|
|
113
|
+
break;
|
|
97
114
|
case 'DEDATASET': // 实体数据集
|
|
98
|
-
|
|
115
|
+
logicNode = new DataSetNode(node);
|
|
116
|
+
break;
|
|
99
117
|
case 'THROWEXCEPTION': // 抛出异常
|
|
118
|
+
logicNode = new ThrowExceptionNode(node);
|
|
119
|
+
break;
|
|
120
|
+
case 'VIEWCTRLFIREEVENT': // 视图部件事件触发
|
|
121
|
+
logicNode = new ViewCtrlFireEventNode(node);
|
|
122
|
+
break;
|
|
123
|
+
case 'DELOGIC': // 实体逻辑
|
|
124
|
+
logicNode = new ExecuteDELogicNode(node);
|
|
125
|
+
break;
|
|
126
|
+
case 'PFPLUGIN': // 前端插件调用
|
|
100
127
|
default:
|
|
101
128
|
throw new ModelError(node, `未支持的逻辑节点类型: ${logicNodeType}`);
|
|
102
129
|
}
|
|
@@ -53,12 +53,14 @@ export function handleSrcVal(
|
|
|
53
53
|
// 直接值
|
|
54
54
|
case 'SRCVALUE':
|
|
55
55
|
return srcValue;
|
|
56
|
-
//
|
|
57
|
-
case 'VIEWPARAM':
|
|
56
|
+
case 'WEBCONTEXT': // 网页请求上下文
|
|
57
|
+
case 'VIEWPARAM': // 视图参数
|
|
58
58
|
value = ctx.viewParams;
|
|
59
59
|
break;
|
|
60
|
-
//
|
|
61
|
-
case '
|
|
60
|
+
case 'APPLICATION': // 系统全局对象
|
|
61
|
+
case 'SESSION': // 用户全局对象
|
|
62
|
+
case 'APPDATA': // 应用上下文
|
|
63
|
+
case 'DATACONTEXT': // 数据上下文
|
|
62
64
|
value = ctx.context;
|
|
63
65
|
break;
|
|
64
66
|
// 当前环境参数
|
|
@@ -70,7 +72,7 @@ export function handleSrcVal(
|
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
// 取属性值
|
|
73
|
-
const srcField = srcFieldName
|
|
75
|
+
const srcField = srcFieldName;
|
|
74
76
|
if (value && srcField) {
|
|
75
77
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
78
|
value = (value as any)[srcField];
|
|
@@ -90,7 +90,7 @@ export function verifyDeRules(
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
} else {
|
|
93
|
-
name = (condition as IDEFVRSingleCondition)?.defname!.toLowerCase();
|
|
93
|
+
name = (condition as IDEFVRSingleCondition)?.defname!.toLowerCase() || name;
|
|
94
94
|
try {
|
|
95
95
|
// 常规规则
|
|
96
96
|
if (isSimpleCondition(condition)) {
|