@ibiz-template/runtime 0.5.3-beta.1 → 0.5.3-beta.10

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 (188) hide show
  1. package/dist/index.esm.js +1855 -648
  2. package/dist/index.system.min.js +1 -1
  3. package/out/app-hub.d.ts +12 -2
  4. package/out/app-hub.d.ts.map +1 -1
  5. package/out/app-hub.js +22 -2
  6. package/out/application.js +1 -1
  7. package/out/command/app/open-app-view/open-app-view.d.ts.map +1 -1
  8. package/out/command/app/open-app-view/open-app-view.js +8 -1
  9. package/out/controller/common/editor/editor.controller.d.ts +24 -0
  10. package/out/controller/common/editor/editor.controller.d.ts.map +1 -1
  11. package/out/controller/common/editor/editor.controller.js +50 -0
  12. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  13. package/out/controller/common/view/view.controller.js +3 -2
  14. package/out/controller/constant/control/index.d.ts +1 -0
  15. package/out/controller/constant/control/index.d.ts.map +1 -1
  16. package/out/controller/constant/control/index.js +1 -0
  17. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts +5 -0
  18. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts.map +1 -0
  19. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.js +6 -0
  20. package/out/controller/control/chart/chart.controller.js +1 -1
  21. package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
  22. package/out/controller/control/form/form/form.controller.js +4 -1
  23. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  24. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +4 -0
  25. package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts +8 -0
  26. package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts.map +1 -1
  27. package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.js +10 -0
  28. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts +8 -0
  29. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts.map +1 -1
  30. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.js +15 -0
  31. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts +7 -0
  32. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts.map +1 -1
  33. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.js +10 -0
  34. package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
  35. package/out/controller/control/grid/grid/grid.service.js +1 -10
  36. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +7 -0
  37. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
  38. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +11 -2
  39. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts +0 -7
  40. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
  41. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +0 -9
  42. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +1 -0
  43. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -1
  44. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +1 -0
  45. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +10 -0
  46. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts.map +1 -1
  47. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +12 -0
  48. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts +34 -0
  49. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts.map +1 -1
  50. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.js +68 -0
  51. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts +205 -0
  52. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts.map +1 -0
  53. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.js +345 -0
  54. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts +3 -0
  55. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts.map +1 -1
  56. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.js +14 -1
  57. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +16 -8
  58. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -1
  59. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -12
  60. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +59 -0
  61. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  62. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +238 -1
  63. package/out/de-logic/utils/handle-src-val.d.ts +15 -0
  64. package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
  65. package/out/de-logic/utils/handle-src-val.js +10 -1
  66. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +4 -3
  67. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  68. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +23 -1
  69. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
  70. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +17 -0
  71. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
  72. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +60 -2
  73. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
  74. package/out/interface/provider/i-async-action.provider.d.ts +3 -2
  75. package/out/interface/provider/i-async-action.provider.d.ts.map +1 -1
  76. package/out/interface/service/i-transaction/i-transaction.d.ts +83 -0
  77. package/out/interface/service/i-transaction/i-transaction.d.ts.map +1 -0
  78. package/out/interface/service/i-transaction/i-transaction.js +1 -0
  79. package/out/interface/service/index.d.ts +1 -0
  80. package/out/interface/service/index.d.ts.map +1 -1
  81. package/out/interface/service/service/i-app-de.service.d.ts +9 -3
  82. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  83. package/out/plugin/index.d.ts +1 -1
  84. package/out/plugin/index.d.ts.map +1 -1
  85. package/out/plugin/remote-plugin-item/remote-plugin-item.d.ts +46 -0
  86. package/out/plugin/remote-plugin-item/remote-plugin-item.d.ts.map +1 -1
  87. package/out/register/helper/app-menu-item-register.d.ts.map +1 -1
  88. package/out/register/helper/app-menu-item-register.js +1 -6
  89. package/out/register/helper/panel-item-register.d.ts.map +1 -1
  90. package/out/register/helper/panel-item-register.js +36 -30
  91. package/out/service/dto/method.dto.d.ts +1 -12
  92. package/out/service/dto/method.dto.d.ts.map +1 -1
  93. package/out/service/dto/method.dto.js +8 -20
  94. package/out/service/mqtt/mqtt.service.js +2 -2
  95. package/out/service/service/auth/v7-auth.service.d.ts.map +1 -1
  96. package/out/service/service/auth/v7-auth.service.js +2 -0
  97. package/out/service/service/entity/de.service.d.ts +1 -2
  98. package/out/service/service/entity/de.service.d.ts.map +1 -1
  99. package/out/service/service/entity/de.service.js +5 -2
  100. package/out/service/service/entity/method/de-action.d.ts +13 -1
  101. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  102. package/out/service/service/entity/method/de-action.js +167 -59
  103. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  104. package/out/service/service/entity/method/fetch.js +24 -21
  105. package/out/service/service/entity/method/method-renturn.d.ts.map +1 -1
  106. package/out/service/service/entity/method/method-renturn.js +6 -0
  107. package/out/service/utils/de-cache/de-cache.d.ts +11 -1
  108. package/out/service/utils/de-cache/de-cache.d.ts.map +1 -1
  109. package/out/service/utils/de-cache/de-cache.js +122 -18
  110. package/out/service/utils/de-dq-cond/ps-model-cond-engine-base.d.ts.map +1 -1
  111. package/out/service/utils/de-dq-cond/ps-model-cond-engine-base.js +4 -0
  112. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +1 -1
  113. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  114. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +25 -26
  115. package/out/service/utils/res-path/res-path.d.ts +2 -2
  116. package/out/service/utils/res-path/res-path.d.ts.map +1 -1
  117. package/out/service/utils/res-path/res-path.js +1 -1
  118. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts +6 -0
  119. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  120. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +93 -41
  121. package/out/ui-action/provider/front-ui-action-provider.d.ts +1 -1
  122. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  123. package/out/ui-action/provider/front-ui-action-provider.js +5 -1
  124. package/out/ui-logic/ui-logic-node/debug-param-node/debug-param-node.js +1 -1
  125. package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts.map +1 -1
  126. package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.js +0 -1
  127. package/out/utils/script/script-function.js +1 -1
  128. package/out/utils/ui-domain/transaction.d.ts +66 -0
  129. package/out/utils/ui-domain/transaction.d.ts.map +1 -0
  130. package/out/utils/ui-domain/transaction.js +94 -0
  131. package/out/utils/ui-domain/ui-domain.d.ts +50 -6
  132. package/out/utils/ui-domain/ui-domain.d.ts.map +1 -1
  133. package/out/utils/ui-domain/ui-domain.js +68 -9
  134. package/package.json +5 -5
  135. package/src/app-hub.ts +27 -2
  136. package/src/application.ts +1 -1
  137. package/src/command/app/open-app-view/open-app-view.ts +8 -1
  138. package/src/controller/common/editor/editor.controller.ts +54 -0
  139. package/src/controller/common/view/view.controller.ts +3 -2
  140. package/src/controller/constant/control/index.ts +1 -0
  141. package/src/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.ts +5 -0
  142. package/src/controller/control/chart/chart.controller.ts +1 -1
  143. package/src/controller/control/form/form/form.controller.ts +11 -1
  144. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +4 -0
  145. package/src/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.ts +14 -0
  146. package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.ts +16 -0
  147. package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.ts +9 -1
  148. package/src/controller/control/grid/grid/grid.service.ts +1 -11
  149. package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +12 -2
  150. package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +0 -10
  151. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +1 -0
  152. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +22 -0
  153. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts +88 -2
  154. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts +522 -0
  155. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts +18 -1
  156. package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +43 -12
  157. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +296 -1
  158. package/src/de-logic/utils/handle-src-val.ts +29 -1
  159. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +4 -3
  160. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +27 -2
  161. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +15 -1
  162. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +64 -2
  163. package/src/interface/provider/i-async-action.provider.ts +3 -2
  164. package/src/interface/service/i-transaction/i-transaction.ts +88 -0
  165. package/src/interface/service/index.ts +4 -0
  166. package/src/interface/service/service/i-app-de.service.ts +10 -3
  167. package/src/plugin/index.ts +4 -1
  168. package/src/plugin/remote-plugin-item/remote-plugin-item.ts +43 -0
  169. package/src/register/helper/app-menu-item-register.ts +1 -5
  170. package/src/register/helper/panel-item-register.ts +43 -37
  171. package/src/service/dto/method.dto.ts +7 -20
  172. package/src/service/mqtt/mqtt.service.ts +2 -2
  173. package/src/service/service/auth/v7-auth.service.ts +2 -0
  174. package/src/service/service/entity/de.service.ts +7 -9
  175. package/src/service/service/entity/method/de-action.ts +186 -64
  176. package/src/service/service/entity/method/fetch.ts +28 -29
  177. package/src/service/service/entity/method/method-renturn.ts +6 -0
  178. package/src/service/utils/de-cache/de-cache.ts +128 -19
  179. package/src/service/utils/de-dq-cond/ps-model-cond-engine-base.ts +4 -0
  180. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +24 -32
  181. package/src/service/utils/res-path/res-path.ts +2 -2
  182. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +111 -46
  183. package/src/ui-action/provider/front-ui-action-provider.ts +10 -1
  184. package/src/ui-logic/ui-logic-node/debug-param-node/debug-param-node.ts +1 -1
  185. package/src/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.ts +0 -1
  186. package/src/utils/script/script-function.ts +1 -1
  187. package/src/utils/ui-domain/transaction.ts +100 -0
  188. package/src/utils/ui-domain/ui-domain.ts +73 -9
