@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,310 @@
1
+ import { RuntimeError, RuntimeModelError } from '@ibiz-template/core';
2
+ import { isNil } from 'ramda';
3
+ import { calcDeCodeNameById } from '../../../model';
4
+ import { ControlVO } from '../../../service';
5
+ import { UIActionUtil } from '../../../ui-action';
6
+ import { ButtonContainerState, UIActionButtonState } from '../../utils';
7
+ import { DataViewControlController } from '../data-view';
8
+ import { KanbanService } from './kanban.service';
9
+ export class KanbanController extends DataViewControlController {
10
+ /**
11
+ * 允许调整顺序
12
+ * @author lxm
13
+ * @date 2023-09-11 04:02:39
14
+ * @readonly
15
+ * @type {boolean}
16
+ */
17
+ get enableEditOrder() {
18
+ return this.model.enableCardEditOrder === true;
19
+ }
20
+ /**
21
+ * 是否支持调整分组。
22
+ * @author lxm
23
+ * @date 2023-09-11 04:04:00
24
+ * @readonly
25
+ * @type {boolean}
26
+ */
27
+ get enableEditGroup() {
28
+ return this.model.enableCardEditGroup === true;
29
+ }
30
+ /**
31
+ * 是否允许新建
32
+ * @author lxm
33
+ * @date 2023-09-11 04:05:25
34
+ * @readonly
35
+ * @type {boolean}
36
+ */
37
+ get enableNew() {
38
+ return this.model.enableCardNew === true;
39
+ }
40
+ async initControlService() {
41
+ this.service = new KanbanService(this.model);
42
+ await this.service.init(this.context);
43
+ }
44
+ initState() {
45
+ super.initState();
46
+ this.state.size = this.model.pagingSize || 1000;
47
+ this.state.updating = false;
48
+ // 支持调整顺序和分组时
49
+ this.state.draggable = this.enableEditOrder || this.enableEditGroup;
50
+ }
51
+ /**
52
+ * 初始化
53
+ *
54
+ * @protected
55
+ * @return {*} {Promise<void>}
56
+ * @memberof KanbanController
57
+ */
58
+ async onCreated() {
59
+ await super.onCreated();
60
+ await this.initGroupActionStates();
61
+ }
62
+ /**
63
+ * 初始化分组右侧界面行为按钮的状态
64
+ *
65
+ * @author chitanda
66
+ * @date 2023-08-02 17:08:04
67
+ * @return {*} {Promise<void>}
68
+ */
69
+ async initGroupActionStates() {
70
+ var _a;
71
+ const { groupUIActionGroup } = this.model;
72
+ if (!((_a = groupUIActionGroup === null || groupUIActionGroup === void 0 ? void 0 : groupUIActionGroup.uiactionGroupDetails) === null || _a === void 0 ? void 0 : _a.length)) {
73
+ return;
74
+ }
75
+ const containerState = new ButtonContainerState();
76
+ groupUIActionGroup.uiactionGroupDetails.forEach(detail => {
77
+ const actionid = detail.uiactionId;
78
+ if (actionid) {
79
+ const buttonState = new UIActionButtonState(detail.id, this.context.srfappid, actionid);
80
+ containerState.addState(detail.id, buttonState);
81
+ }
82
+ });
83
+ await containerState.update();
84
+ this.state.groupActionGroupState = containerState;
85
+ this.evt.on('onSelectionChange', event => {
86
+ let data = event.data[0];
87
+ if (data && data instanceof ControlVO) {
88
+ data = data.getOrigin();
89
+ }
90
+ if (data) {
91
+ this.state.groupActionGroupState.update(data, this.model.appDataEntityId);
92
+ }
93
+ });
94
+ }
95
+ /**
96
+ * 本地排序items
97
+ * @author lxm
98
+ * @date 2023-09-04 09:30:55
99
+ * @param {IData[]} items
100
+ */
101
+ sortItems(items) {
102
+ const sortField = this.model.minorSortAppDEFieldId;
103
+ const { minorSortDir } = this.model;
104
+ if (!sortField) {
105
+ throw new RuntimeModelError(this.model, '排序属性没配置');
106
+ }
107
+ if (!minorSortDir) {
108
+ throw new RuntimeModelError(this.model, '排序方向没配置');
109
+ }
110
+ const isAsc = minorSortDir === 'ASC';
111
+ // 格式化排序属性的值
112
+ items.forEach(item => {
113
+ const sortValue = item[sortField];
114
+ if (isNil(sortValue)) {
115
+ item[sortField] = 0;
116
+ }
117
+ else {
118
+ const toNum = Number(sortValue);
119
+ if (Number.isNaN(toNum)) {
120
+ throw new RuntimeError(`${item.srfmajortext}的排序属性无法转换成数值`);
121
+ }
122
+ }
123
+ });
124
+ // 排序
125
+ items.sort((a, b) => isAsc ? a[sortField] - b[sortField] : b[sortField] - a[sortField]);
126
+ }
127
+ async afterLoad(args, items) {
128
+ // 每次加载回来先本地排序,把数据的排序属性规范一下
129
+ this.sortItems(this.state.items);
130
+ return super.afterLoad(args, items);
131
+ }
132
+ handleDataGroup() {
133
+ if (!this.model.enableGroup || this.model.groupMode === 'NONE') {
134
+ throw new RuntimeError('看板部件必须开启分组');
135
+ }
136
+ return super.handleDataGroup();
137
+ }
138
+ /**
139
+ * 拖拽变更事件处理回调
140
+ * @author lxm
141
+ * @date 2023-09-11 04:12:58
142
+ * @param {IDragChangeInfo} info
143
+ * @return {*} {Promise<void>}
144
+ */
145
+ async onDragChange(info) {
146
+ if (!this.enableEditGroup) {
147
+ if (info.from !== info.to) {
148
+ ibiz.message.warning('当前看板不允许调整分组!');
149
+ return;
150
+ }
151
+ }
152
+ const isAsc = this.model.minorSortDir === 'ASC';
153
+ const { from, to, fromIndex, toIndex } = info;
154
+ const groupField = this.model.groupAppDEFieldId;
155
+ const sortField = this.model.minorSortAppDEFieldId;
156
+ const modifiedItems = [];
157
+ const fromGroup = this.state.groups.find(x => x.key === from);
158
+ const toGroup = this.state.groups.find(x => x.key === to);
159
+ if (!this.enableEditOrder) {
160
+ if (info.from === info.to) {
161
+ ibiz.message.warning('当前看板不允许调整次序');
162
+ return;
163
+ }
164
+ // 只修改分组不管排序
165
+ const draggedItem = fromGroup.children[fromIndex];
166
+ draggedItem[groupField] = info.to; // 变更分组
167
+ return this.updateChangedItems([draggedItem]);
168
+ }
169
+ /**
170
+ * 获取下一个100的倍数
171
+ * @author lxm
172
+ * @date 2023-09-11 10:03:46
173
+ * @param {number} num
174
+ * @return {*} {number}
175
+ */
176
+ const getNextSort = (num) => {
177
+ return num + (100 - (num % 100));
178
+ };
179
+ const originArr = [...toGroup.children];
180
+ const changedArr = [...toGroup.children];
181
+ // 计算出拖拽前和拖拽后的数组
182
+ const draggedItem = fromGroup.children[fromIndex];
183
+ if (info.from !== info.to) {
184
+ draggedItem[groupField] = info.to; // 变更分组
185
+ changedArr.splice(toIndex, 0, draggedItem);
186
+ }
187
+ else {
188
+ changedArr.splice(fromIndex, 1);
189
+ changedArr.splice(toIndex, 0, draggedItem);
190
+ }
191
+ // 前台先改值
192
+ const removeItems = fromGroup.children.splice(fromIndex, 1);
193
+ toGroup.children.splice(toIndex, 0, ...removeItems);
194
+ // 降序把数组反转,保证两个数组都是从小到大排
195
+ if (!isAsc) {
196
+ originArr.reverse();
197
+ changedArr.reverse();
198
+ }
199
+ let lastSort;
200
+ let cacheArr = []; // 缓存的不修改数组
201
+ let cacheLastSort; // 缓存不修改数组第一个元素上一个排序值
202
+ changedArr.forEach((item, index) => {
203
+ if (lastSort === undefined) {
204
+ // 第一次出现要调整顺序的,如果不是0用原来位置的排序值,否则使用100
205
+ if (item !== originArr[index]) {
206
+ if (!originArr[index]) {
207
+ // 从别的分组挪进来的且处于末尾时使用上一个元素的排序值的后一个100
208
+ lastSort =
209
+ index === 0 ? 100 : getNextSort(originArr[index - 1][sortField]);
210
+ }
211
+ else {
212
+ lastSort = originArr[index][sortField] || 100; // 如果是0的时候给100否则用原来的
213
+ }
214
+ item[sortField] = lastSort;
215
+ modifiedItems.push(item);
216
+ }
217
+ }
218
+ else {
219
+ // 如果当前排序值比上一个小,提升它的排序值
220
+ if (lastSort >= item[sortField]) {
221
+ if (cacheArr.length > 0) {
222
+ cacheArr.forEach(cache => {
223
+ cache[sortField] = getNextSort(cacheLastSort);
224
+ modifiedItems.push(cache);
225
+ cacheLastSort = cache[sortField];
226
+ });
227
+ lastSort = cacheLastSort;
228
+ cacheLastSort = 0;
229
+ cacheArr = [];
230
+ }
231
+ item[sortField] = getNextSort(lastSort);
232
+ modifiedItems.push(item);
233
+ }
234
+ else {
235
+ if (cacheArr.length === 0) {
236
+ cacheLastSort = lastSort;
237
+ }
238
+ cacheArr.push(item);
239
+ }
240
+ lastSort = item[sortField];
241
+ }
242
+ });
243
+ this.updateChangedItems(modifiedItems);
244
+ }
245
+ /**
246
+ * 批量更新修改的项,并更新后台返回的数据,然后重新计算分组和排序
247
+ * @author lxm
248
+ * @date 2023-09-11 04:13:15
249
+ * @param {ControlVO[]} changedItems
250
+ * @return {*} {Promise<void>}
251
+ */
252
+ async updateChangedItems(changedItems) {
253
+ try {
254
+ this.state.updating = true;
255
+ await Promise.all(changedItems.map(async (item) => {
256
+ // 往上下文添加主键
257
+ const deName = calcDeCodeNameById(this.model.appDataEntityId);
258
+ const tempContext = this.context.clone();
259
+ tempContext[deName] = item.srfkey;
260
+ // 调用接口修改数据
261
+ const res = await this.service.updateGroup(tempContext, item);
262
+ // 更新完之后更新state里的数据。
263
+ if (res.data) {
264
+ const index = this.state.items.findIndex(x => x.srfkey === item.srfkey);
265
+ this.state.items.splice(index, 1, res.data);
266
+ }
267
+ }));
268
+ }
269
+ finally {
270
+ this.state.updating = false;
271
+ await this.afterLoad({}, this.state.items);
272
+ }
273
+ }
274
+ /**
275
+ * 点击新建
276
+ * @author lxm
277
+ * @date 2023-09-11 07:22:33
278
+ * @param {MouseEvent} event
279
+ * @param {(string | number)} group 分组标识
280
+ */
281
+ onClickNew(event, group) {
282
+ const params = Object.assign(Object.assign({}, this.params), { srfgroup: group });
283
+ UIActionUtil.execAndResolved('new', {
284
+ context: this.context,
285
+ params,
286
+ data: [],
287
+ view: this.view,
288
+ event,
289
+ });
290
+ }
291
+ /**
292
+ * 分组工具栏点击处理回调
293
+ * @author lxm
294
+ * @date 2023-09-11 04:48:06
295
+ * @param {IUIActionGroupDetail} detail
296
+ * @param {MouseEvent} event
297
+ * @return {*} {Promise<void>}
298
+ */
299
+ async onGroupToolbarClick(detail, event, group) {
300
+ const actionId = detail.uiactionId;
301
+ const params = Object.assign(Object.assign({}, this.params), { srfgroup: group });
302
+ await UIActionUtil.execAndResolved(actionId, {
303
+ context: this.context,
304
+ params,
305
+ data: this.state.selectedData,
306
+ view: this.view,
307
+ event,
308
+ });
309
+ }
310
+ }
@@ -0,0 +1,24 @@
1
+ import { IHttpResponse } from '@ibiz-template/core';
2
+ import { IDEKanban } from '@ibiz/model-core';
3
+ import { ControlVO } from '../../../service';
4
+ import { DataViewControlService } from '../data-view';
5
+ /**
6
+ * 看板(kanban)部件服务
7
+ *
8
+ * @export
9
+ * @class DataViewControlService
10
+ * @extends {MDControlService<IDEDataView>}
11
+ */
12
+ export declare class KanbanService extends DataViewControlService<IDEKanban> {
13
+ /**
14
+ * 更新分组数据
15
+ *
16
+ * @author lxm
17
+ * @date 2022-09-07 19:09:11
18
+ * @param {IParams} context 上下文
19
+ * @param {ControlVO} data 数据
20
+ * @returns {*}
21
+ */
22
+ updateGroup(context: IParams, data: ControlVO): Promise<IHttpResponse<ControlVO>>;
23
+ }
24
+ //# sourceMappingURL=kanban.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/kanban/kanban.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,sBAAsB,CAAC,SAAS,CAAC;IAClE;;;;;;;;OAQG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;CAOrC"}
@@ -0,0 +1,26 @@
1
+ import { DataViewControlService } from '../data-view';
2
+ /**
3
+ * 看板(kanban)部件服务
4
+ *
5
+ * @export
6
+ * @class DataViewControlService
7
+ * @extends {MDControlService<IDEDataView>}
8
+ */
9
+ export class KanbanService extends DataViewControlService {
10
+ /**
11
+ * 更新分组数据
12
+ *
13
+ * @author lxm
14
+ * @date 2022-09-07 19:09:11
15
+ * @param {IParams} context 上下文
16
+ * @param {ControlVO} data 数据
17
+ * @returns {*}
18
+ */
19
+ async updateGroup(context, data) {
20
+ var _a;
21
+ const updateAction = ((_a = this.model.updateGroupControlAction) === null || _a === void 0 ? void 0 : _a.appDEMethodId) || 'update';
22
+ let res = await this.exec(updateAction, context, data.getOrigin());
23
+ res = this.handleResponse(res);
24
+ return res;
25
+ }
26
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"list.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/list/list.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,cACX,SAAQ,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAC3D,YAAW,eAAe;IAElB,OAAO,EAAE,WAAW,CAAC;IAE7B,SAAS,CAAC,SAAS,IAAI,IAAI;cAKX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAenD;;;;;;;;OAQG;IACH,SAAS,KAAK,sBAAsB,IAAI,kBAAkB,GAAG,SAAS,CAKrE;IAED;;;;;;;;OAQG;IACH,SAAS,KAAK,sBAAsB,IAAI,kBAAkB,GAAG,SAAS,CAKrE;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI;IAatC;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAKzE;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;IAI7B;;;;;;;OAOG;IACH,UAAU,IAAI,KAAK,EAAE;IAIrB;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAqBjC;;;;OAIG;cACa,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkCrD"}
1
+ {"version":3,"file":"list.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/list/list.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,cACX,SAAQ,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAC3D,YAAW,eAAe;IAElB,OAAO,EAAE,WAAW,CAAC;IAE7B,SAAS,CAAC,SAAS,IAAI,IAAI;cAKX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAenD;;;;;;;;OAQG;IACH,SAAS,KAAK,sBAAsB,IAAI,kBAAkB,GAAG,SAAS,CAKrE;IAED;;;;;;;;OAQG;IACH,SAAS,KAAK,sBAAsB,IAAI,kBAAkB,GAAG,SAAS,CAKrE;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI;IAatC;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAKzE;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;IAI7B;;;;;;;OAOG;IACH,UAAU,IAAI,KAAK,EAAE;IAIrB;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAsBjC;;;;OAIG;cACa,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoCrD"}
@@ -148,6 +148,7 @@ export class ListController extends MDControlController {
148
148
  childrenMap.forEach((value, key) => {
149
149
  groups.push({
150
150
  caption: key,
151
+ key,
151
152
  children: [...value],
152
153
  });
153
154
  });
@@ -171,6 +172,7 @@ export class ListController extends MDControlController {
171
172
  const value = items.filter((item) => item[groupAppDEFieldId] === codeListItem.value);
172
173
  groups.push({
173
174
  caption: codeListItem.text,
175
+ key: codeListItem.value,
174
176
  children: [...value],
175
177
  });
176
178
  keys.push(codeListItem.value);
@@ -179,6 +181,7 @@ export class ListController extends MDControlController {
179
181
  if (otherGroup.length > 0) {
180
182
  groups.push({
181
183
  caption: '其他',
184
+ key: '其他',
182
185
  children: [...otherGroup],
183
186
  });
184
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/list/list.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,OAAO,CAAC;IACxD;;;;;OAKG;IACH,aAAa,IAAI,IAAI;CAoBtB"}
1
+ {"version":3,"file":"list.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/list/list.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,OAAO,CAAC;IACxD;;;;;OAKG;IACH,aAAa,IAAI,IAAI;CAqBtB"}
@@ -27,6 +27,7 @@ export class ListService extends MDControlService {
27
27
  const deFieldKey = deField.toLowerCase();
28
28
  mapField = new UIMapField(uiKey, deFieldKey, {
29
29
  isOriginField: true,
30
+ dataType: item.dataType,
30
31
  });
31
32
  }
32
33
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"md-ctrl.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/md-ctrl/md-ctrl.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB,CAAC,YAAY,CAAC;IAC/D;;;;;OAKG;IACH,aAAa,IAAI,IAAI;CAoBtB"}
1
+ {"version":3,"file":"md-ctrl.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/md-ctrl/md-ctrl.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB,CAAC,YAAY,CAAC;IAC/D;;;;;OAKG;IACH,aAAa,IAAI,IAAI;CAqBtB"}
@@ -28,6 +28,7 @@ export class MDCtrlService extends MDControlService {
28
28
  const deFieldKey = deField.toLowerCase();
29
29
  mapField = new UIMapField(uiKey, deFieldKey, {
30
30
  isOriginField: true,
31
+ dataType: item.dataType,
31
32
  });
32
33
  }
33
34
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"pickup-view-panel.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,yBACX,SAAQ,iBAAiB,CACvB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,CAEvB,YAAW,0BAA0B;IAErC;;;;;OAKG;IACH,SAAS,EAAG,eAAe,CACzB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IAEF;;;;;;OAMG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAoBpB;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,eAAe,CACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,CACrB,GACA,IAAI;IAqBP;;;;;;;OAOG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAKzC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAIrC"}
1
+ {"version":3,"file":"pickup-view-panel.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,yBACX,SAAQ,iBAAiB,CACvB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,CAEvB,YAAW,0BAA0B;IAErC;;;;;OAKG;IACH,SAAS,EAAG,eAAe,CACzB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IAEF;;;;;;OAMG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAoBpB;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,eAAe,CACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,CACrB,GACA,IAAI;IAqBP;;;;;;;OAOG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAKzC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAIrC"}
@@ -1,3 +1,4 @@
1
+ import { ViewCallTag } from '../../../constant';
1
2
  import { convertNavData } from '../../../utils';
2
3
  import { ControlController } from '../../common';
3
4
  /**
@@ -75,7 +76,7 @@ export class PickupViewPanelController extends ControlController {
75
76
  * @memberof PickupViewPanelController
76
77
  */
77
78
  async getSelectedData() {
78
- const items = await this.embedView.call('GetData');
79
+ const items = await this.embedView.call(ViewCallTag.GET_DATA);
79
80
  return items;
80
81
  }
81
82
  /**
@@ -87,7 +88,7 @@ export class PickupViewPanelController extends ControlController {
87
88
  * @memberof PickupViewPanelController
88
89
  */
89
90
  async getAllData() {
90
- const items = await this.embedView.call('GetAllData');
91
+ const items = await this.embedView.call(ViewCallTag.GET_ALL_DATA);
91
92
  return items;
92
93
  }
93
94
  }
@@ -1,5 +1,5 @@
1
1
  import { recursiveIterate } from '@ibiz-template/core';
2
- import { ViewMode } from '../../../constant';
2
+ import { ViewCallTag, ViewMode } from '../../../constant';
3
3
  import { ControlVO } from '../../../service';
4
4
  import { UIActionUtil } from '../../../ui-action';
5
5
  import { ControlController } from '../../common';
@@ -38,7 +38,7 @@ export class ToolbarController extends ControlController {
38
38
  // 执行界面行为
39
39
  if (item.itemType === 'DEUIACTION') {
40
40
  const actionId = item.uiactionId;
41
- const res = await this.ctx.view.call('GetData');
41
+ const res = await this.ctx.view.call(ViewCallTag.GET_DATA);
42
42
  const data = res || [];
43
43
  const args = this.getEventArgs();
44
44
  args.params = Object.assign(param, args.params);
@@ -38,6 +38,14 @@ export declare class CTX<V extends IViewController = IViewController> {
38
38
  * @type {V}
39
39
  */
40
40
  view: V;
41
+ /**
42
+ * 是否已经销毁
43
+ *
44
+ * @author chitanda
45
+ * @date 2023-09-11 11:09:57
46
+ * @protected
47
+ */
48
+ protected isDestroyed: boolean;
41
49
  /**
42
50
  * CTX事件
43
51
  * @author lxm
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../../../src/controller/ctx/ctx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,KAAK,QAAQ,GAAG;IACd;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,GAAG,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAuCvC,MAAM,CAAC;IAtC1B;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB;;;;;OAKG;IACH,IAAI,EAAG,CAAC,CAAC;IAET;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,oBAA+B;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,kIAAkC;IAE1D;;;;;OAKG;gBACgB,MAAM,CAAC,yKAAK;IAI/B;;;;;;OAMG;IACG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;;;;OAMG;IACG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAKtD;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,WAAW,GAAG,SAAS;IASvE;;;;;;;OAOG;IACH,UAAU,IAAI,eAAe;CAS9B"}
1
+ {"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../../../src/controller/ctx/ctx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,KAAK,QAAQ,GAAG;IACd;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,GAAG,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAgDvC,MAAM,CAAC;IA/C1B;;;;;OAKG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB;;;;;OAKG;IACH,IAAI,EAAG,CAAC,CAAC;IAET;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,UAAS;IAE9B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,oBAA+B;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,kIAAkC;IAE1D;;;;;OAKG;gBACgB,MAAM,CAAC,yKAAK;IAI/B;;;;;;OAMG;IACG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;OAMG;IACG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAOlB;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAKtD;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,WAAW,GAAG,SAAS;IASvE;;;;;;;OAOG;IACH,UAAU,IAAI,eAAe;CAS9B"}
@@ -17,6 +17,14 @@ export class CTX {
17
17
  */
18
18
  constructor(parent) {
19
19
  this.parent = parent;
20
+ /**
21
+ * 是否已经销毁
22
+ *
23
+ * @author chitanda
24
+ * @date 2023-09-11 11:09:57
25
+ * @protected
26
+ */
27
+ this.isDestroyed = false;
20
28
  /**
21
29
  * CTX事件
22
30
  * @author lxm
@@ -54,6 +62,7 @@ export class CTX {
54
62
  this.controllersMap.clear();
55
63
  this.view = null;
56
64
  this.state = null;
65
+ this.isDestroyed = true;
57
66
  }
58
67
  /**
59
68
  * 修改上下文环境状态
@@ -79,6 +88,9 @@ export class CTX {
79
88
  * @date 2023-03-27 01:59:35
80
89
  */
81
90
  endLoading() {
91
+ if (this.isDestroyed) {
92
+ return;
93
+ }
82
94
  this.view.endLoading();
83
95
  }
84
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/de-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,YAAY,GAAG;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CA+CT"}
1
+ {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/de-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,YAAY,GAAG;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CAiDT"}
@@ -30,12 +30,14 @@ export function handleSrcVal(ctx, srcValParams) {
30
30
  // 直接值
31
31
  case 'SRCVALUE':
32
32
  return srcValue;
33
- // 视图参数
34
- case 'VIEWPARAM':
33
+ case 'WEBCONTEXT': // 网页请求上下文
34
+ case 'VIEWPARAM': // 视图参数
35
35
  value = ctx.viewParams;
36
36
  break;
37
- // 应用上下文
38
- case 'APPDATA':
37
+ case 'APPLICATION': // 系统全局对象
38
+ case 'SESSION': // 用户全局对象
39
+ case 'APPDATA': // 应用上下文
40
+ case 'DATACONTEXT': // 数据上下文
39
41
  value = ctx.context;
40
42
  break;
41
43
  // 当前环境参数
@@ -1 +1 @@
1
- {"version":3,"file":"view-base.engine.d.ts","sourceRoot":"","sources":["../../src/engine/view-base.engine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,WAAW;IAmEpC,SAAS,CAAC,IAAI,EAAE,eAAe;IAlE3C;;;;;;;OAOG;IACH,SAAS,KAAK,OAAO,IAAI,kBAAkB,GAAG,SAAS,CAEtD;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAE1D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAE3D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,aAAa,IAAI,kBAAkB,GAAG,SAAS,CAE5D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,eAAe,IAAI,0BAA0B,GAAG,SAAS,CAEtE;IAED;;;;;OAKG;gBACmB,IAAI,EAAE,eAAe;IAIrC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAOzE;;;;;OAKG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,IAAI,KAAK,EAAE;IAI5B;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAgD1C;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAW1C;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBtC"}
1
+ {"version":3,"file":"view-base.engine.d.ts","sourceRoot":"","sources":["../../src/engine/view-base.engine.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,WAAW;IAmEpC,SAAS,CAAC,IAAI,EAAE,eAAe;IAlE3C;;;;;;;OAOG;IACH,SAAS,KAAK,OAAO,IAAI,kBAAkB,GAAG,SAAS,CAEtD;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAE1D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAE3D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,aAAa,IAAI,kBAAkB,GAAG,SAAS,CAE5D;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,eAAe,IAAI,0BAA0B,GAAG,SAAS,CAEtE;IAED;;;;;OAKG;gBACmB,IAAI,EAAE,eAAe;IAIrC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAOzE;;;;;OAKG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,IAAI,KAAK,EAAE;IAI5B;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAgD1C;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAW1C;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBtC"}
@@ -1,4 +1,5 @@
1
1
  import { RuntimeError } from '@ibiz-template/core';
2
+ import { ViewCallTag } from '../constant';
2
3
  /**
3
4
  * 视图引擎基类
4
5
  * @author lxm
@@ -103,7 +104,7 @@ export class ViewEngineBase {
103
104
  // 子类重写
104
105
  }
105
106
  async call(key, _args) {
106
- if (key === 'GetData') {
107
+ if (key === ViewCallTag.GET_DATA) {
107
108
  return this.getData();
108
109
  }
109
110
  return undefined;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 拖拽变更信息
3
+ * @author lxm
4
+ * @date 2023-08-30 04:23:41
5
+ * @export
6
+ * @interface IDragChangeInfo
7
+ */
8
+ export interface IDragChangeInfo {
9
+ /**
10
+ * 变更前的分组标识
11
+ * @author lxm
12
+ * @date 2023-08-30 04:24:25
13
+ * @type {string}
14
+ */
15
+ from: string | number;
16
+ /**
17
+ * 变更后的分组标识
18
+ * @author lxm
19
+ * @date 2023-08-30 04:24:45
20
+ * @type {string}
21
+ */
22
+ to: string | number;
23
+ /**
24
+ * 变更前的索引位置
25
+ * @author lxm
26
+ * @date 2023-08-30 04:25:02
27
+ * @type {number}
28
+ */
29
+ fromIndex: number;
30
+ /**
31
+ * 变更后的索引位置
32
+ * @author lxm
33
+ * @date 2023-08-30 04:24:53
34
+ * @type {number}
35
+ */
36
+ toIndex: number;
37
+ }
38
+ //# sourceMappingURL=i-drag-change-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-drag-change-info.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/common/i-drag-change-info.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -1,2 +1,3 @@
1
1
  export * from './i-enforceable.controller';
2
+ export * from './i-drag-change-info';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
@@ -1 +1,2 @@
1
1
  export * from './i-enforceable.controller';
2
+ export * from './i-drag-change-info';
@@ -9,7 +9,7 @@ import { IMDControlController } from './i-md-control.controller';
9
9
  * @interface IDataViewControlController
10
10
  * @extends {IMDControlController<IDEDataView, IDataViewControlState, IDataViewControlEvent>}
11
11
  */
12
- export interface IDataViewControlController extends IMDControlController<IDEDataView, IDataViewControlState, IDataViewControlEvent> {
12
+ export interface IDataViewControlController<T extends IDEDataView = IDEDataView, S extends IDataViewControlState = IDataViewControlState, E extends IDataViewControlEvent = IDataViewControlEvent> extends IMDControlController<T, S, E> {
13
13
  /**
14
14
  * 加载更多
15
15
  *