@ibiz-template/runtime 0.1.36 → 0.1.38

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 (187) hide show
  1. package/dist/index.esm.js +13465 -1025
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/application.d.ts +9 -1
  5. package/out/application.d.ts.map +1 -1
  6. package/out/application.js +9 -2
  7. package/out/constant/view-call-tag.d.ts +5 -1
  8. package/out/constant/view-call-tag.d.ts.map +1 -1
  9. package/out/constant/view-call-tag.js +4 -0
  10. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
  11. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +1 -0
  12. package/out/controller/control/exp-bar/chart-exp-bar.controller.d.ts +24 -0
  13. package/out/controller/control/exp-bar/chart-exp-bar.controller.d.ts.map +1 -0
  14. package/out/controller/control/exp-bar/chart-exp-bar.controller.js +32 -0
  15. package/out/controller/control/exp-bar/index.d.ts +1 -0
  16. package/out/controller/control/exp-bar/index.d.ts.map +1 -1
  17. package/out/controller/control/exp-bar/index.js +1 -0
  18. package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts +3 -3
  19. package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts.map +1 -1
  20. package/out/controller/control/form/form-detail/form-item/form-item.controller.js +13 -8
  21. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +1 -0
  22. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
  23. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +8 -0
  24. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts +3 -3
  25. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
  26. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +13 -8
  27. package/out/controller/control/index.d.ts +1 -0
  28. package/out/controller/control/index.d.ts.map +1 -1
  29. package/out/controller/control/index.js +1 -0
  30. package/out/controller/control/medit-view-panel/index.d.ts +3 -0
  31. package/out/controller/control/medit-view-panel/index.d.ts.map +1 -0
  32. package/out/controller/control/medit-view-panel/index.js +2 -0
  33. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts +107 -0
  34. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts.map +1 -0
  35. package/out/controller/control/medit-view-panel/medit-view-panel.controller.js +260 -0
  36. package/out/controller/control/medit-view-panel/medit-view-panel.service.d.ts +11 -0
  37. package/out/controller/control/medit-view-panel/medit-view-panel.service.d.ts.map +1 -0
  38. package/out/controller/control/medit-view-panel/medit-view-panel.service.js +9 -0
  39. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  40. package/out/controller/control/search-bar/search-bar.controller.js +3 -3
  41. package/out/controller/utils/value-rule/value-rule.d.ts +10 -1
  42. package/out/controller/utils/value-rule/value-rule.d.ts.map +1 -1
  43. package/out/controller/utils/value-rule/value-rule.js +64 -1
  44. package/out/de-logic/de-logic-context.d.ts +4 -4
  45. package/out/de-logic/de-logic-context.d.ts.map +1 -1
  46. package/out/de-logic/de-logic-context.js +2 -1
  47. package/out/de-logic/de-logic-link/de-logic-link.js +1 -1
  48. package/out/de-logic/de-logic-param/de-logic-param.d.ts.map +1 -1
  49. package/out/de-logic/de-logic-param/de-logic-param.js +7 -1
  50. package/out/de-logic/de-logic.d.ts +1 -1
  51. package/out/de-logic/de-logic.d.ts.map +1 -1
  52. package/out/de-logic/index.d.ts +5 -5
  53. package/out/de-logic/index.d.ts.map +1 -1
  54. package/out/de-logic/index.js +32 -5
  55. package/out/engine/md-view.engine.d.ts +3 -3
  56. package/out/engine/md-view.engine.d.ts.map +1 -1
  57. package/out/engine/md-view.engine.js +14 -12
  58. package/out/hub/config/app-view-config-service.d.ts +3 -1
  59. package/out/hub/config/app-view-config-service.d.ts.map +1 -1
  60. package/out/hub/config/app-view-config-service.js +9 -0
  61. package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts +20 -2
  62. package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts.map +1 -1
  63. package/out/interface/controller/controller/control/i-chart-exp-bar.controller.d.ts +15 -0
  64. package/out/interface/controller/controller/control/i-chart-exp-bar.controller.d.ts.map +1 -0
  65. package/out/interface/controller/controller/control/i-chart-exp-bar.controller.js +1 -0
  66. package/out/interface/controller/controller/control/i-medit-view-panel.controller.d.ts +14 -0
  67. package/out/interface/controller/controller/control/i-medit-view-panel.controller.d.ts.map +1 -0
  68. package/out/interface/controller/controller/control/i-medit-view-panel.controller.js +1 -0
  69. package/out/interface/controller/controller/control/index.d.ts +2 -0
  70. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  71. package/out/interface/controller/controller/control/index.js +2 -0
  72. package/out/interface/controller/event/control/i-chart-exp-bar.event.d.ts +11 -0
  73. package/out/interface/controller/event/control/i-chart-exp-bar.event.d.ts.map +1 -0
  74. package/out/interface/controller/event/control/i-chart-exp-bar.event.js +1 -0
  75. package/out/interface/controller/event/control/i-medit-view-panel.event.d.ts +9 -0
  76. package/out/interface/controller/event/control/i-medit-view-panel.event.d.ts.map +1 -0
  77. package/out/interface/controller/event/control/i-medit-view-panel.event.js +1 -0
  78. package/out/interface/controller/event/control/index.d.ts +2 -0
  79. package/out/interface/controller/event/control/index.d.ts.map +1 -1
  80. package/out/interface/controller/event/control/index.js +2 -0
  81. package/out/interface/controller/event/view/i-chart-exp-view.event.d.ts +11 -0
  82. package/out/interface/controller/event/view/i-chart-exp-view.event.d.ts.map +1 -0
  83. package/out/interface/controller/event/view/i-chart-exp-view.event.js +1 -0
  84. package/out/interface/controller/event/view/i-medit-view9.event.d.ts +10 -0
  85. package/out/interface/controller/event/view/i-medit-view9.event.d.ts.map +1 -0
  86. package/out/interface/controller/event/view/i-medit-view9.event.js +1 -0
  87. package/out/interface/controller/event/view/index.d.ts +2 -0
  88. package/out/interface/controller/event/view/index.d.ts.map +1 -1
  89. package/out/interface/controller/event/view/index.js +2 -0
  90. package/out/interface/controller/state/control/i-chart-exp-bar.state.d.ts +11 -0
  91. package/out/interface/controller/state/control/i-chart-exp-bar.state.d.ts.map +1 -0
  92. package/out/interface/controller/state/control/i-chart-exp-bar.state.js +1 -0
  93. package/out/interface/controller/state/control/i-medit-view-panel.state.d.ts +29 -0
  94. package/out/interface/controller/state/control/i-medit-view-panel.state.d.ts.map +1 -0
  95. package/out/interface/controller/state/control/i-medit-view-panel.state.js +1 -0
  96. package/out/interface/controller/state/control/index.d.ts +2 -0
  97. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  98. package/out/interface/controller/state/control/index.js +2 -0
  99. package/out/interface/controller/state/view/i-chart-exp-view.state.d.ts +11 -0
  100. package/out/interface/controller/state/view/i-chart-exp-view.state.d.ts.map +1 -0
  101. package/out/interface/controller/state/view/i-chart-exp-view.state.js +1 -0
  102. package/out/interface/controller/state/view/i-medit-view9.state.d.ts +11 -0
  103. package/out/interface/controller/state/view/i-medit-view9.state.d.ts.map +1 -0
  104. package/out/interface/controller/state/view/i-medit-view9.state.js +1 -0
  105. package/out/interface/controller/state/view/index.d.ts +2 -0
  106. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  107. package/out/interface/controller/state/view/index.js +2 -0
  108. package/out/interface/service/code-list-item/code-list-item.d.ts +16 -0
  109. package/out/interface/service/code-list-item/code-list-item.d.ts.map +1 -1
  110. package/out/service/index.d.ts +1 -0
  111. package/out/service/index.d.ts.map +1 -1
  112. package/out/service/index.js +1 -0
  113. package/out/service/mqtt/mqtt.service.d.ts +66 -0
  114. package/out/service/mqtt/mqtt.service.d.ts.map +1 -0
  115. package/out/service/mqtt/mqtt.service.js +95 -0
  116. package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
  117. package/out/service/service/code-list/code-list.service.js +12 -1
  118. package/out/service/service/entity/de.service.d.ts +2 -2
  119. package/out/service/service/entity/de.service.d.ts.map +1 -1
  120. package/out/service/service/entity/method/de-action.d.ts +14 -5
  121. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  122. package/out/service/service/entity/method/de-action.js +56 -15
  123. package/out/service/service/entity/method/fetch.d.ts +1 -1
  124. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  125. package/out/service/service/entity/method/fetch.js +9 -6
  126. package/out/service/service/entity/method/method.d.ts +13 -13
  127. package/out/service/service/entity/method/method.d.ts.map +1 -1
  128. package/out/service/service/entity/method/method.js +16 -11
  129. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +7 -1
  130. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  131. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +76 -8
  132. package/out/ui-action/uiaction-util.js +3 -3
  133. package/out/ui-logic/ui-logic-param/ui-logic-param.d.ts.map +1 -1
  134. package/out/ui-logic/ui-logic-param/ui-logic-param.js +7 -1
  135. package/out/utils/script/script-factory.d.ts +10 -0
  136. package/out/utils/script/script-factory.d.ts.map +1 -1
  137. package/out/utils/script/script-factory.js +15 -0
  138. package/package.json +5 -3
  139. package/src/application.ts +22 -1
  140. package/src/constant/view-call-tag.ts +4 -0
  141. package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts +2 -0
  142. package/src/controller/control/exp-bar/chart-exp-bar.controller.ts +51 -0
  143. package/src/controller/control/exp-bar/index.ts +1 -0
  144. package/src/controller/control/form/form-detail/form-item/form-item.controller.ts +22 -9
  145. package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +14 -0
  146. package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +18 -13
  147. package/src/controller/control/index.ts +1 -0
  148. package/src/controller/control/medit-view-panel/index.ts +2 -0
  149. package/src/controller/control/medit-view-panel/medit-view-panel.controller.ts +305 -0
  150. package/src/controller/control/medit-view-panel/medit-view-panel.service.ts +10 -0
  151. package/src/controller/control/search-bar/search-bar.controller.ts +6 -5
  152. package/src/controller/utils/value-rule/value-rule.ts +97 -2
  153. package/src/de-logic/de-logic-context.ts +6 -5
  154. package/src/de-logic/de-logic-link/de-logic-link.ts +1 -1
  155. package/src/de-logic/de-logic-param/de-logic-param.ts +6 -1
  156. package/src/de-logic/de-logic.ts +5 -1
  157. package/src/de-logic/index.ts +49 -8
  158. package/src/engine/md-view.engine.ts +16 -13
  159. package/src/hub/config/app-view-config-service.ts +12 -1
  160. package/src/interface/common/i-app-view-config-service/i-app-view-config-service.ts +22 -4
  161. package/src/interface/controller/controller/control/i-chart-exp-bar.controller.ts +19 -0
  162. package/src/interface/controller/controller/control/i-medit-view-panel.controller.ts +17 -0
  163. package/src/interface/controller/controller/control/index.ts +2 -0
  164. package/src/interface/controller/event/control/i-chart-exp-bar.event.ts +10 -0
  165. package/src/interface/controller/event/control/i-medit-view-panel.event.ts +9 -0
  166. package/src/interface/controller/event/control/index.ts +2 -0
  167. package/src/interface/controller/event/view/i-chart-exp-view.event.ts +11 -0
  168. package/src/interface/controller/event/view/i-medit-view9.event.ts +10 -0
  169. package/src/interface/controller/event/view/index.ts +2 -0
  170. package/src/interface/controller/state/control/i-chart-exp-bar.state.ts +10 -0
  171. package/src/interface/controller/state/control/i-medit-view-panel.state.ts +36 -0
  172. package/src/interface/controller/state/control/index.ts +2 -0
  173. package/src/interface/controller/state/view/i-chart-exp-view.state.ts +10 -0
  174. package/src/interface/controller/state/view/i-medit-view9.state.ts +10 -0
  175. package/src/interface/controller/state/view/index.ts +2 -0
  176. package/src/interface/service/code-list-item/code-list-item.ts +20 -0
  177. package/src/service/index.ts +1 -0
  178. package/src/service/mqtt/mqtt.service.ts +117 -0
  179. package/src/service/service/code-list/code-list.service.ts +15 -1
  180. package/src/service/service/entity/de.service.ts +2 -2
  181. package/src/service/service/entity/method/de-action.ts +74 -33
  182. package/src/service/service/entity/method/fetch.ts +12 -11
  183. package/src/service/service/entity/method/method.ts +28 -19
  184. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +103 -10
  185. package/src/ui-action/uiaction-util.ts +3 -3
  186. package/src/ui-logic/ui-logic-param/ui-logic-param.ts +6 -1
  187. package/src/utils/script/script-factory.ts +16 -0