@@ -1,8 +1,14 @@
1
- import { recursiveIterate } from '@ibiz-template/core';
1
+ import { RuntimeError, awaitTimeout, recursiveIterate, } from '@ibiz-template/core';
2
+ import { clone } from 'ramda';
2
3
  import { getTreeGridExColumnProvider } from '../../../register';
3
4
  import { TreeGridExService } from './tree-grid-ex.service';
4
5
  import { TreeController } from '../tree/tree.controller';
5
6
  import { TreeGridExRowState } from './tree-grid-ex-row.state';
7
+ import { Srfuf } from '../../../service';
8
+ import { calcDeCodeNameById } from '../../../model';
9
+ import { TreeGridExNotifyState } from '../../constant';
10
+ import { handleAllSettled } from '../../../utils';
11
+ import { getDefaultValue, isValueChange } from '../../utils';
6
12
  /**
7
13
  * 树表格(增强)部件控制器
8
14
  *
@@ -53,6 +59,9 @@ export class TreeGridExController extends TreeController {
53
59
  */
54
60
  this.uaColumns = {};
55
61
  }
62
+ get _evt() {
63
+ return this.evt;
64
+ }
56
65
  /**
57
66
  * 是否有配置宽度自适应列
58
67
  *
@@ -72,11 +81,23 @@ export class TreeGridExController extends TreeController {
72
81
  get overflowMode() {
73
82
  return ibiz.config.grid.overflowMode;
74
83
  }
84
+ /**
85
+ * 允许使用行编辑
86
+ * @author lxm
87
+ * @date 2023-08-17 02:52:07
88
+ * @readonly
89
+ * @type {boolean}
90
+ */
91
+ get allowRowEdit() {
92
+ return this.state.rowEditOpen;
93
+ }
75
94
  initState() {
76
95
  super.initState();
77
96
  this.state.columnStates = [];
78
97
  this.state.rootNodes = [];
79
98
  this.state.rows = {};
99
+ // this.state.rowEditOpen = false;
100
+ this.state.rowEditOpen = true;
80
101
  }
