@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.
Files changed (182) hide show
  1. package/dist/index.esm.js +902 -204
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/constant/view-call-tag.d.ts +9 -1
  5. package/out/constant/view-call-tag.d.ts.map +1 -1
  6. package/out/constant/view-call-tag.js +8 -0
  7. package/out/controller/control/data-view/data-view.controller.d.ts +25 -2
  8. package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
  9. package/out/controller/control/data-view/data-view.controller.js +70 -30
  10. package/out/controller/control/data-view/data-view.service.d.ts +1 -1
  11. package/out/controller/control/data-view/data-view.service.d.ts.map +1 -1
  12. package/out/controller/control/data-view/data-view.service.js +2 -1
  13. package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -1
  14. package/out/controller/control/form/edit-form/edit-form.service.js +1 -0
  15. package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +8 -4
  17. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  18. package/out/controller/control/grid/grid/grid.controller.js +1 -1
  19. package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
  20. package/out/controller/control/grid/grid/grid.service.js +1 -0
  21. package/out/controller/control/index.d.ts +1 -0
  22. package/out/controller/control/index.d.ts.map +1 -1
  23. package/out/controller/control/index.js +1 -0
  24. package/out/controller/control/kanban/index.d.ts +3 -0
  25. package/out/controller/control/kanban/index.d.ts.map +1 -0
  26. package/out/controller/control/kanban/index.js +2 -0
  27. package/out/controller/control/kanban/kanban.controller.d.ts +99 -0
  28. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -0
  29. package/out/controller/control/kanban/kanban.controller.js +310 -0
  30. package/out/controller/control/kanban/kanban.service.d.ts +24 -0
  31. package/out/controller/control/kanban/kanban.service.d.ts.map +1 -0
  32. package/out/controller/control/kanban/kanban.service.js +26 -0
  33. package/out/controller/control/list/list.controller.d.ts.map +1 -1
  34. package/out/controller/control/list/list.controller.js +3 -0
  35. package/out/controller/control/list/list.service.d.ts.map +1 -1
  36. package/out/controller/control/list/list.service.js +1 -0
  37. package/out/controller/control/md-ctrl/md-ctrl.service.d.ts.map +1 -1
  38. package/out/controller/control/md-ctrl/md-ctrl.service.js +1 -0
  39. package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.d.ts.map +1 -1
  40. package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.js +3 -2
  41. package/out/controller/control/toolbar/toolbar.controllerr.js +2 -2
  42. package/out/controller/ctx/ctx.d.ts +8 -0
  43. package/out/controller/ctx/ctx.d.ts.map +1 -1
  44. package/out/controller/ctx/ctx.js +12 -0
  45. package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
  46. package/out/de-logic/utils/handle-src-val.js +6 -4
  47. package/out/engine/view-base.engine.d.ts.map +1 -1
  48. package/out/engine/view-base.engine.js +2 -1
  49. package/out/interface/controller/controller/common/i-drag-change-info.d.ts +38 -0
  50. package/out/interface/controller/controller/common/i-drag-change-info.d.ts.map +1 -0
  51. package/out/interface/controller/controller/common/i-drag-change-info.js +1 -0
  52. package/out/interface/controller/controller/common/index.d.ts +1 -0
  53. package/out/interface/controller/controller/common/index.d.ts.map +1 -1
  54. package/out/interface/controller/controller/common/index.js +1 -0
  55. package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts +1 -1
  56. package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts.map +1 -1
  57. package/out/interface/controller/controller/control/i-kanban.controller.d.ts +14 -0
  58. package/out/interface/controller/controller/control/i-kanban.controller.d.ts.map +1 -0
  59. package/out/interface/controller/controller/control/i-kanban.controller.js +1 -0
  60. package/out/interface/controller/controller/control/index.d.ts +1 -0
  61. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  62. package/out/interface/controller/controller/control/index.js +1 -0
  63. package/out/interface/controller/event/control/i-kanban.event.d.ts +3 -3
  64. package/out/interface/controller/event/control/i-kanban.event.d.ts.map +1 -1
  65. package/out/interface/controller/event/view/i-kanban-view.event.d.ts +1 -1
  66. package/out/interface/controller/state/control/i-kanban.state.d.ts +33 -0
  67. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -0
  68. package/out/interface/controller/state/control/i-kanban.state.js +1 -0
  69. package/out/interface/controller/state/control/i-md-control.state.d.ts +7 -0
  70. package/out/interface/controller/state/control/i-md-control.state.d.ts.map +1 -1
  71. package/out/interface/controller/state/control/index.d.ts +1 -0
  72. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  73. package/out/interface/controller/state/control/index.js +1 -0
  74. package/out/interface/controller/state/view/i-kanban-view.state.d.ts +11 -0
  75. package/out/interface/controller/state/view/i-kanban-view.state.d.ts.map +1 -0
  76. package/out/interface/controller/state/view/i-kanban-view.state.js +1 -0
  77. package/out/interface/controller/state/view/index.d.ts +1 -0
  78. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  79. package/out/interface/controller/state/view/index.js +1 -0
  80. package/out/service/dto/method.dto.d.ts.map +1 -1
  81. package/out/service/dto/method.dto.js +1 -2
  82. package/out/service/service/entity/method/method.d.ts.map +1 -1
  83. package/out/service/service/entity/method/method.js +3 -1
  84. package/out/service/vo/control.vo.d.ts +1 -0
  85. package/out/service/vo/control.vo.d.ts.map +1 -1
  86. package/out/service/vo/control.vo.js +18 -5
  87. package/out/service/vo/ui-map-field.d.ts +8 -0
  88. package/out/service/vo/ui-map-field.d.ts.map +1 -1
  89. package/out/service/vo/ui-map-field.js +3 -0
  90. package/out/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.js +1 -1
  91. package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts +17 -0
  92. package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts.map +1 -0
  93. package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.js +25 -0
  94. package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts +17 -0
  95. package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts.map +1 -0
  96. package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.js +23 -0
  97. package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts +17 -0
  98. package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts.map +1 -0
  99. package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.js +21 -0
  100. package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts +17 -0
  101. package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts.map +1 -0
  102. package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.js +37 -0
  103. package/out/ui-logic/ui-logic-node/index.d.ts +9 -0
  104. package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
  105. package/out/ui-logic/ui-logic-node/index.js +9 -0
  106. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts +56 -1
  107. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
  108. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +122 -12
  109. package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts +17 -0
  110. package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts.map +1 -0
  111. package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.js +20 -0
  112. package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts +17 -0
  113. package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts.map +1 -0
  114. package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.js +20 -0
  115. package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts +17 -0
  116. package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts.map +1 -0
  117. package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.js +24 -0
  118. package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts +17 -0
  119. package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts.map +1 -0
  120. package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.js +17 -0
  121. package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts +16 -0
  122. package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts.map +1 -0
  123. package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.js +37 -0
  124. package/out/ui-logic/ui-logic-param/ui-logic-param.d.ts.map +1 -1
  125. package/out/ui-logic/ui-logic-param/ui-logic-param.js +2 -2
  126. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  127. package/out/ui-logic/ui-logic.js +24 -6
  128. package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
  129. package/out/ui-logic/utils/handle-src-val.js +7 -5
  130. package/out/utils/verify/de-rule-verify.js +1 -1
  131. package/package.json +5 -5
  132. package/src/constant/view-call-tag.ts +8 -0
  133. package/src/controller/control/data-view/data-view.controller.ts +93 -43
  134. package/src/controller/control/data-view/data-view.service.ts +5 -2
  135. package/src/controller/control/form/edit-form/edit-form.service.ts +1 -0
  136. package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +10 -5
  137. package/src/controller/control/grid/grid/grid.controller.ts +1 -1
  138. package/src/controller/control/grid/grid/grid.service.ts +1 -0
  139. package/src/controller/control/index.ts +1 -0
  140. package/src/controller/control/kanban/index.ts +2 -0
  141. package/src/controller/control/kanban/kanban.controller.ts +370 -0
  142. package/src/controller/control/kanban/kanban.service.ts +33 -0
  143. package/src/controller/control/list/list.controller.ts +3 -0
  144. package/src/controller/control/list/list.service.ts +1 -0
  145. package/src/controller/control/md-ctrl/md-ctrl.service.ts +1 -0
  146. package/src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts +3 -2
  147. package/src/controller/control/toolbar/toolbar.controllerr.ts +2 -2
  148. package/src/controller/ctx/ctx.ts +13 -0
  149. package/src/de-logic/utils/handle-src-val.ts +6 -4
  150. package/src/engine/view-base.engine.ts +2 -1
  151. package/src/interface/controller/controller/common/i-drag-change-info.ts +40 -0
  152. package/src/interface/controller/controller/common/index.ts +1 -0
  153. package/src/interface/controller/controller/control/i-data-view-control.controller.ts +5 -6
  154. package/src/interface/controller/controller/control/i-kanban.controller.ts +14 -0
  155. package/src/interface/controller/controller/control/index.ts +1 -0
  156. package/src/interface/controller/event/control/i-kanban.event.ts +3 -3
  157. package/src/interface/controller/event/view/i-kanban-view.event.ts +1 -1
  158. package/src/interface/controller/state/control/i-kanban.state.ts +35 -0
  159. package/src/interface/controller/state/control/i-md-control.state.ts +8 -0
  160. package/src/interface/controller/state/control/index.ts +1 -0
  161. package/src/interface/controller/state/view/i-kanban-view.state.ts +10 -0
  162. package/src/interface/controller/state/view/index.ts +1 -0
  163. package/src/service/dto/method.dto.ts +1 -2
  164. package/src/service/service/entity/method/method.ts +3 -1
  165. package/src/service/vo/control.vo.ts +19 -4
  166. package/src/service/vo/ui-map-field.ts +12 -0
  167. package/src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts +1 -1
  168. package/src/ui-logic/ui-logic-node/append-param-node/append-param-node.ts +44 -0
  169. package/src/ui-logic/ui-logic-node/copy-param-node/copy-param-node.ts +31 -0
  170. package/src/ui-logic/ui-logic-node/data-set-node/data-set-node.ts +37 -0
  171. package/src/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.ts +57 -0
  172. package/src/ui-logic/ui-logic-node/index.ts +9 -0
  173. package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +153 -17
  174. package/src/ui-logic/ui-logic-node/renew-param-node/renew-param-node.ts +25 -0
  175. package/src/ui-logic/ui-logic-node/reset-param-node/reset-param-node.ts +25 -0
  176. package/src/ui-logic/ui-logic-node/sort-param-node/sort-param-node.ts +29 -0
  177. package/src/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.ts +23 -0
  178. package/src/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.ts +47 -0
  179. package/src/ui-logic/ui-logic-param/ui-logic-param.ts +2 -5
  180. package/src/ui-logic/ui-logic.ts +32 -5
  181. package/src/ui-logic/utils/handle-src-val.ts +7 -5
  182. 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
- await Promise.all(
21
- nodeParams.map(nodeParam => {
22
- switch (nodeParam.paramAction) {
23
- // 设置变量
24
- case 'SETPARAMVALUE':
25
- return this.setParamValue(nodeParam, ctx);
26
- default:
27
- throw new ModelError(
28
- nodeParam,
29
- `暂未支持逻辑处理参数操作${nodeParam.paramAction}`,
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 {DELogicContext} ctx
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?.toLowerCase();
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, RuntimeModelError } from '@ibiz-template/core';
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
- throw new RuntimeModelError(
50
- this.model,
51
- `视图逻辑初始化参数,未找到${m.codeName!}指定部件对象`,
52
- );
49
+ ibiz.log.error(`视图逻辑初始化参数,未找到${m.codeName!}指定部件对象`);
53
50
  }
54
51
  } else if (m.activeViewParam) {
55
52
  // 当前视图
@@ -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
- case 'PFPLUGIN': // 前端插件调用
112
+ logicNode = new RenewParamNode(node);
113
+ break;
97
114
  case 'DEDATASET': // 实体数据集
98
- case 'DELOGIC': // 实体逻辑
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 'APPDATA':
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?.toLowerCase();
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)) {