@@ -0,0 +1,260 @@
1
+ /* eslint-disable no-shadow */
2
+ import { RuntimeError } from '@ibiz-template/core';
3
+ import { createUUID } from 'qx-util';
4
+ import { calcDeCodeNameById } from '../../../model';
5
+ import { Srfuf } from '../../../service';
6
+ import { MDControlController } from '../../common';
7
+ import { MEditViewPanelService } from './medit-view-panel.service';
8
+ /**
9
+ * 多编辑视图面板部件控制器
10
+ * @export
11
+ * @class MEditViewPanelController
12
+ * @extends {MDControlController<IDEMultiEditViewPanel, IMEditViewPanelState, IMEditViewPanelEvent>}
13
+ * @implements {IMEditViewPanelController}
14
+ */
15
+ export class MEditViewPanelController extends MDControlController {
16
+ constructor() {
17
+ super(...arguments);
18
+ /**
19
+ * 是否显示底部按钮
20
+ *
21
+ */
22
+ this.showButton = true;
23
+ /**
24
+ * 当前应用视图参数对象
25
+ *
26
+ */
27
+ this.parameters = [];
28
+ }
29
+ async onCreated() {
30
+ await super.onCreated();
31
+ this.service = new MEditViewPanelService(this.model);
32
+ await this.service.init(this.context);
33
+ await this.initParameters();
34
+ }
35
+ initState() {
36
+ super.initState();
37
+ this.state.panelUiItems = [];
38
+ this.state.activeTab = '';
39
+ this.state.size = 1000;
40
+ }
41
+ /**
42
+ * 初始化嵌入应用视图及实体参数对象
43
+ * @return {*}
44
+ * @author: zhujiamin
45
+ * @Date: 2023-10-16 13:56:56
46
+ */
47
+ async initParameters() {
48
+ var _a, _b;
49
+ if (this.model.embeddedAppViewId) {
50
+ const embedView = await ibiz.hub.getAppView(this.model.embeddedAppViewId);
51
+ if (embedView.appDataEntityId) {
52
+ const embedViewEntity = await ibiz.hub.getAppDataEntity(embedView.appDataEntityId);
53
+ if (embedView && embedViewEntity) {
54
+ this.parameters = [
55
+ {
56
+ parameterName: (_a = embedViewEntity.keyAppDEFieldId) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
57
+ pathName: (_b = embedViewEntity.codeName) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
58
+ },
59
+ ];
60
+ }
61
+ else {
62
+ this.parameters = [];
63
+ }
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * 部件加载后处理
69
+ *
70
+ * @author chitanda
71
+ * @date 2023-06-21 15:06:44
72
+ * @param {MDCtrlLoadParams} args 本次请求参数
73
+ * @param {IData[]} items 上游处理的数据(默认是后台数据)
74
+ * @return {*} {Promise<IData[]>} 返回给后续处理的数据
75
+ */
76
+ async afterLoad(args, items) {
77
+ await super.afterLoad(args, items);
78
+ this.state.panelUiItems = [];
79
+ this.doItems(items);
80
+ // 设置默认激活
81
+ if (this.model.panelStyle === 'TAB_TOP' &&
82
+ this.state.panelUiItems.length > 0) {
83
+ this.state.activeTab = this.state.panelUiItems[0].id;
84
+ }
85
+ return items;
86
+ }
87
+ /**
88
+ * 处理UI所需数据
89
+ * @param {ControlVO} arg
90
+ * @return {*}
91
+ * @author: zhujiamin
92
+ * @Date: 2023-10-16 17:55:31
93
+ */
94
+ handlePanelItemParams(arg) {
95
+ const [{ parameterName }] = this.parameters;
96
+ const id = arg[parameterName]
97
+ ? arg[parameterName]
98
+ : `mockId:${createUUID()}`;
99
+ const item = {
100
+ id,
101
+ context: this.context.clone(),
102
+ params: {},
103
+ data: arg,
104
+ srfmajortext: '',
105
+ };
106
+ // 当前视图参数(应用实体视图)
107
+ this.parameters.forEach(parameter => {
108
+ const { parameterName, pathName } = parameter;
109
+ if (arg[parameterName] && !Object.is(arg[parameterName], '')) {
110
+ Object.assign(item.context, {
111
+ [pathName]: arg[parameterName],
112
+ });
113
+ }
114
+ // 当前页面实体主信息
115
+ if (arg.srfmajortext && !Object.is(arg.srfmajortext, '')) {
116
+ Object.assign(item, { srfmajortext: arg.srfmajortext });
117
+ }
118
+ else if (arg.srfuf === 0) {
119
+ Object.assign(item, { srfmajortext: '草稿--新建' });
120
+ }
121
+ });
122
+ return item;
123
+ }
124
+ /**
125
+ * 处理数据
126
+ * @param {ControlVO} datas
127
+ * @return {*}
128
+ * @author: zhujiamin
129
+ * @Date: 2023-10-16 15:00:02
130
+ */
131
+ doItems(datas) {
132
+ datas.forEach((arg) => {
133
+ const item = this.handlePanelItemParams(arg);
134
+ this.state.panelUiItems.push(item);
135
+ });
136
+ }
137
+ /**
138
+ * 处理添加
139
+ * @return {*}
140
+ * @author: zhujiamin
141
+ * @Date: 2023-10-16 15:18:01
142
+ */
143
+ async handleAdd() {
144
+ this.doItems([{ srfuf: 0 }]);
145
+ if (this.model.panelStyle === 'TAB_TOP') {
146
+ // 上分页添加后激活最后一个
147
+ this.state.activeTab =
148
+ this.state.panelUiItems[this.state.panelUiItems.length - 1].id;
149
+ }
150
+ }
151
+ /**
152
+ * 处理删除
153
+ * @param {IPanelUiItem} item
154
+ * @return {*}
155
+ * @author: zhujiamin
156
+ * @Date: 2023-10-16 15:23:59
157
+ */
158
+ async handleDelete(item) {
159
+ // 新建的界面上删除即可
160
+ if (item.data.srfuf === 0) {
161
+ // 删除items中已删除的项
162
+ const index = this.state.panelUiItems.findIndex(value => {
163
+ return value === item;
164
+ });
165
+ this.state.panelUiItems.splice(index, 1);
166
+ }
167
+ else {
168
+ await this.remove({ data: [item.data] });
169
+ }
170
+ }
171
+ /**
172
+ * 处理tab删除
173
+ * @param {IPanelUiItem} item
174
+ * @return {*}
175
+ * @author: zhujiamin
176
+ * @Date: 2023-10-17 14:21:57
177
+ */
178
+ async handleTabDelete(item, index) {
179
+ let isBackToEnd = false;
180
+ // 如果删除的是激活项,且为最后一项,设置激活项为前一项
181
+ if (item.id === this.state.activeTab &&
182
+ index === this.state.panelUiItems.length - 1) {
183
+ if (index > 0) {
184
+ isBackToEnd = true;
185
+ }
186
+ }
187
+ await this.handleDelete(item);
188
+ if (isBackToEnd) {
189
+ this.state.activeTab =
190
+ this.state.panelUiItems[this.state.panelUiItems.length - 1].id;
191
+ }
192
+ }
193
+ /**
194
+ * 后台删除结束后界面删除逻辑
195
+ *
196
+ * @author lxm
197
+ * @date 2022-09-06 19:09:10
198
+ * @param {IData} data
199
+ */
200
+ afterRemove(data) {
201
+ super.afterRemove(data);
202
+ // 删除this.items里的数据
203
+ const index = this.state.panelUiItems.findIndex(item => item.data.srfkey === data.srfkey);
204
+ if (index !== -1) {
205
+ this.state.panelUiItems.splice(index, 1);
206
+ }
207
+ }
208
+ /**
209
+ * 视图数据变化
210
+ * @param {DataChangeEvent} args
211
+ * @return {*}
212
+ * @author: zhujiamin
213
+ * @Date: 2023-10-16 17:20:45
214
+ */
215
+ onViewDataChange(args, id) {
216
+ // 新建的保存成功后该部件需要保存来更新数据
217
+ if (args.eventName === 'onSaveSuccess') {
218
+ this.save(args.data[0], id);
219
+ }
220
+ }
221
+ /**
222
+ * 保存
223
+ *
224
+ * @param {ControlVO} data
225
+ * @returns {*} {Promise<void>}
226
+ */
227
+ async save(data, id) {
228
+ const panelUiItemIndex = this.state.panelUiItems.findIndex(item => item.id === id);
229
+ if (!panelUiItemIndex) {
230
+ throw new RuntimeError('编辑视图面板部件UI数据不存在');
231
+ }
232
+ await this.startLoading();
233
+ let res;
234
+ const isCreate = data.srfuf === Srfuf.CREATE;
235
+ const deName = calcDeCodeNameById(this.model.appDataEntityId);
236
+ const tempContext = this.context.clone();
237
+ tempContext[deName] = data.srfkey;
238
+ try {
239
+ res = isCreate
240
+ ? await this.service.create(tempContext, data)
241
+ : await this.service.update(tempContext, data);
242
+ }
243
+ catch (error) {
244
+ await this.evt.emit('onSaveError', undefined);
245
+ this.actionNotification(`${isCreate ? 'CREATE' : 'UPDATE'}ERROR`, {
246
+ error: error,
247
+ data: this.state.panelUiItems[panelUiItemIndex].data,
248
+ });
249
+ throw error;
250
+ }
251
+ finally {
252
+ await this.endLoading();
253
+ }
254
+ // 后续处理
255
+ const index = this.state.items.findIndex(item => item.srfkey === data.srfkey);
256
+ this.state.items.splice(index, 1, res.data);
257
+ this.state.panelUiItems.splice(panelUiItemIndex, 1, this.handlePanelItemParams(res.data));
258
+ await this.evt.emit('onSaveSuccess', undefined);
259
+ }
260
+ }
@@ -0,0 +1,11 @@
1
+ import { IDEMultiEditViewPanel } from '@ibiz/model-core';
2
+ import { MDControlService } from '../../../service';
3
+ /**
4
+ * 多编辑视图面板部件服务
5
+ *
6
+ * @export
7
+ * @extends {MDControlService<IDEMultiEditViewPanel>}
8
+ */
9
+ export declare class MEditViewPanelService extends MDControlService<IDEMultiEditViewPanel> {
10
+ }
11
+ //# sourceMappingURL=medit-view-panel.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medit-view-panel.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/medit-view-panel/medit-view-panel.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB,CAAC,qBAAqB,CAAC;CAAG"}
@@ -0,0 +1,9 @@
1
+ import { MDControlService } from '../../../service';
2
+ /**
3
+ * 多编辑视图面板部件服务
4
+ *
5
+ * @export
6
+ * @extends {MDControlService<IDEMultiEditViewPanel>}
7
+ */
8
+ export class MEditViewPanelService extends MDControlService {
9
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;;;;GAQG;AACH,qBAAa,mBACX,SAAQ,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CACtE,YAAW,oBAAoB;IAE/B;;;;;OAKG;IACH,WAAW,SAAM;IAEjB;;;;;OAKG;IACH,iBAAiB,EAAE,yBAAyB,EAAE,CAAM;IAEpD;;;;;OAKG;IACH,aAAa,EAAG,cAAc,CAAC;IAE/B,SAAS,CAAC,SAAS,IAAI,IAAI;cAcX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAc1C;;;;;;OAMG;IACH,SAAS,CAAC,0BAA0B,IAAI,IAAI;IA2B5C;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;OAKG;IACH,eAAe,IAAI,OAAO;IAwB1B;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAUnB;;;;;;OAMG;cACa,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrD;;;;;OAKG;IACH,WAAW,IAAI,KAAK,GAAG,SAAS;IAsBhC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK;CAcxC"}
1
+ {"version":3,"file":"search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;;;;GAQG;AACH,qBAAa,mBACX,SAAQ,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CACtE,YAAW,oBAAoB;IAE/B;;;;;OAKG;IACH,WAAW,SAAM;IAEjB;;;;;OAKG;IACH,iBAAiB,EAAE,yBAAyB,EAAE,CAAM;IAEpD;;;;;OAKG;IACH,aAAa,EAAG,cAAc,CAAC;IAE/B,SAAS,CAAC,SAAS,IAAI,IAAI;cAcX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAc1C;;;;;;OAMG;IACH,SAAS,CAAC,0BAA0B,IAAI,IAAI;IA2B5C;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;OAKG;IACH,eAAe,IAAI,OAAO;IAwB1B;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAUnB;;;;;;OAMG;cACa,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrD;;;;;OAKG;IACH,WAAW,IAAI,KAAK,GAAG,SAAS;IAsBhC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK;CAcxC"}
@@ -1,5 +1,6 @@
1
1
  import { recursiveIterate } from '@ibiz-template/core';
2
2
  import { isNil } from 'ramda';
3
+ import { convertNavData, ScriptFactory } from '../../../utils';
3
4
  import { ControlController } from '../../common';
4
5
  import { SearchBarFilterController } from './search-bar-filter.controller';
5
6
  /**
@@ -112,9 +113,8 @@ export class SearchBarController extends ControlController {
112
113
  }
113
114
  // 快速分组
114
115
  if ((_a = this.state.selectedGroupItem) === null || _a === void 0 ? void 0 : _a.data) {
115
- // eslint-disable-next-line no-new-func
116
- const func = new Function(`return (${this.state.selectedGroupItem.data});`);
117
- const addParams = func();
116
+ const navParams = ScriptFactory.execSingleLine(this.state.selectedGroupItem.data);
117
+ const addParams = convertNavData(navParams, this.params, this.context);
118
118
  Object.assign(params, addParams);
119
119
  }
120
120
  // 搜索过滤器
@@ -1,4 +1,4 @@
1
- import { IDEFormItemVR, IDEGridEditItemVR } from '@ibiz/model-core';
1
+ import { IDEFormItemVR, IDEGridEditItemVR, IEditor } from '@ibiz/model-core';
2
2
  /**
3
3
  * 生成值规则
4
4
  *
@@ -11,4 +11,13 @@ import { IDEFormItemVR, IDEGridEditItemVR } from '@ibiz/model-core';
11
11
  * @returns {*} {IData[]}
12
12
  */
13
13
  export declare function generateRules(itemVRs: IDEFormItemVR[] | IDEGridEditItemVR[], name: string, valueItemName?: string): IData[];
14
+ /**
15
+ * 生成编辑器相关的值规则
16
+ * @author lxm
17
+ * @date 2023-10-18 03:36:39
18
+ * @export
19
+ * @param {IEditor} editor
20
+ * @return {*} {IData[]}
21
+ */
22
+ export declare function generateEditorRules(editor: IEditor): IData[];
14
23
  //# sourceMappingURL=value-rule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-rule.d.ts","sourceRoot":"","sources":["../../../../src/controller/utils/value-rule/value-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIpE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EAAE,GAAG,iBAAiB,EAAE,EAC9C,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,KAAK,EAAE,CAyET"}
1
+ {"version":3,"file":"value-rule.d.ts","sourceRoot":"","sources":["../../../../src/controller/utils/value-rule/value-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,EAGR,MAAM,kBAAkB,CAAC;AAK1B;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EAAE,GAAG,iBAAiB,EAAE,EAC9C,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,KAAK,EAAE,CAyET;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,CA8E5D"}
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import { RuntimeError } from '@ibiz-template/core';
3
- import { isNilOrEmpty } from 'qx-util';
3
+ import { isNilOrEmpty, isNumber } from 'qx-util';
4
+ import { isNil } from 'ramda';
4
5
  import { ScriptFactory, verifyDeRules } from '../../../utils';
5
6
  /**
6
7
  * 生成值规则
@@ -72,3 +73,65 @@ export function generateRules(itemVRs, name, valueItemName) {
72
73
  });
73
74
  return rules;
74
75
  }
76
+ /**
77
+ * 生成编辑器相关的值规则
78
+ * @author lxm
79
+ * @date 2023-10-18 03:36:39
80
+ * @export
81
+ * @param {IEditor} editor
82
+ * @return {*} {IData[]}
83
+ */
84
+ export function generateEditorRules(editor) {
85
+ const rules = [];
86
+ const { maxLength, minLength } = editor;
87
+ const { maxValue, minValue } = editor;
88
+ if (maxLength) {
89
+ rules.push({
90
+ validator: (rule, value, callback) => {
91
+ if (!isNil(value) && value.length > maxLength) {
92
+ callback(new Error(`内容长度必须小于等于${maxLength},当前长度为${value.length}`));
93
+ }
94
+ else {
95
+ return true;
96
+ }
97
+ },
98
+ });
99
+ }
100
+ if (minLength) {
101
+ rules.push({
102
+ validator: (rule, value, callback) => {
103
+ if (!isNil(value) && value.length < minLength) {
104
+ callback(new Error(`内容长度必须大于等于${minLength},当前长度为${value.length}`));
105
+ }
106
+ else {
107
+ return true;
108
+ }
109
+ },
110
+ });
111
+ }
112
+ if (!isNil(maxValue)) {
113
+ rules.push({
114
+ validator: (rule, value, callback) => {
115
+ if (!isNil(value) && isNumber(value) && value > maxValue) {
116
+ callback(new Error(`值必须小于等于${maxValue}`));
117
+ }
118
+ else {
119
+ return true;
120
+ }
121
+ },
122
+ });
123
+ }
124
+ if (!isNil(minValue)) {
125
+ rules.push({
126
+ validator: (rule, value, callback) => {
127
+ if (!isNil(value) && isNumber(value) && value < minValue) {
128
+ callback(new Error(`值必须大于等于${minValue}`));
129
+ }
130
+ else {
131
+ return true;
132
+ }
133
+ },
134
+ });
135
+ }
136
+ return rules;
137
+ }
@@ -20,11 +20,11 @@ export declare class DELogicContext {
20
20
  * 实体逻辑执行参数
21
21
  * @author lxm
22
22
  * @date 2023-10-16 02:22:31
23
- * @type {{ context: IParams; data: IData; params: IParams }}
23
+ * @type {{ context: IParams; data: IData[]; params: IParams }}
24
24
  */
25
25
  parameters: {
26
26
  context: IParams;
27
- data: IData;
27
+ data: IData[];
28
28
  params: IParams;
29
29
  };
30
30
  /**
@@ -34,7 +34,7 @@ export declare class DELogicContext {
34
34
  /**
35
35
  * 数据
36
36
  */
37
- get data(): IData;
37
+ get data(): IData[];
38
38
  /**
39
39
  * 视图参数
40
40
  */
@@ -48,7 +48,7 @@ export declare class DELogicContext {
48
48
  * @param {IData} data 数据对象
49
49
  * @param {IParams} params 视图参数
50
50
  */
51
- constructor(deLogicParams: Map<string, DELogicParam>, context: IParams, data: IData, params: IParams);
51
+ constructor(deLogicParams: Map<string, DELogicParam>, context: IParams, data: IData | IData[], params: IParams);
52
52
  /**
53
53
  * 重置实体逻辑参数
54
54
  * @author lxm
@@ -1 +1 @@
1
- {"version":3,"file":"de-logic-context.d.ts","sourceRoot":"","sources":["../../src/de-logic/de-logic-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,cAAc;IAsDvB,OAAO,CAAC,aAAa;IArDvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAE/D;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAKrB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,KAAK,CAEhB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED;;;;;;;;OAQG;gBAEO,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAChD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO;IAKjB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;;;OAOG;IAEH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAEjC;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAQ;IAEvB;;;;;;OAMG;IACH,SAAS,EAAE,OAAO,CAAS;IAE3B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAa;IAErC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC;;;;;OAKG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAIxC"}
1
+ {"version":3,"file":"de-logic-context.d.ts","sourceRoot":"","sources":["../../src/de-logic/de-logic-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,cAAc;IAsDvB,OAAO,CAAC,aAAa;IArDvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAEjE;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAKrB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,KAAK,EAAE,CAElB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED;;;;;;;;OAQG;gBAEO,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAChD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EACrB,MAAM,EAAE,OAAO;IAKjB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;;;OAOG;IAEH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAEjC;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAQ;IAEvB;;;;;;OAMG;IACH,SAAS,EAAE,OAAO,CAAS;IAE3B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAa;IAErC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC;;;;;OAKG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAIxC"}
@@ -1,3 +1,4 @@
1
+ import { isArray } from 'lodash-es';
1
2
  /**
2
3
  * 实体逻辑执行上下文
3
4
  *
@@ -76,7 +77,7 @@ export class DELogicContext {
76
77
  * @type {string}
77
78
  */
78
79
  this.defaultParamName = 'Default';
79
- this.parameters = { context, data, params };
80
+ this.parameters = { context, data: isArray(data) ? data : [data], params };
80
81
  }
81
82
  /**
82
83
  * 重置实体逻辑参数
@@ -61,6 +61,6 @@ export class DELogicLink {
61
61
  return true;
62
62
  }
63
63
  // 常规
64
- return this.groupCond.test(ctx, ctx.context, ctx.data || {});
64
+ return this.groupCond.test(ctx, ctx.context, ctx.data[0] || {});
65
65
  }
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"de-logic-param.d.ts","sourceRoot":"","sources":["../../../src/de-logic/de-logic-param/de-logic-param.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,YAAY;IAQJ,KAAK,EAAE,aAAa;IAPvC;;;;;;OAMG;gBACgB,KAAK,EAAE,aAAa;IAEvC;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAgD/B;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;CAWjC"}
1
+ {"version":3,"file":"de-logic-param.d.ts","sourceRoot":"","sources":["../../../src/de-logic/de-logic-param/de-logic-param.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,YAAY;IAQJ,KAAK,EAAE,aAAa;IAPvC;;;;;;OAMG;gBACgB,KAAK,EAAE,aAAa;IAEvC;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAqD/B;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;CAWjC"}
@@ -33,7 +33,13 @@ export class DELogicParam {
33
33
  const tag = this.model.id;
34
34
  const m = this.model;
35
35
  if (m.default) {
36
- ctx.params[tag] = ctx.data || {};
36
+ // 配置了列表的拿数组数据
37
+ if (m.entityListParam) {
38
+ ctx.params[tag] = ctx.data || [];
39
+ }
40
+ else {
41
+ ctx.params[tag] = ctx.data[0] || {};
42
+ }
37
43
  }
38
44
  else if (m.appGlobalParam) {
39
45
  // 应用全局变量
@@ -68,7 +68,7 @@ export declare class DELogic {
68
68
  * @param {IParams} [opt]
69
69
  * @return {*} {Promise<IData>}
70
70
  */
71
- exec(context: IParams, data: IData, params: IParams): Promise<unknown>;
71
+ exec(context: IParams, data: IData | IData[], params: IParams): Promise<unknown>;
72
72
  /**
73
73
  * 开始根据连线递归执行逻辑
74
74
  *
@@ -1 +1 @@
1
- {"version":3,"file":"de-logic.d.ts","sourceRoot":"","sources":["../../src/de-logic/de-logic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAML,WAAW,EAOZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,OAAO;IAoCN,SAAS,CAAC,KAAK,EAAE,WAAW;IAnCxC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAEpC;;;;;OAKG;gBACmB,KAAK,EAAE,WAAW;IA0ExC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IASpD;;;;;;;;;OASG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB5E;;;;;;;;;OASG;cACa,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
1
+ {"version":3,"file":"de-logic.d.ts","sourceRoot":"","sources":["../../src/de-logic/de-logic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAML,WAAW,EAOZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,OAAO;IAoCN,SAAS,CAAC,KAAK,EAAE,WAAW;IAnCxC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAEpC;;;;;OAKG;gBACmB,KAAK,EAAE,WAAW;IA0ExC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IASpD;;;;;;;;;OASG;IACG,IAAI,CACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;;;;;;;OASG;cACa,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
@@ -13,7 +13,7 @@ import { IAppDataEntity, IAppDELogic } from '@ibiz/model-core';
13
13
  * @param {IParams} [opt]
14
14
  * @return {*} {Promise<HttpResponse<IData>>}
15
15
  */
16
- export declare function execDELogic(deDELogic: IAppDELogic, context: IParams, data: IData, params: IParams): Promise<unknown>;
16
+ export declare function execDELogic(deDELogic: IAppDELogic, context: IParams, data?: IData | IData[], params?: IParams): Promise<unknown>;
17
17
  /**
18
18
  * 通过id执行实体逻辑
19
19
  * @author lxm
@@ -39,18 +39,18 @@ export declare function execDELogicById(deDELogicId: string, dataEntityId: strin
39
39
  * @param {IParams} [opt]
40
40
  * @return {*} {Promise<HttpResponse<IData>>}
41
41
  */
42
- export declare function execDELogicAction(deDELogic: IAppDELogic, context: IParams, data: IData, params: IParams): Promise<HttpResponse<IData>>;
42
+ export declare function execDELogicAction(deDELogic: IAppDELogic, context: IParams, data?: IData | IData[], params?: IParams): Promise<HttpResponse<IData>>;
43
43
  /**
44
- * 执行属性实体逻辑
44
+ * 执行属性实体逻辑(单条或者多条)
45
45
  * @author lxm
46
46
  * @date 2023-06-14 12:29:56
47
47
  * @export
48
48
  * @param {IAppDataEntity} entity
49
49
  * @param {('compute' | 'change' | 'default')} type
50
50
  * @param {IParams} context
51
- * @param {IData} data
51
+ * @param {IData | IData[]} data 单条或多条数据
52
52
  * @param {IParams} params
53
53
  * @return {*} {Promise<void>}
54
54
  */
55
- export declare function execFieldLogics(entity: IAppDataEntity, type: 'compute' | 'change' | 'default', context: IParams, data: IData, params: IParams): Promise<void>;
55
+ export declare function execFieldLogics(entity: IAppDataEntity, type: 'compute' | 'change' | 'default', context: IParams, data: IData | IData[], params?: IParams): Promise<void>;
56
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/de-logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA2B/D;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAU9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EACtC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/de-logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA6B/D;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,KAAK,GAAG,KAAK,EAAO,EAC1B,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,EACtB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAc9B;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EACtC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EACrB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -1,4 +1,6 @@
1
1
  import { HttpError, HttpResponse, RuntimeError } from '@ibiz-template/core';
2
+ import { isArray } from 'lodash-es';
3
+ import { clone } from 'ramda';
2
4
  import { filterFieldLogics, findDELogic } from '../model';
3
5
  import { DELogic } from './de-logic';
4
6
  /**
@@ -31,7 +33,7 @@ async function findDeLogic(deDELogicId, dataEntityId, appId) {
31
33
  * @param {IParams} [opt]
32
34
  * @return {*} {Promise<HttpResponse<IData>>}
33
35
  */
34
- export async function execDELogic(deDELogic, context, data, params) {
36
+ export async function execDELogic(deDELogic, context, data = {}, params = {}) {
35
37
  if (!deLogicMap.has(deDELogic)) {
36
38
  deLogicMap.set(deDELogic, new DELogic(deDELogic));
37
39
  }
@@ -70,8 +72,11 @@ export async function execDELogicById(deDELogicId, dataEntityId, context, data,
70
72
  * @return {*} {Promise<HttpResponse<IData>>}
71
73
  */
72
74
  export async function execDELogicAction(deDELogic, context, data, params) {
75
+ const _context = clone(context);
76
+ const _data = data ? clone(data) : data;
77
+ const _params = params ? clone(params) : params;
73
78
  try {
74
- const result = await execDELogic(deDELogic, context, data, params);
79
+ const result = await execDELogic(deDELogic, _context, _data, _params);
75
80
  return new HttpResponse(result);
76
81
  }
77
82
  catch (err) {
@@ -82,9 +87,9 @@ export async function execDELogicAction(deDELogic, context, data, params) {
82
87
  }
83
88
  }
84
89
  /**
85
- * 执行属性实体逻辑
90
+ * 执行属性实体逻辑(单条数据)
86
91
  * @author lxm
87
- * @date 2023-06-14 12:29:56
92
+ * @date 2023-10-19 04:00:15
88
93
  * @export
89
94
  * @param {IAppDataEntity} entity
90
95
  * @param {('compute' | 'change' | 'default')} type
@@ -93,7 +98,7 @@ export async function execDELogicAction(deDELogic, context, data, params) {
93
98
  * @param {IParams} params
94
99
  * @return {*} {Promise<void>}
95
100
  */
96
- export async function execFieldLogics(entity, type, context, data, params) {
101
+ async function execSingleFieldLogics(entity, type, context, data, params) {
97
102
  const fieldLogics = filterFieldLogics(entity, type);
98
103
  if (fieldLogics.length) {
99
104
  const promiseResult = await Promise.all(fieldLogics.map(logic => {
@@ -104,3 +109,25 @@ export async function execFieldLogics(entity, type, context, data, params) {
104
109
  });
105
110
  }
106
111
  }
112
+ /**
113
+ * 执行属性实体逻辑(单条或者多条)
114
+ * @author lxm
115
+ * @date 2023-06-14 12:29:56
116
+ * @export
117
+ * @param {IAppDataEntity} entity
118
+ * @param {('compute' | 'change' | 'default')} type
119
+ * @param {IParams} context
120
+ * @param {IData | IData[]} data 单条或多条数据
121
+ * @param {IParams} params
122
+ * @return {*} {Promise<void>}
123
+ */
124
+ export async function execFieldLogics(entity, type, context, data, params = {}) {
125
+ if (!data) {
126
+ return;
127
+ }
128
+ if (isArray(data)) {
129
+ await Promise.all(data.map(item => execSingleFieldLogics(entity, type, context, item, params)));
130
+ return;
131
+ }
132
+ return execSingleFieldLogics(entity, type, context, data, params);
133
+ }
@@ -1,6 +1,6 @@
1
1
  import { IAppDEMultiDataView } from '@ibiz/model-core';
2
2
  import { ViewController } from '../controller';
3
- import { IMDViewEvent, IMDViewState, IMDControlController, ISearchFormController, MDCtrlRemoveParams, ISearchBarController, MDCtrlLoadParams, EventBase } from '../interface';
3
+ import { IMDViewEvent, IMDViewState, IMDControlController, ISearchFormController, MDCtrlRemoveParams, ISearchBarController, MDCtrlLoadParams, EventBase, IUIActionResult } from '../interface';
4
4
  import { ViewEngineBase } from './view-base.engine';
5
5
  /**
6
6
  * 多数据视图引擎
@@ -69,7 +69,7 @@ export declare class MDViewEngine extends ViewEngineBase {
69
69
  event?: MouseEvent;
70
70
  context?: IContext;
71
71
  params?: IParams;
72
- }): Promise<void>;
72
+ }): Promise<IUIActionResult>;
73
73
  /**
74
74
  * 打开编辑数据视图
75
75
  *
@@ -83,7 +83,7 @@ export declare class MDViewEngine extends ViewEngineBase {
83
83
  data: IData[];
84
84
  event?: MouseEvent;
85
85
  copyMode?: boolean;
86
- }): Promise<void>;
86
+ }): Promise<IUIActionResult>;
87
87
  /**
88
88
  * 视图删除
89
89
  *