81
102
  async onCreated() {
82
103
  await super.onCreated();
@@ -209,4 +230,220 @@ export class TreeGridExController extends TreeController {
209
230
  convertColumnCaption(this.model.detreeColumns);
210
231
  }
211
232
  }
233
+ async save(nodeData) {
234
+ if (this.state.isSimple) {
235
+ ibiz.log.debug('简单模式,不保存');
236
+ return;
237
+ }
238
+ if (nodeData._nodeType !== 'DE') {
239
+ throw new RuntimeError('非实体节点数据不能保存');
240
+ }
241
+ const rowState = this.state.rows[nodeData._uuid];
242
+ if (!rowState) {
243
+ throw new RuntimeError('行数据不存在');
244
+ }
245
+ if (!rowState.modified) {
246
+ ibiz.log.debug('值没有发生改变');
247
+ return;
248
+ }
249
+ // const isValid = await this.validate(rowState);
250
+ // if (!isValid) {
251
+ // throw new RuntimeError('行数据校验不通过,保存取消');
252
+ // }
253
+ // 如果数据正在处理中,则延迟保存
254
+ if (rowState.processing) {
255
+ await awaitTimeout(500, this.save.bind(this), [nodeData]);
256
+ return;
257
+ }
258
+ const nodeModel = this.getNodeModel(nodeData._nodeId);
259
+ const { appDataEntityId } = nodeModel;
260
+ const isCreate = nodeData._deData.srfuf === Srfuf.CREATE;
261
+ if (isCreate) {
262
+ throw new RuntimeError('暂不支持新建');
263
+ }
264
+ const methodAction = 'update'; // todo补了模型从模型取
265
+ // 处理接口
266
+ const deName = calcDeCodeNameById(appDataEntityId);
267
+ const tempContext = this.context.clone();
268
+ tempContext[deName] = nodeData._deData.srfkey;
269
+ const app = ibiz.hub.getApp(this.context.srfappid);
270
+ let res;
271
+ try {
272
+ res = await app.deService.exec(appDataEntityId, methodAction, tempContext, nodeData._deData);
273
+ }
274
+ catch (error) {
275
+ await this._evt.emit('onSaveError', undefined);
276
+ this.actionNotification(`${isCreate ? 'CREATE' : 'UPDATE'}ERROR`, {
277
+ error: error,
278
+ data: rowState.data,
279
+ });
280
+ throw error;
281
+ }
282
+ // 后续处理
283
+ rowState.data._deData = res.data;
284
+ rowState.modified = false;
285
+ this.gridStateNotify(rowState, TreeGridExNotifyState.SAVE);
286
+ await this._evt.emit('onSaveSuccess', undefined);
287
+ }
288
+ async saveAll() {
289
+ const needSaveData = Object.values(this.state.rows)
290
+ .filter(row => row.modified)
291
+ .map(row => row.data);
292
+ if (!needSaveData.length) {
293
+ return;
294
+ }
295
+ await handleAllSettled(needSaveData.map(data => {
296
+ return this.save(data);
297
+ }));
298
+ }
299
+ /**
300
+ * 树表格状态变更通知
301
+ *
302
+ * @author lxm
303
+ * @date 2022-09-20 18:09:07
304
+ */
305
+ gridStateNotify(row, state) {
306
+ // 通知表格编辑列
307
+ Object.values(this.columns).forEach(column => {
308
+ column.gridStateNotify(row, state);
309
+ });
310
+ }
311
+ /**
312
+ * 设置行属性的值
313
+ *
314
+ * @author lxm
315
+ * @date 2022-08-24 10:08:40
316
+ * @param {GridRowState} row 行状态控制器
317
+ * @param {unknown} value 要设置的值
318
+ * @param {string} name 要设置的表单数据的属性名称
319
+ */
320
+ async setRowValue(row, name, value) {
321
+ if (Object.prototype.hasOwnProperty.call(row.data, name) &&
322
+ !isValueChange(row.data[name], value)) {
323
+ // `表格行数据里没有属性${name}或者${name}的值未发生改变`
324
+ return;
325
+ }
326
+ // 改变值
327
+ row.data[name] = value;
328
+ row.modified = true;
329
+ row.processing = true;
330
+ try {
331
+ await this.dataChangeNotify(row, [name]);
332
+ // await this._evt.emit('onGridDataChange', {
333
+ // data: this.state.rows.map(_row => {
334
+ // return _row.data;
335
+ // }),
336
+ // });
337
+ }
338
+ finally {
339
+ row.processing = false;
340
+ }
341
+ }
342
+ /**
343
+ * 通知所有表格编辑项成员表格编辑项数据变更
344
+ *
345
+ * @author lxm
346
+ * @date 2022-09-20 22:09:49
347
+ * @param {GridRowState} row 行数据
348
+ * @param {string[]} names 更新的属性
349
+ */
350
+ async dataChangeNotify(row, names) {
351
+ // 通知所有编辑项去处理编辑项相关逻辑
352
+ await handleAllSettled(Object.values(this.columns).map(async (column) => {
353
+ return column.dataChangeNotify(row, names);
354
+ }));
355
+ }
356
+ async toggleRowEdit() {
357
+ this.state.rowEditOpen = !this.state.rowEditOpen;
358
+ }
359
+ /**
360
+ * 计算默认值并返回一个对象,对象里的属性就是要填充的默认值
361
+ * 没有的属性就是不需要填充默认值的属性
362
+ * @author lxm
363
+ * @date 2023-09-18 04:01:06
364
+ * @param {IData} data
365
+ * @param {boolean} isCreate
366
+ * @return {*} {IData}
367
+ */
368
+ calcDefaultValue(data, isCreate) {
369
+ const result = {};
370
+ Object.values(this.fieldColumns).forEach(c => {
371
+ const nodeColumn = c.nodeColumnControllerMap.get(data._nodeId);
372
+ if (!nodeColumn || !nodeColumn.nodeEditItem) {
373
+ return;
374
+ }
375
+ const { createDV, createDVT, updateDV, updateDVT } = nodeColumn.nodeEditItem;
376
+ const valueType = isCreate ? createDVT : updateDVT;
377
+ const defaultValue = isCreate ? createDV : updateDV;
378
+ const defaultVal = getDefaultValue({
379
+ name: c.name,
380
+ valueType,
381
+ defaultValue,
382
+ valueFormat: nodeColumn.valueFormat,
383
+ }, { data, context: this.context, params: this.params });
384
+ if (defaultVal !== undefined) {
385
+ result[c.name] = defaultVal;
386
+ }
387
+ });
388
+ return result;
389
+ }
390
+ /**
391
+ * 切换单行的编辑状态
392
+ * @author lxm
393
+ * @date 2023-08-08 06:45:54
394
+ * @param {GridRowState} row
395
+ * @param {boolean} [editable]
396
+ */
397
+ async switchRowEdit(row, editable, isSave = true) {
398
+ if (!this.allowRowEdit) {
399
+ return;
400
+ }
401
+ if (row.data._nodeType !== 'DE') {
402
+ return;
403
+ }
404
+ const toState = editable === undefined ? !row.showRowEdit : editable;
405
+ // 一样的状态不处理
406
+ if (row.showRowEdit === toState) {
407
+ return;
408
+ }
409
+ if (toState === false) {
410
+ // * 处理关闭行编辑
411
+ if (isSave) {
412
+ // 校验并保存
413
+ await this.save(row.data);
414
+ }
415
+ else if (row.data._deData.srfuf === Srfuf.CREATE) {
416
+ // 新建的行取消时删除这一行的数据
417
+ row.showRowEdit = false;
418
+ this._evt.emit('onRowEditChange', { row });
419
+ return this.remove({ data: [row.data], silent: true });
420
+ }
421
+ else if (row.cacheData) {
422
+ // 取消的时候,还原编辑前的数据
423
+ row.data = row.cacheData;
424
+ delete row.cacheData;
425
+ }
426
+ }
427
+ else {
428
+ // * 处理显示行编辑
429
+ // 如果已经有一行处于行编辑了,不开起另一行。
430
+ const editingRow = Object.values(this.state.rows).find(item => item.showRowEdit);
431
+ if (editingRow) {
432
+ throw new RuntimeError('同时只能有一行开启行编辑');
433
+ }
434
+ if (row.data._deData.srfuf === Srfuf.UPDATE) {
435
+ // 打开时先缓存一下
436
+ row.cacheData = clone(row.data);
437
+ // 填充更新默认值
438
+ const defaultVal = this.calcDefaultValue(row.data, false);
439
+ Object.assign(row.data, defaultVal);
440
+ }
441
+ }
442
+ // 修改行的编辑状态和编辑列的编辑状态。
443
+ row.showRowEdit = toState;
444
+ Object.values(this.fieldColumns).forEach(column => {
445
+ row.editColStates[column.name].editable = toState;
446
+ });
447
+ this._evt.emit('onRowEditChange', { row });
448
+ }
212
449
  }
@@ -16,6 +16,21 @@ type SrcValParams = {
16
16
  * 源参数对象id
17
17
  */
18
18
  srcDELogicParamId?: string;
19
+ /**
20
+ * 目标逻辑参数
21
+ *
22
+ */
23
+ dstDELogicParamId?: string;
24
+ /**
25
+ * 目标属性名称
26
+ *
27
+ */
28
+ dstFieldName?: string;
29
+ /**
30
+ * 表达式
31
+ *
32
+ */
33
+ expression?: string;
19
34
  };
20
35
  /**
21
36
  * 解析模型并获取源参数或其中的某个属性
@@ -1 +1 @@
1
- {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/de-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAGA,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,CAiET"}
1
+ {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/de-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAGA,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;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CA2ET"}
@@ -11,7 +11,7 @@ import { ScriptFactory } from '../../utils';
11
11
  * @return {*}
12
12
  */
13
13
  export function handleSrcVal(ctx, srcValParams) {
14
- const { srcDELogicParamId, srcFieldName, srcValue } = srcValParams;
14
+ const { srcDELogicParamId, srcFieldName, srcValue, expression } = srcValParams;
15
15
  // 没有源值类型就是逻辑参数
16
16
  const srcValueType = srcValParams.srcValueType || 'SRCDLPARAM';
17
17
  // 取属性值
@@ -49,6 +49,15 @@ export function handleSrcVal(ctx, srcValParams) {
49
49
  case 'ENVPARAM':
50
50
  value = clone(ibiz.env);
51
51
  break;
52
+ case 'EXPRESSION':
53
+ if (!expression) {
54
+ throw new ModelError(srcValParams, `表达式为空`);
55
+ }
56
+ value = ScriptFactory.execScriptFn(ctx, expression, {
57
+ singleRowReturn: true,
58
+ isAsync: false,
59
+ });
60
+ break;
52
61
  default:
53
62
  throw new ModelError(srcValParams, `暂未支持源值类型${srcValueType}`);
54
63
  }
@@ -81,11 +81,12 @@ export interface IAppHubService {
81
81
  * 设置应用视图所属应用,兼容识别视图 codeName 或 id
82
82
  *
83
83
  * @author chitanda
84
- * @date 2023-04-23 15:04:56
84
+ * @date 2024-01-15 15:01:39
85
85
  * @param {string} tag
86
- * @param {string} [appId=ibiz.env.appId]
86
+ * @param {string} [appId]
87
+ * @param {number} [priority]
87
88
  */
88
- setAppView(tag: string, appId?: string): void;
89
+ setAppView(tag: string, appId?: string, priority?: number): void;
89
90
  /**
90
91
  * 应用视图是否已注册
91
92
  *
@@ -1 +1 @@
1
- {"version":3,"file":"i-app-hub-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-hub-service/i-app-hub-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;;;;OAMG;IACH,WAAW,EAAE,cAAc,CAAC;IAE5B;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAE1B;;;;;;OAMG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvC;;;;;;;OAOG;IACH,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElE;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAEjD;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B;;;;;;;;;OASG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"i-app-hub-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-hub-service/i-app-hub-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;;;;OAMG;IACH,WAAW,EAAE,cAAc,CAAC;IAE5B;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAE1B;;;;;;OAMG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvC;;;;;;;OAOG;IACH,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElE;;;;;;;;OAQG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjE;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAEjD;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B;;;;;;;;;OASG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,GAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -1,6 +1,6 @@
1
1
  import { IDETreeGridEx } from '@ibiz/model-core';
2
2
  import { ITreeGridExEvent } from '../../event';
3
- import { ITreeGridExState } from '../../state';
3
+ import { ITreeGridExState, ITreeNodeData } from '../../state';
4
4
  import { ITreeController } from './i-tree.controller';
5
5
  /**
6
6
  * 树表格(增强)部件控制器
@@ -12,5 +12,27 @@ import { ITreeController } from './i-tree.controller';
12
12
  * @extends {ITreeController<T, S, E>}
13
13
  */
14
14
  export interface ITreeGridExController<T extends IDETreeGridEx = IDETreeGridEx, S extends ITreeGridExState = ITreeGridExState, E extends ITreeGridExEvent = ITreeGridExEvent> extends ITreeController<T, S, E> {
15
+ /**
16
+ * 保存单条数据
17
+ *
18
+ * @author zk
19
+ * @date 2023-07-31 02:07:52
20
+ * @memberof IGridController
21
+ */
22
+ save(data: ITreeNodeData): Promise<void>;
23
+ /**
24
+ * 保存表格所有数据
25
+ *
26
+ * @author zk
27
+ * @date 2023-07-31 02:07:52
28
+ * @memberof IGridController
29
+ */
30
+ saveAll(): Promise<void>;
31
+ /**
32
+ * 切换表格的行编辑开启关闭状态
33
+ * @author lxm
34
+ * @date 2023-08-16 10:18:14
35
+ */
36
+ toggleRowEdit(): void;
15
37
  }
16
38
  //# sourceMappingURL=i-tree-grid-ex.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-tree-grid-ex.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-tree-grid-ex.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB,CACpC,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAC7C,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAC7C,SAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAAG"}
1
+ {"version":3,"file":"i-tree-grid-ex.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-tree-grid-ex.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB,CACpC,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAC7C,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAC7C,SAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;OAIG;IACH,aAAa,IAAI,IAAI,CAAC;CACvB"}
@@ -1,3 +1,5 @@
1
+ import { ITreeGridExRowState } from '../../state';
2
+ import { EventBase } from '../argument';
1
3
  import { ITreeEvent } from './i-tree.event';
2
4
  /**
3
5
  * 树表格(增强)部件事件
@@ -9,5 +11,20 @@ import { ITreeEvent } from './i-tree.event';
9
11
  * @extends {IMDControlEvent}
10
12
  */
11
13
  export interface ITreeGridExEvent extends ITreeEvent {
14
+ /**
15
+ * 表格行编辑切换事件
16
+ * @author lxm
17
+ * @date 2023-03-26 06:15:06
18
+ * @param {emitArgs} undefined
19
+ * @return {*} {Promise<void>}
20
+ */
21
+ onRowEditChange: {
22
+ event: {
23
+ row: ITreeGridExRowState;
24
+ } & EventBase;
25
+ emitArgs: {
26
+ row: ITreeGridExRowState;
27
+ };
28
+ };
12
29
  }
13
30
  //# sourceMappingURL=i-tree-grid-ex.event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-tree-grid-ex.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-tree-grid-ex.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;CAAG"}
1
+ {"version":3,"file":"i-tree-grid-ex.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-tree-grid-ex.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD;;;;;;OAMG;IACH,eAAe,EAAE;QACf,KAAK,EAAE;YAAE,GAAG,EAAE,mBAAmB,CAAA;SAAE,GAAG,SAAS,CAAC;QAChD,QAAQ,EAAE;YAAE,GAAG,EAAE,mBAAmB,CAAA;SAAE,CAAC;KACxC,CAAC;CACH"}
@@ -30,6 +30,13 @@ export interface ITreeGridExState extends ITreeState {
30
30
  rows: {
31
31
  [p: string]: ITreeGridExRowState;
32
32
  };
33
+ /**
34
+ * 开启表格行编辑
35
+ * @author lxm
36
+ * @date 2023-08-17 02:38:18
37
+ * @type {boolean}
38
+ */
39
+ rowEditOpen: boolean;
33
40
  }
34
41
  /**
35
42
  * 树表格(增强)行状态
@@ -47,14 +54,65 @@ export interface ITreeGridExRowState {
47
54
  */
48
55
  data: ITreeNodeData;
49
56
  /**
50
- * 操作列状态(p是操作列的标识)
57
+ * 错误信息集合,p是对应属性名称
58
+ *
59
+ * @author lxm
60
+ * @date 2022-09-06 15:09:54
61
+ * @type {({ [p: string]: string | null })}
62
+ */
63
+ errors: {
64
+ [p: string]: string | null;
65
+ };
66
+ /**
67
+ * 可能是以下两种类型状态
68
+ * - 操作列按钮状态(p是操作列的标识)
69
+ * - 属性列的内置界面行为组状态(p是属性列的标识)
51
70
  *
52
71
  * @author lxm
53
72
  * @date 2022-09-07 22:09:38
54
73
  * @type {({ [p: string]: IButtonContainerState })}
55
74
  */
56
- uaColStates: {
75
+ columnActionsStates: {
57
76
  [p: string]: IButtonContainerState;
58
77
  };
78
+ /**
79
+ * 编辑列的状态
80
+ *
81
+ * @author lxm
82
+ * @date 2022-09-20 15:09:58
83
+ * @type {({ [p: string]: { disabled: boolean } })}
84
+ */
85
+ editColStates: {
86
+ [p: string]: {
87
+ disabled: boolean;
88
+ readonly: boolean;
89
+ editable: boolean;
90
+ required: boolean;
91
+ };
92
+ };
93
+ /**
94
+ * 是否显示行编辑
95
+ *
96
+ * @author lxm
97
+ * @date 2022-09-05 22:09:23
98
+ * @type {boolean}
99
+ */
100
+ showRowEdit: boolean;
101
+ /**
102
+ * 是否被修改过
103
+ *
104
+ * @author lxm
105
+ * @date 2022-11-02 22:11:33
106
+ * @type {boolean}
107
+ */
108
+ modified: boolean;
109
+ /**
110
+ * 是否正在处理中(动态控制,值规则,表单项更新等逻辑中)
111
+ * @author lxm
112
+ * @date 2023-03-06 08:00:22
113
+ * @type {boolean}
114
+ * @memberof GridRowState
115
+ */
116
+ processing: boolean;
59
117
  }
60
118
  //# sourceMappingURL=i-tree-grid-ex.state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-tree-grid-ex.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-tree-grid-ex.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD;;;;;;;OAOG;IACH,YAAY,EAAE,YAAY,EAAE,CAAC;IAE7B;;;;;;OAMG;IACH,IAAI,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;CACrD"}
1
+ {"version":3,"file":"i-tree-grid-ex.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-tree-grid-ex.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD;;;;;;;OAOG;IACH,YAAY,EAAE,YAAY,EAAE,CAAC;IAE7B;;;;;;OAMG;IACH,IAAI,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;IAE3C;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAEvC;;;;;;;;OAQG;IACH,mBAAmB,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;IAE5D;;;;;;OAMG;IACH,aAAa,EAAE;QACb,CAAC,CAAC,EAAE,MAAM,GAAG;YACX,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;IAEF;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB"}
@@ -18,10 +18,11 @@ export interface IAsyncActionProvider {
18
18
  /**
19
19
  * 点击事件
20
20
  * @author lxm
21
- * @date 2023-11-14 09:30:39
21
+ * @date 2024-01-15 12:47:22
22
22
  * @param {IPortalAsyncAction} asyncAction
23
23
  * @param {MouseEvent} event
24
+ * @return {*} {boolean} 返回是否隐藏消息popover
24
25
  */
25
- onClick(asyncAction: IPortalAsyncAction, event: MouseEvent): void;
26
+ onClick(asyncAction: IPortalAsyncAction, event: MouseEvent): boolean;
26
27
  }
27
28
  //# sourceMappingURL=i-async-action.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-async-action.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/i-async-action.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IAEH,SAAS,EAAE,GAAG,CAAC;IAEf;;;;;;OAMG;IACH,OAAO,CAAC,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnE"}
1
+ {"version":3,"file":"i-async-action.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/i-async-action.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IAEH,SAAS,EAAE,GAAG,CAAC;IAEf;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACtE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * 事务状态
3
+ *
4
+ * @author chitanda
5
+ * @date 2024-01-17 15:01:18
6
+ * @export
7
+ * @interface ITransactionState
8
+ */
9
+ export interface ITransactionState {
10
+ /**
11
+ * 是否在事务中
12
+ *
13
+ * @author chitanda
14
+ * @date 2024-01-17 15:01:24
15
+ * @type {boolean}
16
+ */
17
+ isOpen: boolean;
18
+ /**
19
+ * 当前事务是否有变更,如果有变更,提交事务时会触发数据更新并且不可以直接关闭事务
20
+ *
21
+ * @author chitanda
22
+ * @date 2024-01-17 15:01:20
23
+ * @type {boolean}
24
+ */
25
+ isChange: boolean;
26
+ }
27
+ /**
28
+ * 本地包数据事务,用于界面域下简单数据事务
29
+ *
30
+ * @author chitanda
31
+ * @date 2024-01-17 15:01:46
32
+ * @export
33
+ * @interface ITransaction
34
+ */
35
+ export interface ITransaction {
36
+ /**
37
+ * 事务状态
38
+ *
39
+ * @author chitanda
40
+ * @date 2024-01-17 15:01:46
41
+ * @type {ITransactionState}
42
+ */
43
+ readonly state: ITransactionState;
44
+ /**
45
+ * 开启事务
46
+ *
47
+ * @description 事务开启后,所有的数据操作都会被缓存,直到事务提交或者回滚
48
+ * @author chitanda
49
+ * @date 2024-01-17 15:01:46
50
+ */
51
+ open(): void;
52
+ /**
53
+ * 新增变更事务回调,事务提交时会按照添加顺序倒序执行
54
+ *
55
+ * @author chitanda
56
+ * @date 2024-01-17 16:01:25
57
+ * @param {string} id
58
+ * @param {() => void} commit
59
+ */
60
+ change(id: string, commit: () => void): void;
61
+ /**
62
+ * 提交事务
63
+ *
64
+ * @author chitanda
65
+ * @date 2024-01-17 15:01:05
66
+ */
67
+ commit(): void;
68
+ /**
69
+ * 回滚事务
70
+ *
71
+ * @description 回滚事务会清空所有变更,不会触发数据更新
72
+ * @date 2024-01-17 15:01:05
73
+ */
74
+ rollback(): void;
75
+ /**
76
+ * 关闭事务
77
+ *
78
+ * @author chitanda
79
+ * @date 2024-01-17 15:01:02
80
+ */
81
+ close(): void;
82
+ }
83
+ //# sourceMappingURL=i-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-transaction.d.ts","sourceRoot":"","sources":["../../../../src/interface/service/i-transaction/i-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAElC;;;;;;OAMG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAE7C;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;;;;OAKG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -1,4 +1,5 @@
1
1
  export type { CodeListItem } from './code-list-item/code-list-item';
2
2
  export type { IDataEntity } from './i-data-entity/i-data-entity';
3
+ export type { ITransaction, ITransactionState, } from './i-transaction/i-transaction';
3
4
  export type * from './service';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interface/service/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,mBAAmB,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interface/service/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,mBAAmB,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { IHttpResponse, IPortalAsyncAction } from '@ibiz-template/core';
2
- import { IAppDEMethodDTO } from '@ibiz/model-core';
2
+ import { IAppDEMethodDTO, IAppDataEntity } from '@ibiz/model-core';
3
3
  import { DECache } from '../../../service/utils';
4
4
  import { IFileService } from './i-file.service';
5
5
  import { IWorkFlowService } from './i-wf.service';
@@ -56,6 +56,14 @@ export interface IAppDEService {
56
56
  * @type {IFileService}
57
57
  */
58
58
  readonly file: IFileService;
59
+ /**
60
+ * 当前实体服务对应的实体模型
61
+ *
62
+ * @author chitanda
63
+ * @date 2024-01-17 17:01:16
64
+ * @type {IAppDataEntity}
65
+ */
66
+ readonly model: IAppDataEntity;
59
67
  /**
60
68
  * 执行实体服务方法
61
69
  *
@@ -259,13 +267,11 @@ export interface IAppDEService {
259
267
  * @param {IAppDEMethodDTO} [dto] dto模型对象
260
268
  * @param {{
261
269
  * isLocalMode?: boolean; 是否是临时模式
262
- * inSelfLoop?: boolean; 是否是自关系递归
263
270
  * }} [opts]
264
271
  * @return {*} {MethodDto}
265
272
  */
266
273
  createMethodDto(dto?: IAppDEMethodDTO, opts?: {
267
274
  isLocalMode?: boolean;
268
- inSelfLoop?: boolean;
269
275
  }): MethodDto;
270
276
  }
271
277
  //# sourceMappingURL=i-app-de.service.d.ts.map