@ibiz-template/runtime 0.4.12 → 0.4.13

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 (136) hide show
  1. package/dist/index.esm.js +1005 -190
  2. package/dist/index.system.min.js +2 -2
  3. package/out/config/global-config.js +1 -1
  4. package/out/controller/common/base.controller.d.ts +7 -0
  5. package/out/controller/common/base.controller.d.ts.map +1 -1
  6. package/out/controller/common/base.controller.js +10 -0
  7. package/out/controller/common/view/view.controller.d.ts +7 -0
  8. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  9. package/out/controller/common/view/view.controller.js +11 -0
  10. package/out/controller/control/app-menu/app-menu.controller.d.ts +7 -0
  11. package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
  12. package/out/controller/control/app-menu/app-menu.controller.js +22 -0
  13. package/out/controller/control/caption-bar/caption-bar.controller.d.ts.map +1 -1
  14. package/out/controller/control/caption-bar/caption-bar.controller.js +1 -6
  15. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +5 -1
  17. package/out/controller/control/gantt/gantt.controller.d.ts +146 -2
  18. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  19. package/out/controller/control/gantt/gantt.controller.js +270 -0
  20. package/out/controller/control/grid/grid/grid-row.state.d.ts +11 -0
  21. package/out/controller/control/grid/grid/grid-row.state.d.ts.map +1 -1
  22. package/out/controller/control/grid/grid/grid-row.state.js +13 -0
  23. package/out/controller/control/grid/grid/grid.controller.d.ts +7 -0
  24. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  25. package/out/controller/control/grid/grid/grid.controller.js +27 -0
  26. package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
  27. package/out/controller/control/grid/grid/grid.service.js +30 -20
  28. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +21 -1
  29. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
  30. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +44 -1
  31. package/out/controller/control/kanban/kanban.controller.d.ts +13 -0
  32. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  33. package/out/controller/control/kanban/kanban.controller.js +72 -0
  34. package/out/controller/control/report-panel/generator/user-generator.js +1 -1
  35. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  36. package/out/controller/control/search-bar/search-bar.controller.js +2 -1
  37. package/out/controller/control/toolbar/toolbar.controllerr.d.ts +7 -0
  38. package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -1
  39. package/out/controller/control/toolbar/toolbar.controllerr.js +22 -0
  40. package/out/controller/control/tree/tree.controller.d.ts +75 -0
  41. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  42. package/out/controller/control/tree/tree.controller.js +264 -1
  43. package/out/interface/common/i-global-config/i-global-view-config.d.ts +1 -1
  44. package/out/interface/common/i-global-config/i-global-view-config.d.ts.map +1 -1
  45. package/out/interface/controller/event/control/i-gantt.event.d.ts +42 -0
  46. package/out/interface/controller/event/control/i-gantt.event.d.ts.map +1 -1
  47. package/out/interface/controller/event/control/i-tree.event.d.ts +17 -0
  48. package/out/interface/controller/event/control/i-tree.event.d.ts.map +1 -1
  49. package/out/interface/controller/state/control/i-gantt.state.d.ts +22 -0
  50. package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
  51. package/out/interface/controller/state/control/i-grid.state.d.ts +11 -0
  52. package/out/interface/controller/state/control/i-grid.state.d.ts.map +1 -1
  53. package/out/interface/controller/state/control/i-kanban.state.d.ts +24 -0
  54. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
  55. package/out/interface/controller/state/control/i-tree.state.d.ts +7 -0
  56. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  57. package/out/interface/provider/i-grid-column.provider.d.ts +2 -2
  58. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  59. package/out/interface/service/i-data-entity/i-data-entity.d.ts +8 -0
  60. package/out/interface/service/i-data-entity/i-data-entity.d.ts.map +1 -1
  61. package/out/interface/service/service/i-app-de.service.d.ts +11 -0
  62. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  63. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  64. package/out/logic-scheduler/executor/app-ui-logic-executor.js +4 -2
  65. package/out/register/helper/grid-column-register.d.ts +2 -2
  66. package/out/register/helper/grid-column-register.d.ts.map +1 -1
  67. package/out/register/helper/grid-column-register.js +14 -0
  68. package/out/service/dto/method.dto.d.ts.map +1 -1
  69. package/out/service/dto/method.dto.js +8 -1
  70. package/out/service/service/entity/de.service.d.ts +9 -1
  71. package/out/service/service/entity/de.service.d.ts.map +1 -1
  72. package/out/service/service/entity/de.service.js +69 -0
  73. package/out/service/service/entity/method/fetch.d.ts +5 -12
  74. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  75. package/out/service/service/entity/method/fetch.js +7 -74
  76. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts +1 -0
  77. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts.map +1 -1
  78. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts +2 -0
  79. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts.map +1 -1
  80. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.js +2 -1
  81. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts +7 -0
  82. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts.map +1 -1
  83. package/out/service/vo/gantt-node-data/gantt-node-data-util.js +18 -0
  84. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts +1 -0
  85. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts.map +1 -1
  86. package/out/service/vo/tree-node-data/tree-code-list-node-data.d.ts.map +1 -1
  87. package/out/service/vo/tree-node-data/tree-code-list-node-data.js +8 -4
  88. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  89. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +8 -4
  90. package/out/service/vo/tree-node-data/tree-node-data.d.ts +1 -0
  91. package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
  92. package/out/service/vo/tree-node-data/tree-node-data.js +2 -0
  93. package/out/service/vo/tree-node-data/tree-static-node-data.d.ts.map +1 -1
  94. package/out/service/vo/tree-node-data/tree-static-node-data.js +8 -2
  95. package/out/utils/layout-panel-util/layout-panel-util.js +1 -1
  96. package/package.json +2 -2
  97. package/src/config/global-config.ts +1 -1
  98. package/src/controller/common/base.controller.ts +11 -0
  99. package/src/controller/common/view/view.controller.ts +15 -0
  100. package/src/controller/control/app-menu/app-menu.controller.ts +25 -0
  101. package/src/controller/control/caption-bar/caption-bar.controller.ts +1 -8
  102. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +9 -1
  103. package/src/controller/control/gantt/gantt.controller.ts +331 -1
  104. package/src/controller/control/grid/grid/grid-row.state.ts +15 -0
  105. package/src/controller/control/grid/grid/grid.controller.ts +34 -0
  106. package/src/controller/control/grid/grid/grid.service.ts +34 -21
  107. package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +67 -2
  108. package/src/controller/control/kanban/kanban.controller.ts +81 -0
  109. package/src/controller/control/report-panel/generator/user-generator.ts +1 -1
  110. package/src/controller/control/search-bar/search-bar.controller.ts +2 -1
  111. package/src/controller/control/toolbar/toolbar.controllerr.ts +29 -0
  112. package/src/controller/control/tree/tree.controller.ts +327 -2
  113. package/src/interface/common/i-global-config/i-global-view-config.ts +1 -1
  114. package/src/interface/controller/event/control/i-gantt.event.ts +37 -1
  115. package/src/interface/controller/event/control/i-tree.event.ts +14 -0
  116. package/src/interface/controller/state/control/i-gantt.state.ts +25 -0
  117. package/src/interface/controller/state/control/i-grid.state.ts +10 -0
  118. package/src/interface/controller/state/control/i-kanban.state.ts +26 -0
  119. package/src/interface/controller/state/control/i-tree.state.ts +8 -0
  120. package/src/interface/provider/i-grid-column.provider.ts +2 -2
  121. package/src/interface/service/i-data-entity/i-data-entity.ts +9 -0
  122. package/src/interface/service/service/i-app-de.service.ts +12 -0
  123. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +8 -2
  124. package/src/register/helper/grid-column-register.ts +17 -2
  125. package/src/service/dto/method.dto.ts +8 -1
  126. package/src/service/service/entity/de.service.ts +74 -1
  127. package/src/service/service/entity/method/fetch.ts +8 -79
  128. package/src/service/vo/gantt-node-data/gantt-code-list-node-data.ts +2 -0
  129. package/src/service/vo/gantt-node-data/gantt-data-set-node-data.ts +6 -1
  130. package/src/service/vo/gantt-node-data/gantt-node-data-util.ts +21 -0
  131. package/src/service/vo/gantt-node-data/gantt-static-node-data.ts +2 -0
  132. package/src/service/vo/tree-node-data/tree-code-list-node-data.ts +10 -5
  133. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +10 -5
  134. package/src/service/vo/tree-node-data/tree-node-data.ts +3 -0
  135. package/src/service/vo/tree-node-data/tree-static-node-data.ts +10 -3
  136. package/src/utils/layout-panel-util/layout-panel-util.ts +1 -1
package/dist/index.esm.js CHANGED
@@ -5,7 +5,7 @@ var GlobalConfig = class {
5
5
  this.view = {
6
6
  enableDataInfoBar: true,
7
7
  expCacheMode: "TABEXPPANEL:",
8
- noNavTabs: false
8
+ disableHomeTabs: false
9
9
  };
10
10
  // 全局表格配置
11
11
  this.grid = {
@@ -2035,7 +2035,7 @@ var LayoutPanelUtil = class {
2035
2035
  } else {
2036
2036
  key = "".concat(viewType, "_").concat(viewStyle);
2037
2037
  }
2038
- if (ibiz.config.view.noNavTabs && [
2038
+ if (ibiz.config.view.disableHomeTabs && [
2039
2039
  "APPINDEXVIEW_DEFAULT",
2040
2040
  "APPINDEXVIEW_DEFAULT_LEFT",
2041
2041
  "APPINDEXVIEW_DEFAULT_TOP"
@@ -3321,6 +3321,7 @@ function getProvider5(key) {
3321
3321
  async function getGridColumnProvider(model) {
3322
3322
  let provider;
3323
3323
  const { columnType, enableRowEdit, sysPFPluginId, appId } = model;
3324
+ const { renderSysPFPluginId } = model;
3324
3325
  if (sysPFPluginId) {
3325
3326
  const pluginKey = await getPluginRegisterKey(sysPFPluginId, appId);
3326
3327
  if (pluginKey) {
@@ -3332,6 +3333,17 @@ async function getGridColumnProvider(model) {
3332
3333
  return provider;
3333
3334
  }
3334
3335
  }
3336
+ if (renderSysPFPluginId) {
3337
+ const pluginKey = await getPluginRegisterKey(renderSysPFPluginId, appId);
3338
+ if (pluginKey) {
3339
+ provider = getProvider5(pluginKey);
3340
+ }
3341
+ if (!provider) {
3342
+ ibiz.log.error("\u627E\u4E0D\u5230\u6811\u8868\u683C\u5217\u63D2\u4EF6".concat(pluginKey, "\u5BF9\u5E94\u7684\u9002\u914D\u5668"));
3343
+ } else {
3344
+ return provider;
3345
+ }
3346
+ }
3335
3347
  const key = enableRowEdit ? "".concat(columnType, "_EDIT") : columnType;
3336
3348
  provider = getProvider5(key);
3337
3349
  if (!provider) {
@@ -5075,6 +5087,8 @@ import {
5075
5087
  ModelError as ModelError5,
5076
5088
  RuntimeError as RuntimeError16
5077
5089
  } from "@ibiz-template/core";
5090
+ import { equals as equals2, isEmpty as isEmpty7, where as where2 } from "ramda";
5091
+ import { ascSort } from "qx-util";
5078
5092
 
5079
5093
  // src/service/service/work-flow/work-flow.service.ts
5080
5094
  import { RuntimeError as RuntimeError15 } from "@ibiz-template/core";
@@ -5543,6 +5557,55 @@ var DEService = class {
5543
5557
  fetchTempDefault(context, params, params2) {
5544
5558
  return this.exec("FetchTempDefault", context, params, params2);
5545
5559
  }
5560
+ /**
5561
+ * 查询本地数据,根据属性
5562
+ *
5563
+ * @param {IParams} context
5564
+ * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }
5565
+ * @return {*} {Promise<IDataEntity[]>}
5566
+ */
5567
+ async selectLocal(context, params = {}) {
5568
+ let items = this.local.getList(context);
5569
+ items = ascSort(items, "srfordervalue");
5570
+ const data = {};
5571
+ const nullData = {};
5572
+ const undefinedData = {};
5573
+ const emptyData = {};
5574
+ if (params.srfkey) {
5575
+ data.srfkey = equals2(params.srfkey);
5576
+ delete params.srfkey;
5577
+ }
5578
+ for (const key in params) {
5579
+ if (Object.prototype.hasOwnProperty.call(params, key)) {
5580
+ const val = params[key];
5581
+ if (val == null) {
5582
+ nullData[key] = equals2(null);
5583
+ undefinedData[key] = equals2(void 0);
5584
+ emptyData[key] = equals2("");
5585
+ } else {
5586
+ data[key] = equals2(val);
5587
+ }
5588
+ }
5589
+ }
5590
+ if (!isEmpty7(data)) {
5591
+ const pred = where2(data);
5592
+ const nullPred = where2(nullData);
5593
+ const undefinedPred = where2(undefinedData);
5594
+ const emptyPred = where2(emptyData);
5595
+ items = items.filter((obj) => {
5596
+ if (isEmpty7(nullData)) {
5597
+ if (pred(obj)) {
5598
+ return true;
5599
+ }
5600
+ } else if (pred(obj) && (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))) {
5601
+ return true;
5602
+ }
5603
+ return false;
5604
+ });
5605
+ }
5606
+ const list = items.map((obj) => obj.clone());
5607
+ return list;
5608
+ }
5546
5609
  /**
5547
5610
  * 执行服务方法 ac 模式
5548
5611
  *
@@ -6661,7 +6724,9 @@ var MethodDto = class _MethodDto {
6661
6724
  const service = await this.app.deService.getService(
6662
6725
  field.refAppDataEntityId
6663
6726
  );
6664
- const items = service.local.getList(context);
6727
+ const items = await service.selectLocal(context, {
6728
+ srfpkey: data[this.entity.keyAppDEFieldId]
6729
+ });
6665
6730
  if (items) {
6666
6731
  const arr = [];
6667
6732
  for (let j = 0; j < items.length; j++) {
@@ -6708,6 +6773,10 @@ var MethodDto = class _MethodDto {
6708
6773
  const dto = await this.getFieldDto(field);
6709
6774
  const items = datum[key];
6710
6775
  if (items) {
6776
+ const pKey = datum[this.entity.keyAppDEFieldId];
6777
+ items.forEach((item) => {
6778
+ item.srfpkey = pKey;
6779
+ });
6711
6780
  await dto.sets(context, items);
6712
6781
  } else {
6713
6782
  await dto.sets(context, []);
@@ -8439,9 +8508,9 @@ import {
8439
8508
  ModelError as ModelError13,
8440
8509
  RuntimeModelError as RuntimeModelError20
8441
8510
  } from "@ibiz-template/core";
8442
- import { ascSort, descSort } from "qx-util";
8443
- import { clone as clone13, equals as equals2, isEmpty as isEmpty7, isNil as isNil11, where as where2 } from "ramda";
8444
8511
  import { isArray as isArray8 } from "lodash-es";
8512
+ import { clone as clone13, isEmpty as isEmpty8, isNil as isNil11 } from "ramda";
8513
+ import { ascSort as ascSort2, descSort } from "qx-util";
8445
8514
  var FetchMethod = class extends Method {
8446
8515
  get isLocalMode() {
8447
8516
  return isLocalMode(this.method);
@@ -8487,63 +8556,14 @@ var FetchMethod = class extends Method {
8487
8556
  }
8488
8557
  return res;
8489
8558
  }
8490
- /**
8491
- * 查询本地数据,根据属性
8492
- *
8493
- * @param {IParams} context
8494
- * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }
8495
- * @return {*} {Promise<IDataEntity[]>}
8496
- */
8497
- async selectLocal(context, params = {}) {
8498
- const service = await this.getService();
8499
- let items = service.local.getList(context);
8500
- items = ascSort(items, "srfordervalue");
8501
- const data = {};
8502
- const nullData = {};
8503
- const undefinedData = {};
8504
- const emptyData = {};
8505
- if (params.srfkey) {
8506
- data.srfkey = equals2(params.srfkey);
8507
- delete params.srfkey;
8508
- }
8509
- for (const key in params) {
8510
- if (Object.prototype.hasOwnProperty.call(params, key)) {
8511
- const val = params[key];
8512
- if (val == null) {
8513
- nullData[key] = equals2(null);
8514
- undefinedData[key] = equals2(void 0);
8515
- emptyData[key] = equals2("");
8516
- } else {
8517
- data[key] = equals2(val);
8518
- }
8519
- }
8520
- }
8521
- if (!isEmpty7(data)) {
8522
- const pred = where2(data);
8523
- const nullPred = where2(nullData);
8524
- const undefinedPred = where2(undefinedData);
8525
- const emptyPred = where2(emptyData);
8526
- items = items.filter((obj) => {
8527
- if (isEmpty7(nullData)) {
8528
- if (pred(obj)) {
8529
- return true;
8530
- }
8531
- } else if (pred(obj) && (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))) {
8532
- return true;
8533
- }
8534
- return false;
8535
- });
8536
- }
8537
- const list = items.map((obj) => obj.clone());
8538
- return list;
8539
- }
8540
8559
  /**
8541
8560
  * 搜索本地数据
8542
8561
  *
8543
- * @protected
8544
- * @param {PSDEDQCondEngine | null} cond 查询实例
8562
+ * @author chitanda
8563
+ * @date 2023-12-18 11:12:27
8564
+ * @param {(PSDEDQCondEngine | null)} cond 查询实例
8545
8565
  * @param {SearchFilter} filter 过滤对象
8546
- * @param {string[]} [queryParamKeys=this.entity.quickSearchKeys] 当前实体支持快速搜索的属性
8566
+ * @param {string[]} [queryParamKeys=this.entity.quickSearchAppDEFieldIds!] 当前实体支持快速搜索的属性
8547
8567
  * @return {*} {Promise<IDataEntity[]>}
8548
8568
  */
8549
8569
  async searchLocal(cond, filter, queryParamKeys = this.entity.quickSearchAppDEFieldIds) {
@@ -8555,7 +8575,7 @@ var FetchMethod = class extends Method {
8555
8575
  list = list.filter((obj) => cond.test(obj, filter));
8556
8576
  }
8557
8577
  } else {
8558
- list = await this.selectLocal(filter.context, filter.data);
8578
+ list = await service.selectLocal(filter.context, filter.data);
8559
8579
  if (list.length > 0) {
8560
8580
  if (filter.query && filter.query !== "") {
8561
8581
  if (queryParamKeys) {
@@ -8574,11 +8594,11 @@ var FetchMethod = class extends Method {
8574
8594
  }
8575
8595
  }
8576
8596
  }
8577
- if (!isNil11(filter.sortField) && !isEmpty7(filter.sortField)) {
8597
+ if (!isNil11(filter.sortField) && !isEmpty8(filter.sortField)) {
8578
8598
  if (filter.sortMode === "DESC") {
8579
8599
  list = descSort(list, filter.sortField);
8580
8600
  } else {
8581
- list = ascSort(list, filter.sortField);
8601
+ list = ascSort2(list, filter.sortField);
8582
8602
  }
8583
8603
  }
8584
8604
  const { page, size } = filter;
@@ -8641,8 +8661,10 @@ function presetDEMethodProvider() {
8641
8661
  }
8642
8662
 
8643
8663
  // src/service/vo/tree-node-data/tree-node-data.ts
8664
+ import { createUUID as createUUID4 } from "qx-util";
8644
8665
  var TreeNodeData = class {
8645
8666
  constructor(model, parentNodeData, opts) {
8667
+ this._uuid = createUUID4();
8646
8668
  this.leaf = false;
8647
8669
  this.leaf = opts.leaf === true;
8648
8670
  this.parent = parentNodeData;
@@ -8687,8 +8709,14 @@ var TreeCodeListNodeData = class extends TreeNodeData {
8687
8709
  const { data } = opts;
8688
8710
  this.text = data.text;
8689
8711
  this.value = data.value;
8690
- this.id = parentNodeData ? "".concat(parentNodeData.id, ":").concat(model.id, "@").concat(this.value) : model.id + this.value;
8691
- this.id = this.id.toLowerCase();
8712
+ const selfId = "".concat(model.id, "@").concat(this.value).toLowerCase();
8713
+ Object.defineProperty(this, "id", {
8714
+ get() {
8715
+ return this.parent ? "".concat(this.parent.id, ":").concat(selfId) : selfId;
8716
+ },
8717
+ enumerable: true,
8718
+ configurable: true
8719
+ });
8692
8720
  if (model.appDataEntityId) {
8693
8721
  const deName = calcDeCodeNameById(model.appDataEntityId);
8694
8722
  this.context = Object.assign(this.context || {}, {
@@ -8709,8 +8737,14 @@ var TreeDataSetNodeData = class extends TreeNodeData {
8709
8737
  this.deData = data;
8710
8738
  this.text = model.textAppDEFieldId ? data[model.textAppDEFieldId] : data.srfmajortext;
8711
8739
  this.value = model.idAppDEFieldId ? data[model.idAppDEFieldId] : data.srfkey;
8712
- this.id = parentNodeData ? "".concat(parentNodeData.id, ":").concat(model.id, "@").concat(data.srfkey) : model.id + data.srfkey;
8713
- this.id = this.id.toLowerCase();
8740
+ const selfId = "".concat(model.id, "@").concat(data.srfkey).toLowerCase();
8741
+ Object.defineProperty(this, "id", {
8742
+ get() {
8743
+ return this.parent ? "".concat(this.parent.id, ":").concat(selfId) : selfId;
8744
+ },
8745
+ enumerable: true,
8746
+ configurable: true
8747
+ });
8714
8748
  if (model.appDataEntityId) {
8715
8749
  const deName = calcDeCodeNameById(model.appDataEntityId);
8716
8750
  this.context = Object.assign(this.context || {}, {
@@ -8784,8 +8818,14 @@ var TreeStaticNodeData = class extends TreeNodeData {
8784
8818
  var _a, _b;
8785
8819
  super(model, parentNodeData, opts);
8786
8820
  const nodeValue = model.nodeValue === "root" ? void 0 : model.nodeValue;
8787
- this.id = parentNodeData ? "".concat(parentNodeData.id, ":").concat(model.id) : model.id;
8788
- this.id = this.id.toLowerCase();
8821
+ const selfId = "".concat(model.id).toLowerCase();
8822
+ Object.defineProperty(this, "id", {
8823
+ get() {
8824
+ return this.parent ? "".concat(this.parent.id, ":").concat(selfId) : selfId;
8825
+ },
8826
+ enumerable: true,
8827
+ configurable: true
8828
+ });
8789
8829
  this.text = model.text;
8790
8830
  this.value = nodeValue;
8791
8831
  if (parentNodeData && opts.parentValueLevel) {
@@ -9086,7 +9126,7 @@ var PanelData = class {
9086
9126
  };
9087
9127
 
9088
9128
  // src/service/vo/chart-data/chart-data.ts
9089
- import { createUUID as createUUID4 } from "qx-util";
9129
+ import { createUUID as createUUID5 } from "qx-util";
9090
9130
  function updateKeyDefine3(target, keys) {
9091
9131
  keys.forEach((key) => {
9092
9132
  if (!Object.prototype.hasOwnProperty.call(target, key)) {
@@ -9104,7 +9144,7 @@ var ChartData = class {
9104
9144
  this._seriesModelId = seriesModel == null ? void 0 : seriesModel.id;
9105
9145
  this._catalog = catalog;
9106
9146
  this._groupName = groupName;
9107
- this._uuid = createUUID4();
9147
+ this._uuid = createUUID5();
9108
9148
  return new Proxy(this, {
9109
9149
  set(target, p, value) {
9110
9150
  if (Object.prototype.hasOwnProperty.call(deData, p)) {
@@ -9147,6 +9187,18 @@ var calcDataItemValue = (fieldCodeName, nodeModel, data = {}) => {
9147
9187
  }
9148
9188
  return result;
9149
9189
  };
9190
+ var calcNodeDataItem = (nodeModel, data) => {
9191
+ var _a;
9192
+ const dataItem = {};
9193
+ (_a = nodeModel.detreeNodeDataItems) == null ? void 0 : _a.forEach((item) => {
9194
+ if (item.id && item.appDEFieldId) {
9195
+ Object.assign(dataItem, {
9196
+ [item.id.toLowerCase()]: data[item.appDEFieldId.toLowerCase()]
9197
+ });
9198
+ }
9199
+ });
9200
+ return dataItem;
9201
+ };
9150
9202
 
9151
9203
  // src/service/vo/gantt-node-data/gantt-static-node-data.ts
9152
9204
  var GanttStaticNodeData = class extends TreeStaticNodeData {
@@ -9208,6 +9260,7 @@ var GanttDataSetNodeData = class extends TreeDataSetNodeData {
9208
9260
  nodeModel,
9209
9261
  data
9210
9262
  );
9263
+ this.nodeDataItem = calcNodeDataItem(nodeModel, data);
9211
9264
  }
9212
9265
  };
9213
9266
 
@@ -9250,7 +9303,7 @@ var GanttCodeListNodeData = class extends TreeCodeListNodeData {
9250
9303
  };
9251
9304
 
9252
9305
  // src/service/mqtt/mqtt.service.ts
9253
- import { QXEvent as QXEvent3, createUUID as createUUID5, isNilOrEmpty as isNilOrEmpty6 } from "qx-util";
9306
+ import { QXEvent as QXEvent3, createUUID as createUUID6, isNilOrEmpty as isNilOrEmpty6 } from "qx-util";
9254
9307
  var MqttService = class {
9255
9308
  /**
9256
9309
  * Creates an instance of MqttService.
@@ -9284,7 +9337,7 @@ var MqttService = class {
9284
9337
  // 超时时间
9285
9338
  connectTimeout: 6e3,
9286
9339
  // 认证信息
9287
- clientId: createUUID5(),
9340
+ clientId: createUUID6(),
9288
9341
  username: "",
9289
9342
  password: "",
9290
9343
  // 心跳时间
@@ -9723,7 +9776,7 @@ function installCommand() {
9723
9776
  }
9724
9777
 
9725
9778
  // src/app-hub.ts
9726
- import { RuntimeError as RuntimeError58 } from "@ibiz-template/core";
9779
+ import { RuntimeError as RuntimeError59 } from "@ibiz-template/core";
9727
9780
 
9728
9781
  // src/application.ts
9729
9782
  import { Net, getToken } from "@ibiz-template/core";
@@ -9990,9 +10043,9 @@ var PanelNotifyState = /* @__PURE__ */ ((PanelNotifyState2) => {
9990
10043
  })(PanelNotifyState || {});
9991
10044
 
9992
10045
  // src/controller/common/view/view.controller.ts
9993
- import { createUUID as createUUID7, notNilEmpty as notNilEmpty6 } from "qx-util";
10046
+ import { createUUID as createUUID8, notNilEmpty as notNilEmpty6 } from "qx-util";
9994
10047
  import { IBizContext as IBizContext2, RuntimeError as RuntimeError31 } from "@ibiz-template/core";
9995
- import { isEmpty as isEmpty8, isNil as isNil18, isNotNil as isNotNil2 } from "ramda";
10048
+ import { isEmpty as isEmpty9, isNil as isNil18, isNotNil as isNotNil2 } from "ramda";
9996
10049
 
9997
10050
  // src/controller/utils/loading/loading.state.ts
9998
10051
  import { NOOP } from "@ibiz-template/core";
@@ -10807,7 +10860,7 @@ var ValueExUtil = class {
10807
10860
  // src/controller/utils/value-default/value-default.ts
10808
10861
  import { RuntimeError as RuntimeError28, ModelError as ModelError16 } from "@ibiz-template/core";
10809
10862
  import dayjs from "dayjs";
10810
- import { createUUID as createUUID6 } from "qx-util";
10863
+ import { createUUID as createUUID7 } from "qx-util";
10811
10864
  import { isNil as isNil16, isNotNil } from "ramda";
10812
10865
  function getDefaultValue(opts, origins) {
10813
10866
  var _a;
@@ -10852,7 +10905,7 @@ function getDefaultValue(opts, origins) {
10852
10905
  case "CONTEXT":
10853
10906
  return params[defaultValue];
10854
10907
  case "UNIQUEID":
10855
- return createUUID6();
10908
+ return createUUID7();
10856
10909
  default:
10857
10910
  throw new ModelError16({}, "\u9ED8\u8BA4\u503C\u7C7B\u578B[".concat(valueType, "]\u672A\u652F\u6301"));
10858
10911
  }
@@ -10984,6 +11037,7 @@ var BaseController = class {
10984
11037
  this.childNames = [];
10985
11038
  this.name = model.name || model.id;
10986
11039
  this.initState();
11040
+ this.convertMultipleLanguages();
10987
11041
  }
10988
11042
  /**
10989
11043
  * 中间层的基类才会使用,用于在内部使用自身的事件,事件类型不是泛型用evt就能正确推导出来。
@@ -11141,6 +11195,14 @@ var BaseController = class {
11141
11195
  listenNewController(cb) {
11142
11196
  this.ctx.evt.on("onRegister", cb);
11143
11197
  }
11198
+ /**
11199
+ * 转换各类多语言
11200
+ *
11201
+ * @date 2023-05-18 02:57:00
11202
+ * @protected
11203
+ */
11204
+ convertMultipleLanguages() {
11205
+ }
11144
11206
  };
11145
11207
 
11146
11208
  // src/controller/utils/view-msg/view-msg-controller.ts
@@ -11576,8 +11638,8 @@ var ViewController = class extends BaseController {
11576
11638
  */
11577
11639
  handleContextParams() {
11578
11640
  this.context.srfappid = this.model.appId;
11579
- if (isNil18(this.context.srfsessionid) || isEmpty8(this.context.srfsessionid)) {
11580
- this.context.srfsessionid = createUUID7();
11641
+ if (isNil18(this.context.srfsessionid) || isEmpty9(this.context.srfsessionid)) {
11642
+ this.context.srfsessionid = createUUID8();
11581
11643
  }
11582
11644
  const navContexts = this.model.appViewNavContexts;
11583
11645
  let context = {};
@@ -11703,6 +11765,20 @@ var ViewController = class extends BaseController {
11703
11765
  this.alertViewMessage(rest);
11704
11766
  }
11705
11767
  }
11768
+ /**
11769
+ * 转换各类多语言
11770
+ *
11771
+ * @date 2023-05-18 02:57:00
11772
+ * @protected
11773
+ */
11774
+ convertMultipleLanguages() {
11775
+ if (this.model.capLanguageRes && this.model.capLanguageRes.lanResTag) {
11776
+ this.model.caption = ibiz.i18n.t(
11777
+ this.model.capLanguageRes.lanResTag,
11778
+ this.model.caption
11779
+ );
11780
+ }
11781
+ }
11706
11782
  };
11707
11783
 
11708
11784
  // src/controller/common/view/mob-view.controller.ts
@@ -12734,6 +12810,31 @@ var AppMenuController = class extends ControlController {
12734
12810
  }
12735
12811
  return null;
12736
12812
  }
12813
+ /**
12814
+ * 转换各类多语言
12815
+ *
12816
+ * @date 2023-05-18 02:57:00
12817
+ * @protected
12818
+ */
12819
+ convertMultipleLanguages() {
12820
+ const convertItemCaption = (menuItems) => {
12821
+ menuItems.forEach((item) => {
12822
+ var _a;
12823
+ if (item.capLanguageRes && item.capLanguageRes.lanResTag) {
12824
+ item.caption = ibiz.i18n.t(
12825
+ item.capLanguageRes.lanResTag,
12826
+ item.caption
12827
+ );
12828
+ }
12829
+ if ((_a = item.appMenuItems) == null ? void 0 : _a.length) {
12830
+ convertItemCaption(item.appMenuItems);
12831
+ }
12832
+ });
12833
+ };
12834
+ if (this.model.appMenuItems && this.model.appMenuItems.length > 0) {
12835
+ convertItemCaption(this.model.appMenuItems);
12836
+ }
12837
+ }
12737
12838
  };
12738
12839
 
12739
12840
  // src/controller/control/app-menu-icon-view/app-menu-icon-view.controller.ts
@@ -14201,14 +14302,7 @@ var ChartController = class extends MDControlController {
14201
14302
  var CaptionBarController = class extends ControlController {
14202
14303
  initState() {
14203
14304
  super.initState();
14204
- if (this.view.model.capLanguageRes) {
14205
- this.state.caption = ibiz.i18n.t(
14206
- this.view.model.capLanguageRes.lanResTag,
14207
- this.view.model.caption
14208
- );
14209
- } else {
14210
- this.state.caption = this.view.model.caption;
14211
- }
14305
+ this.state.caption = this.view.model.caption;
14212
14306
  }
14213
14307
  async onCreated() {
14214
14308
  await super.onCreated();
@@ -16478,6 +16572,30 @@ var ToolbarController = class extends ControlController {
16478
16572
  );
16479
16573
  super.initControlScheduler(actualLogics);
16480
16574
  }
16575
+ /**
16576
+ * 转换各类多语言
16577
+ *
16578
+ * @date 2023-05-18 02:57:00
16579
+ * @protected
16580
+ */
16581
+ convertMultipleLanguages() {
16582
+ const convertItemCaption = (items) => {
16583
+ items.forEach((item) => {
16584
+ if (item.capLanguageRes && item.capLanguageRes.lanResTag) {
16585
+ item.caption = ibiz.i18n.t(
16586
+ item.capLanguageRes.lanResTag,
16587
+ item.caption
16588
+ );
16589
+ }
16590
+ if (item.itemType === "ITEMS" && item.detoolbarItems) {
16591
+ convertItemCaption(item.detoolbarItems);
16592
+ }
16593
+ });
16594
+ };
16595
+ if (this.model.detoolbarItems && this.model.detoolbarItems.length > 0) {
16596
+ convertItemCaption(this.model.detoolbarItems);
16597
+ }
16598
+ }
16481
16599
  };
16482
16600
 
16483
16601
  // src/controller/control/context-menu/context-menu.controllerr.ts
@@ -18891,7 +19009,7 @@ var FormDetailController = class {
18891
19009
  }
18892
19010
  async onInit() {
18893
19011
  this.state.showMoreMode = this.model.showMoreMode;
18894
- const { layoutPos, sysCss, labelSysCss } = this.model;
19012
+ const { layoutPos, sysCss, labelSysCss, capLanguageRes } = this.model;
18895
19013
  if (layoutPos) {
18896
19014
  const { width, height } = calcLayoutHeightWidth(layoutPos);
18897
19015
  this.state.layout.width = "".concat(width);
@@ -18903,6 +19021,12 @@ var FormDetailController = class {
18903
19021
  if (labelSysCss == null ? void 0 : labelSysCss.cssName) {
18904
19022
  this.state.class.label.push(labelSysCss.cssName);
18905
19023
  }
19024
+ if (capLanguageRes && capLanguageRes.lanResTag) {
19025
+ this.model.caption = ibiz.i18n.t(
19026
+ capLanguageRes.lanResTag,
19027
+ this.model.caption
19028
+ );
19029
+ }
18906
19030
  }
18907
19031
  /**
18908
19032
  * 创建表单状态对象
@@ -19168,7 +19292,7 @@ var FormButtonController = class extends FormDetailController {
19168
19292
 
19169
19293
  // src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts
19170
19294
  import { isOverlap as isOverlap2 } from "@ibiz-template/core";
19171
- import { createUUID as createUUID8, notNilEmpty as notNilEmpty8 } from "qx-util";
19295
+ import { createUUID as createUUID9, notNilEmpty as notNilEmpty8 } from "qx-util";
19172
19296
 
19173
19297
  // src/controller/control/form/form-detail/form-druipart/form-druipart.state.ts
19174
19298
  var FormDruipartState = class extends FormDetailState {
@@ -19281,7 +19405,7 @@ var FormDRUIPartController = class extends FormDetailController {
19281
19405
  this.form.context
19282
19406
  );
19283
19407
  if (!this.state.viewComponentKey) {
19284
- this.state.viewComponentKey = createUUID8();
19408
+ this.state.viewComponentKey = createUUID9();
19285
19409
  this.navContext = newContext;
19286
19410
  this.navParams = newParams;
19287
19411
  } else if (JSON.stringify(this.navContext) !== JSON.stringify(newContext) || JSON.stringify(this.navParams) !== JSON.stringify(newParams)) {
@@ -19974,7 +20098,7 @@ var FormMDCtrlMDController = class extends FormMDCtrlController {
19974
20098
 
19975
20099
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts
19976
20100
  import { RuntimeError as RuntimeError50, RuntimeModelError as RuntimeModelError54 } from "@ibiz-template/core";
19977
- import { createUUID as createUUID9 } from "qx-util";
20101
+ import { createUUID as createUUID10 } from "qx-util";
19978
20102
 
19979
20103
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.ts
19980
20104
  var FormMDCtrlFormState = class extends FormDetailState {
@@ -20104,7 +20228,7 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
20104
20228
  this.state.items = [];
20105
20229
  }
20106
20230
  const item = {
20107
- id: createUUID9(),
20231
+ id: createUUID10(),
20108
20232
  context,
20109
20233
  params
20110
20234
  };
@@ -20350,7 +20474,7 @@ import {
20350
20474
  RuntimeError as RuntimeError51
20351
20475
  } from "@ibiz-template/core";
20352
20476
  import { debounce as debounce2 } from "lodash-es";
20353
- import { createUUID as createUUID10 } from "qx-util";
20477
+ import { createUUID as createUUID11 } from "qx-util";
20354
20478
  import { clone as clone21 } from "ramda";
20355
20479
 
20356
20480
  // src/controller/control/form/edit-form/edit-form.service.ts
@@ -20731,7 +20855,7 @@ var EditFormController = class extends FormController {
20731
20855
  await this.endLoading();
20732
20856
  }
20733
20857
  res.data.srfkey = void 0;
20734
- res.data.tempsrfkey = createUUID10();
20858
+ res.data.tempsrfkey = createUUID11();
20735
20859
  this.state.modified = false;
20736
20860
  this.state.data = res.data;
20737
20861
  this.formStateNotify("LOAD" /* LOAD */);
@@ -21234,6 +21358,15 @@ var GridRowState = class {
21234
21358
  * @type {({ [p: string]: { disabled: boolean } })}
21235
21359
  */
21236
21360
  this.editColStates = {};
21361
+ /**
21362
+ * 界面行为组状态(p是界面行为的标识)
21363
+ *
21364
+ * @author zk
21365
+ * @date 2023-12-15 10:12:42
21366
+ * @type {{ [p: string]: IButtonContainerState }}
21367
+ * @memberof IGridRowState
21368
+ */
21369
+ this.uiActionGroupStates = {};
21237
21370
  /**
21238
21371
  * 是否显示行编辑
21239
21372
  *
@@ -21267,6 +21400,9 @@ var GridRowState = class {
21267
21400
  Object.values(grid.uaColumns).forEach((column) => {
21268
21401
  column.initActionStates(this);
21269
21402
  });
21403
+ Object.values(grid.fieldColumns).forEach((column) => {
21404
+ column.initActionStates(this);
21405
+ });
21270
21406
  Object.values(grid.editColumns).forEach((editColumn) => {
21271
21407
  this.editColStates[editColumn.fieldName] = {
21272
21408
  disabled: false,
@@ -21285,11 +21421,12 @@ import {
21285
21421
  mergeDefaultInLeft,
21286
21422
  recursiveIterate as recursiveIterate6,
21287
21423
  RuntimeError as RuntimeError52,
21288
- RuntimeModelError as RuntimeModelError56
21424
+ RuntimeModelError as RuntimeModelError57
21289
21425
  } from "@ibiz-template/core";
21290
21426
  import { clone as clone22 } from "ramda";
21291
21427
 
21292
21428
  // src/controller/control/grid/grid/grid.service.ts
21429
+ import { RuntimeModelError as RuntimeModelError56 } from "@ibiz-template/core";
21293
21430
  var GridService = class extends MDControlService {
21294
21431
  /**
21295
21432
  * 初始化属性映射
@@ -21300,21 +21437,34 @@ var GridService = class extends MDControlService {
21300
21437
  initUIDataMap() {
21301
21438
  var _a;
21302
21439
  super.initUIDataMap();
21303
- (_a = this.model.degridDataItems) == null ? void 0 : _a.forEach((column) => {
21304
- const uiKey = column.id.toLowerCase();
21305
- const deField = column.appDEFieldId;
21306
- let mapField;
21307
- if (deField) {
21308
- const deFieldKey = deField.toLowerCase();
21309
- mapField = new UIMapField(uiKey, deFieldKey, {
21310
- isOriginField: true,
21311
- dataType: column.dataType
21312
- });
21313
- } else {
21314
- mapField = new UIMapField(uiKey, uiKey);
21315
- }
21316
- this.dataUIMap.set(uiKey, mapField);
21317
- });
21440
+ if (this.model.degridColumns) {
21441
+ const dataItems = this.model.degridDataItems || [];
21442
+ (_a = this.model.degridColumns) == null ? void 0 : _a.forEach((column) => {
21443
+ const uiKey = column.id.toLowerCase();
21444
+ const deField = column.appDEFieldId;
21445
+ let mapField;
21446
+ if (deField) {
21447
+ const deFieldKey = deField.toLowerCase();
21448
+ const dataItem = dataItems.find(
21449
+ (item) => item.appDEFieldId === deField
21450
+ );
21451
+ if (dataItem) {
21452
+ mapField = new UIMapField(uiKey, deFieldKey, {
21453
+ isOriginField: true,
21454
+ dataType: dataItem.dataType
21455
+ });
21456
+ } else {
21457
+ throw new RuntimeModelError56(
21458
+ column,
21459
+ "\u672A\u627E\u5230\u5BF9\u5E94\u7684\u8868\u683C\u6570\u636E\u9879[".concat(deField, "]")
21460
+ );
21461
+ }
21462
+ } else {
21463
+ mapField = new UIMapField(uiKey, uiKey);
21464
+ }
21465
+ this.dataUIMap.set(uiKey, mapField);
21466
+ });
21467
+ }
21318
21468
  }
21319
21469
  /**
21320
21470
  * 编辑列更新
@@ -21491,11 +21641,11 @@ var GridController = class extends MDControlController {
21491
21641
  (item) => item.model.appDEFieldId === groupAppDEFieldId
21492
21642
  );
21493
21643
  if (!this.groupFieldColumn) {
21494
- throw new RuntimeModelError56(this.model, "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217");
21644
+ throw new RuntimeModelError57(this.model, "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217");
21495
21645
  }
21496
21646
  const groupFieldName = this.groupFieldColumn.model.id;
21497
21647
  if (!this.groupFieldColumn.model.appCodeListId) {
21498
- throw new RuntimeModelError56(
21648
+ throw new RuntimeModelError57(
21499
21649
  this.groupFieldColumn.model,
21500
21650
  "\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217".concat(groupFieldName, "\u6CA1\u6709\u914D\u7F6E\u4EE3\u7801\u8868")
21501
21651
  );
@@ -21505,7 +21655,7 @@ var GridController = class extends MDControlController {
21505
21655
  );
21506
21656
  if (index !== -1 && index !== 0) {
21507
21657
  if (this.isMultistageHeader) {
21508
- throw new RuntimeModelError56(
21658
+ throw new RuntimeModelError57(
21509
21659
  this.model,
21510
21660
  "\u8BF7\u5C06\u5206\u7EC4\u5C5E\u6027\u5217".concat(groupFieldName, "\u914D\u7F6E\u4E3A\u7B2C\u4E00\u5217")
21511
21661
  );
@@ -21515,10 +21665,10 @@ var GridController = class extends MDControlController {
21515
21665
  }
21516
21666
  if (groupMode === "CODELIST") {
21517
21667
  if (!groupCodeListId) {
21518
- throw new RuntimeModelError56(this.model, "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868");
21668
+ throw new RuntimeModelError57(this.model, "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868");
21519
21669
  }
21520
21670
  if (this.groupFieldColumn.model.appCodeListId !== groupCodeListId) {
21521
- throw new RuntimeModelError56(
21671
+ throw new RuntimeModelError57(
21522
21672
  this.model,
21523
21673
  "\u5206\u7EC4\u4EE3\u7801\u8868\u4E0E\u5C5E\u6027\u5217".concat(groupFieldName, "\u7684\u4EE3\u7801\u8868\u4E0D\u4E00\u81F4")
21524
21674
  );
@@ -21543,6 +21693,11 @@ var GridController = class extends MDControlController {
21543
21693
  uaState.update(row.data.getOrigin(), this.model.appDataEntityId);
21544
21694
  });
21545
21695
  });
21696
+ this.state.rows.forEach((row) => {
21697
+ Object.values(row.uiActionGroupStates).forEach((uaState) => {
21698
+ uaState.update(row.data.getOrigin(), this.model.appDataEntityId);
21699
+ });
21700
+ });
21546
21701
  this.calcGroupData(items);
21547
21702
  this.calcAggResult(items);
21548
21703
  return items;
@@ -21600,7 +21755,7 @@ var GridController = class extends MDControlController {
21600
21755
  return;
21601
21756
  }
21602
21757
  if (!aggAppDEDataSetId || !aggAppDataEntityId) {
21603
- throw new RuntimeModelError56(this.model, "\u7F3A\u5C11\u914D\u7F6E\u805A\u5408\u5B9E\u4F53\u6216\u805A\u5408\u6570\u636E\u96C6");
21758
+ throw new RuntimeModelError57(this.model, "\u7F3A\u5C11\u914D\u7F6E\u805A\u5408\u5B9E\u4F53\u6216\u805A\u5408\u6570\u636E\u96C6");
21604
21759
  }
21605
21760
  const params = await this.getFetchParams();
21606
21761
  const app = ibiz.hub.getApp(this.context.srfappid);
@@ -22255,6 +22410,30 @@ var GridController = class extends MDControlController {
22255
22410
  await this.setActive(data);
22256
22411
  }
22257
22412
  }
22413
+ /**
22414
+ * 转换各类多语言
22415
+ *
22416
+ * @date 2023-05-18 02:57:00
22417
+ * @protected
22418
+ */
22419
+ convertMultipleLanguages() {
22420
+ const convertColumnCaption = (columns) => {
22421
+ columns.forEach((column) => {
22422
+ if (column.capLanguageRes && column.capLanguageRes.lanResTag) {
22423
+ column.caption = ibiz.i18n.t(
22424
+ column.capLanguageRes.lanResTag,
22425
+ column.caption
22426
+ );
22427
+ }
22428
+ if (column.columnType === "GROUPGRIDCOLUMN" && column.degridColumns) {
22429
+ convertColumnCaption(column.degridColumns);
22430
+ }
22431
+ });
22432
+ };
22433
+ if (this.model.degridColumns && this.model.degridColumns.length > 0) {
22434
+ convertColumnCaption(this.model.degridColumns);
22435
+ }
22436
+ }
22258
22437
  };
22259
22438
 
22260
22439
  // src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts
@@ -22302,6 +22481,31 @@ var GridFieldColumnController = class extends GridColumnController {
22302
22481
  });
22303
22482
  this.loadCodeList();
22304
22483
  }
22484
+ /**
22485
+ * 初始化属性列界面行为组按钮状态
22486
+ *
22487
+ * @author lxm
22488
+ * @date 2022-09-07 21:09:43
22489
+ * @param {GridRowState} row
22490
+ */
22491
+ initActionStates(row) {
22492
+ const { deuiactionGroup } = this.model;
22493
+ if (deuiactionGroup && deuiactionGroup.uiactionGroupDetails) {
22494
+ const containerState = new ButtonContainerState();
22495
+ deuiactionGroup.uiactionGroupDetails.forEach((detail) => {
22496
+ const actionid = detail.uiactionId;
22497
+ if (actionid) {
22498
+ const buttonState = new UIActionButtonState(
22499
+ detail.id,
22500
+ this.grid.context.srfappid,
22501
+ actionid
22502
+ );
22503
+ containerState.addState(detail.id, buttonState);
22504
+ }
22505
+ });
22506
+ row.uiActionGroupStates[this.model.codeName] = containerState;
22507
+ }
22508
+ }
22305
22509
  /**
22306
22510
  * 行是否可点击(影响列的界面样式)
22307
22511
  *
@@ -22508,23 +22712,48 @@ var GridFieldColumnController = class extends GridColumnController {
22508
22712
  }
22509
22713
  return ibiz.util.text.format(strVal, this.valueFormat);
22510
22714
  }
22511
- };
22512
-
22513
- // src/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.ts
22514
- import { RuntimeModelError as RuntimeModelError57 } from "@ibiz-template/core";
22515
- var GridUAColumnController = class extends GridColumnController {
22516
22715
  /**
22517
- * 给rowController初始化操作列的状态
22716
+ * 触发界面行为组点击事件
22518
22717
  *
22519
- * @author lxm
22520
- * @date 2022-09-07 21:09:43
22718
+ * @author zk
22719
+ * @date 2023-12-15 11:12:01
22720
+ * @param {IUIActionGroupDetail} detail
22721
+ * @param {GridRowState} row
22722
+ * @param {MouseEvent} event
22723
+ * @return {*} {Promise<void>}
22724
+ * @memberof GridFieldColumnController
22725
+ */
22726
+ async onActionClick(detail, row, event) {
22727
+ const actionId = detail.uiactionId;
22728
+ await UIActionUtil.execAndResolved(
22729
+ actionId,
22730
+ {
22731
+ context: this.context,
22732
+ params: this.params,
22733
+ data: [row.data],
22734
+ view: this.grid.view,
22735
+ event
22736
+ },
22737
+ detail.appId
22738
+ );
22739
+ }
22740
+ };
22741
+
22742
+ // src/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.ts
22743
+ import { RuntimeModelError as RuntimeModelError58 } from "@ibiz-template/core";
22744
+ var GridUAColumnController = class extends GridColumnController {
22745
+ /**
22746
+ * 给rowController初始化操作列的状态
22747
+ *
22748
+ * @author lxm
22749
+ * @date 2022-09-07 21:09:43
22521
22750
  * @param {GridRowState} row
22522
22751
  */
22523
22752
  initActionStates(row) {
22524
22753
  var _a;
22525
22754
  const { deuiactionGroup } = this.model;
22526
22755
  if (!deuiactionGroup) {
22527
- throw new RuntimeModelError57(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
22756
+ throw new RuntimeModelError58(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
22528
22757
  }
22529
22758
  if (!((_a = deuiactionGroup.uiactionGroupDetails) == null ? void 0 : _a.length)) {
22530
22759
  ibiz.log.debug("\u64CD\u4F5C\u5217\u754C\u9762\u884C\u4E3A\u7EC4\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A");
@@ -23799,7 +24028,7 @@ import { recursiveIterate as recursiveIterate8 } from "@ibiz-template/core";
23799
24028
  import { isNil as isNil23 } from "ramda";
23800
24029
 
23801
24030
  // src/controller/control/search-bar/search-bar-filter.controller.ts
23802
- import { RuntimeModelError as RuntimeModelError58 } from "@ibiz-template/core";
24031
+ import { RuntimeModelError as RuntimeModelError59 } from "@ibiz-template/core";
23803
24032
  var SearchBarFilterController = class {
23804
24033
  constructor(model, searchBar) {
23805
24034
  this.model = model;
@@ -23827,7 +24056,7 @@ var SearchBarFilterController = class {
23827
24056
  */
23828
24057
  async init() {
23829
24058
  if (!this.model.editor) {
23830
- throw new RuntimeModelError58(this.model, "\u7F3A\u5C11\u7F16\u8F91\u5668\u6A21\u578B");
24059
+ throw new RuntimeModelError59(this.model, "\u7F3A\u5C11\u7F16\u8F91\u5668\u6A21\u578B");
23831
24060
  }
23832
24061
  this.editorProvider = await getEditorProvider(this.model.editor);
23833
24062
  if (this.editorProvider) {
@@ -23969,6 +24198,7 @@ var SearchBarController = class extends ControlController {
23969
24198
  children: [{ leaf: true, field: null, valueOP: null, value: null }]
23970
24199
  }
23971
24200
  ];
24201
+ this.evt.emit("onSearch", void 0);
23972
24202
  }
23973
24203
  /**
23974
24204
  * 初始化过滤项控制器
@@ -24028,7 +24258,7 @@ var SearchBarController = class extends ControlController {
24028
24258
  condtype: "GROUP",
24029
24259
  condop: node.logicType,
24030
24260
  bnotmode: false,
24031
- searchcondlist: node.children.map((item) => this.formatFilters(item))
24261
+ searchconds: node.children.map((item) => this.formatFilters(item))
24032
24262
  };
24033
24263
  }
24034
24264
  return {
@@ -24277,7 +24507,11 @@ var TabExpPanelController = class extends ControlController {
24277
24507
  };
24278
24508
 
24279
24509
  // src/controller/control/tree/tree.controller.ts
24280
- import { recursiveIterate as recursiveIterate9 } from "@ibiz-template/core";
24510
+ import {
24511
+ RuntimeError as RuntimeError55,
24512
+ RuntimeModelError as RuntimeModelError60,
24513
+ recursiveIterate as recursiveIterate9
24514
+ } from "@ibiz-template/core";
24281
24515
 
24282
24516
  // src/controller/control/tree/tree.service.ts
24283
24517
  import { ModelError as ModelError29 } from "@ibiz-template/core";
@@ -24573,6 +24807,12 @@ var TreeController = class extends MDControlController {
24573
24807
  * @type {boolean}
24574
24808
  */
24575
24809
  this.enableQuickSearch = false;
24810
+ /**
24811
+ * 拖入节点关系处理
24812
+ * @author lxm
24813
+ * @date 2023-12-14 03:05:38
24814
+ */
24815
+ this.dropNodeRss = /* @__PURE__ */ new Map();
24576
24816
  }
24577
24817
  initState() {
24578
24818
  super.initState();
@@ -24610,6 +24850,7 @@ var TreeController = class extends MDControlController {
24610
24850
  this.state.placeHolder = placeHolders.join("\u3001");
24611
24851
  }
24612
24852
  }
24853
+ this.initDropNodeRss();
24613
24854
  this.service = new TreeService(this.model);
24614
24855
  await this.service.init(this.context);
24615
24856
  this.model.detreeNodes.forEach((node) => {
@@ -24627,6 +24868,41 @@ var TreeController = class extends MDControlController {
24627
24868
  Object.values(this.contextMenus).map((menu) => menu.created())
24628
24869
  );
24629
24870
  }
24871
+ /**
24872
+ * 初始化节点拖入关系处理
24873
+ * @author lxm
24874
+ * @date 2023-12-14 03:13:42
24875
+ * @protected
24876
+ */
24877
+ initDropNodeRss() {
24878
+ var _a;
24879
+ (_a = this.model.detreeNodes) == null ? void 0 : _a.forEach((node) => {
24880
+ if (!node.allowDrop) {
24881
+ return;
24882
+ }
24883
+ const infos = [];
24884
+ const nodeRSs = getChildNodeRSs(this.model, {
24885
+ parentId: node.id,
24886
+ hasQuery: false
24887
+ });
24888
+ nodeRSs.forEach((nodeRS) => {
24889
+ var _a2;
24890
+ if ((_a2 = nodeRS.parentDER1N) == null ? void 0 : _a2.pickupDEFName) {
24891
+ const childNode = this.getNodeModel(nodeRS.childDETreeNodeId);
24892
+ if ((childNode == null ? void 0 : childNode.treeNodeType) === "DE" && childNode.appDataEntityId) {
24893
+ infos.push({
24894
+ minorEntityId: childNode.appDataEntityId,
24895
+ pickupDEFName: nodeRS.parentDER1N.pickupDEFName.toLowerCase(),
24896
+ childDETreeNodeId: nodeRS.childDETreeNodeId
24897
+ });
24898
+ }
24899
+ }
24900
+ });
24901
+ if (infos.length > 0) {
24902
+ this.dropNodeRss.set(node.id, infos);
24903
+ }
24904
+ });
24905
+ }
24630
24906
  /**
24631
24907
  * 树部件加载,从根节点开始重新加载
24632
24908
  *
@@ -24902,10 +25178,206 @@ var TreeController = class extends MDControlController {
24902
25178
  })
24903
25179
  );
24904
25180
  }
25181
+ /**
25182
+ * 计算是否允许拖动
25183
+ * @author lxm
25184
+ * @date 2023-12-14 11:28:07
25185
+ * @param {ITreeNodeData} draggingNode
25186
+ * @return {*} {boolean}
25187
+ */
25188
+ calcAllowDrag(draggingNode) {
25189
+ const nodeModel = this.getNodeModel(draggingNode.nodeId);
25190
+ return (nodeModel == null ? void 0 : nodeModel.allowDrag) === true;
25191
+ }
25192
+ /**
25193
+ * 计算是否允许拖入
25194
+ * @author lxm
25195
+ * @date 2023-12-14 02:04:15
25196
+ * @param {ITreeNodeData} draggingNode
25197
+ * @param {ITreeNodeData} dropNode
25198
+ * @param {('inner' | 'prev' | 'next')} type
25199
+ * @return {*} {boolean}
25200
+ */
25201
+ calcAllowDrop(draggingNode, dropNode, type) {
25202
+ var _a, _b;
25203
+ const draggingNodeModel = this.getNodeModel(draggingNode.nodeId);
25204
+ if (type === "inner") {
25205
+ return !!this.findDropNodeRS(
25206
+ dropNode.nodeId,
25207
+ draggingNodeModel.appDataEntityId
25208
+ );
25209
+ }
25210
+ if (((_a = draggingNode.parent) == null ? void 0 : _a.id) !== ((_b = dropNode.parent) == null ? void 0 : _b.id)) {
25211
+ return !!this.findDropNodeRS(
25212
+ dropNode.parent.nodeId,
25213
+ draggingNodeModel.appDataEntityId
25214
+ );
25215
+ }
25216
+ const parentNodeModel = this.getNodeModel(dropNode.nodeId);
25217
+ return (parentNodeModel == null ? void 0 : parentNodeModel.allowOrder) === true;
25218
+ }
25219
+ /**
25220
+ * 找到指定父节点下的节点关系里面
25221
+ * 配置的实体关系的子实体是指定实体的
25222
+ * @author lxm
25223
+ * @date 2023-12-14 01:43:41
25224
+ * @protected
25225
+ * @param {string} parentId 父节点模型id
25226
+ * @param {string} appDataEntityId
25227
+ * @return {*} {(IDETreeNodeRS | undefined)}
25228
+ */
25229
+ findDropNodeRS(parentId, appDataEntityId) {
25230
+ const nodeRSs = this.dropNodeRss.get(parentId);
25231
+ return nodeRSs == null ? void 0 : nodeRSs.find((item) => item.minorEntityId === appDataEntityId);
25232
+ }
25233
+ /**
25234
+ * 处理节点拖入事件
25235
+ * @author lxm
25236
+ * @date 2023-12-15 04:23:29
25237
+ * @param {ITreeNodeData} draggingNode
25238
+ * @param {ITreeNodeData} dropNode
25239
+ * @param {('inner' | 'prev' | 'next')} dropType
25240
+ * @return {*} {Promise<void>}
25241
+ */
25242
+ async onNodeDrop(draggingNode, dropNode, dropType) {
25243
+ var _a, _b, _c, _d;
25244
+ if (dropType === "inner" && !dropNode.leaf && dropNode.children === void 0) {
25245
+ await this.expandNodeByKey([dropNode.id]);
25246
+ }
25247
+ const modifiedNodeDatas = [];
25248
+ const draggingNodeModel = this.getNodeModel(draggingNode.nodeId);
25249
+ const dropInNode = dropType === "inner" ? dropNode : dropNode.parent;
25250
+ const isChangedParent = ((_a = dropNode.parent) == null ? void 0 : _a.id) !== ((_b = draggingNode.parent) == null ? void 0 : _b.id);
25251
+ let orderNodeModel = this.getNodeModel(dropNode.nodeId);
25252
+ if (dropType === "inner" || ((_c = dropNode.parent) == null ? void 0 : _c.id) !== ((_d = draggingNode.parent) == null ? void 0 : _d.id)) {
25253
+ const dropNodeRs = this.findDropNodeRS(
25254
+ dropInNode.nodeId,
25255
+ draggingNodeModel.appDataEntityId
25256
+ );
25257
+ if (dropNodeRs) {
25258
+ draggingNode.deData[dropNodeRs.pickupDEFName] = dropInNode.value;
25259
+ modifiedNodeDatas.push(draggingNode);
25260
+ orderNodeModel = this.getNodeModel(dropNodeRs.childDETreeNodeId);
25261
+ }
25262
+ }
25263
+ const originArr = draggingNode.parent.children;
25264
+ originArr.splice(originArr.indexOf(draggingNode), 1);
25265
+ if (dropType === "inner") {
25266
+ if (!dropNode.children) {
25267
+ dropNode.children = [];
25268
+ dropNode.leaf = true;
25269
+ this.state.expandedKeys.push(dropNode.id);
25270
+ }
25271
+ dropNode.children.push(draggingNode);
25272
+ } else {
25273
+ let insertIndex = dropInNode.children.indexOf(dropNode);
25274
+ if (dropType === "next") {
25275
+ insertIndex += 1;
25276
+ }
25277
+ dropInNode.children.splice(insertIndex, 0, draggingNode);
25278
+ }
25279
+ if (dropType === "inner" || isChangedParent) {
25280
+ draggingNode.parent = dropInNode;
25281
+ draggingNode.nodeId = orderNodeModel.id;
25282
+ this.state.expandedKeys = this.calcExpandedKeys([dropInNode]);
25283
+ }
25284
+ const { sortAppDEFieldId, sortDir, allowOrder } = orderNodeModel;
25285
+ if (allowOrder === true) {
25286
+ if (!sortAppDEFieldId) {
25287
+ throw new RuntimeModelError60(orderNodeModel, "\u7F3A\u5C11\u914D\u7F6E\u6392\u5E8F\u5C5E\u6027");
25288
+ }
25289
+ const sortField = sortAppDEFieldId.toLowerCase();
25290
+ const isAsc = sortDir === "ASC";
25291
+ const changedArr = [...dropInNode.children];
25292
+ if (!isAsc) {
25293
+ changedArr.reverse();
25294
+ }
25295
+ const getNextSort = (num) => {
25296
+ return num + (100 - num % 100);
25297
+ };
25298
+ const getSort = (deData) => {
25299
+ return deData[sortField] || 0;
25300
+ };
25301
+ let lastSort;
25302
+ changedArr.forEach((item, index) => {
25303
+ const deData = item.deData;
25304
+ if (lastSort === void 0) {
25305
+ if (item === draggingNode) {
25306
+ if (index === 0) {
25307
+ lastSort = 100;
25308
+ } else {
25309
+ lastSort = getNextSort(getSort(changedArr[index - 1].deData));
25310
+ }
25311
+ deData[sortField] = lastSort;
25312
+ if (modifiedNodeDatas.indexOf(item) === -1) {
25313
+ modifiedNodeDatas.push(item);
25314
+ }
25315
+ }
25316
+ } else {
25317
+ if (lastSort >= getSort(deData)) {
25318
+ deData[sortField] = getNextSort(lastSort);
25319
+ modifiedNodeDatas.push(item);
25320
+ }
25321
+ lastSort = getSort(deData);
25322
+ }
25323
+ });
25324
+ }
25325
+ await this.updateDeNodeData(modifiedNodeDatas);
25326
+ this.evt.emit("onAfterNodeDrop", { isChangedParent });
25327
+ }
25328
+ /**
25329
+ * 更新实体节点数据
25330
+ * @author lxm
25331
+ * @date 2023-12-15 04:19:36
25332
+ * @protected
25333
+ * @param {ITreeNodeData[]} nodeDatas 节点数据集合
25334
+ * @return {*} {Promise<void>}
25335
+ */
25336
+ async updateDeNodeData(nodeDatas) {
25337
+ const app = ibiz.hub.getApp(this.context.srfappid);
25338
+ await Promise.all(
25339
+ nodeDatas.map(async (node) => {
25340
+ const model = this.getNodeModel(node.nodeId);
25341
+ const deData = node.deData;
25342
+ const deName = calcDeCodeNameById(model.appDataEntityId);
25343
+ const tempContext = this.context.clone();
25344
+ tempContext[deName] = deData.srfkey;
25345
+ const res = await app.deService.exec(
25346
+ model.appDataEntityId,
25347
+ "update",
25348
+ tempContext,
25349
+ deData
25350
+ );
25351
+ if (res.data) {
25352
+ node.deData = res.data;
25353
+ }
25354
+ })
25355
+ );
25356
+ }
25357
+ /**
25358
+ * 修改节点文本
25359
+ * @author lxm
25360
+ * @date 2023-12-15 04:32:52
25361
+ * @param {ITreeNodeData} nodeData
25362
+ * @param {string} text
25363
+ * @return {*} {Promise<void>}
25364
+ */
25365
+ async modifyNodeText(nodeData, text) {
25366
+ const model = this.getNodeModel(nodeData.nodeId);
25367
+ if (!model.allowEditText) {
25368
+ throw new RuntimeModelError60(model, "\u6811\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u7F16\u8F91\u6A21\u5F0F\uFF1A\u540D\u79F0");
25369
+ }
25370
+ if (!nodeData.deData) {
25371
+ throw new RuntimeError55("\u4E0D\u662F\u5B9E\u4F53\u6811\u8282\u70B9\u6570\u636E");
25372
+ }
25373
+ nodeData.text = text;
25374
+ nodeData.deData[model.textAppDEFieldId] = text;
25375
+ await this.updateDeNodeData([nodeData]);
25376
+ }
24905
25377
  };
24906
25378
 
24907
25379
  // src/controller/control/wizard-panel/wizard-panel.controller.ts
24908
- import { RuntimeError as RuntimeError55 } from "@ibiz-template/core";
25380
+ import { RuntimeError as RuntimeError56 } from "@ibiz-template/core";
24909
25381
 
24910
25382
  // src/controller/control/wizard-panel/wizard-panel.service.ts
24911
25383
  var WizardPanelService = class extends ControlService {
@@ -25071,7 +25543,7 @@ var WizardPanelController = class extends ControlController {
25071
25543
  const { activeFormTag } = this.state;
25072
25544
  const controller = this.formControllers.get(activeFormTag);
25073
25545
  if (!controller) {
25074
- throw new RuntimeError55("\u627E\u4E0D\u5230".concat(activeFormTag, "\u7684\u8868\u5355\u63A7\u5236\u5668"));
25546
+ throw new RuntimeError56("\u627E\u4E0D\u5230".concat(activeFormTag, "\u7684\u8868\u5355\u63A7\u5236\u5668"));
25075
25547
  }
25076
25548
  return controller;
25077
25549
  }
@@ -25113,7 +25585,7 @@ var WizardPanelController = class extends ControlController {
25113
25585
  getWizardFormByTag(tag) {
25114
25586
  var _a;
25115
25587
  if (!((_a = this.model.dewizard) == null ? void 0 : _a.dewizardForms)) {
25116
- throw new RuntimeError55("\u6CA1\u6709\u914D\u7F6E\u5411\u5BFC\u8868\u5355\u96C6\u5408");
25588
+ throw new RuntimeError56("\u6CA1\u6709\u914D\u7F6E\u5411\u5BFC\u8868\u5355\u96C6\u5408");
25117
25589
  return;
25118
25590
  }
25119
25591
  const wizardForm = this.model.dewizard.dewizardForms.find(
@@ -25122,7 +25594,7 @@ var WizardPanelController = class extends ControlController {
25122
25594
  }
25123
25595
  );
25124
25596
  if (!wizardForm) {
25125
- throw new RuntimeError55("\u627E\u4E0D\u5230\u6807\u8BC6\u4E3A".concat(tag, "\u7684\u5411\u5BFC\u8868\u5355"));
25597
+ throw new RuntimeError56("\u627E\u4E0D\u5230\u6807\u8BC6\u4E3A".concat(tag, "\u7684\u5411\u5BFC\u8868\u5355"));
25126
25598
  }
25127
25599
  return wizardForm;
25128
25600
  }
@@ -25193,7 +25665,7 @@ var WizardPanelController = class extends ControlController {
25193
25665
  prevTag = this.tagHistory[this.tagHistory.length - 1];
25194
25666
  }
25195
25667
  if (!prevTag) {
25196
- throw new RuntimeError55("\u6CA1\u6709\u4E0A\u4E00\u4E2A\u8868\u5355");
25668
+ throw new RuntimeError56("\u6CA1\u6709\u4E0A\u4E00\u4E2A\u8868\u5355");
25197
25669
  }
25198
25670
  this.state.activeFormTag = prevTag;
25199
25671
  }
@@ -25229,7 +25701,7 @@ var WizardPanelController = class extends ControlController {
25229
25701
  });
25230
25702
  const nextWizardStep = wizardSteps[index + 1];
25231
25703
  if (!nextWizardStep) {
25232
- throw new RuntimeError55("\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u6B65\u9AA4");
25704
+ throw new RuntimeError56("\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u6B65\u9AA4");
25233
25705
  }
25234
25706
  const nextWizardForm = this.getWizardFormByTag(nextWizardStep.stepTag);
25235
25707
  if (nextWizardForm && nextWizardForm.formTag) {
@@ -25238,7 +25710,7 @@ var WizardPanelController = class extends ControlController {
25238
25710
  }
25239
25711
  }
25240
25712
  if (!nextTag) {
25241
- throw new RuntimeError55("\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u8868\u5355");
25713
+ throw new RuntimeError56("\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u8868\u5355");
25242
25714
  }
25243
25715
  this.state.activeFormTag = nextTag;
25244
25716
  this.tagHistory.push(nextTag);
@@ -25257,7 +25729,7 @@ var WizardPanelController = class extends ControlController {
25257
25729
  };
25258
25730
 
25259
25731
  // src/controller/control/md-ctrl/md-ctrl.controller.ts
25260
- import { RuntimeModelError as RuntimeModelError59 } from "@ibiz-template/core";
25732
+ import { RuntimeModelError as RuntimeModelError61 } from "@ibiz-template/core";
25261
25733
  import { isNil as isNil24 } from "ramda";
25262
25734
 
25263
25735
  // src/controller/control/md-ctrl/md-ctrl.service.ts
@@ -25484,7 +25956,7 @@ var MDCtrlController = class extends MDControlController {
25484
25956
  const { enableGroup, groupMode, groupAppDEFieldId } = this.model;
25485
25957
  if (enableGroup && groupMode) {
25486
25958
  if (!groupAppDEFieldId) {
25487
- throw new RuntimeModelError59(this.model, "\u5206\u7EC4\u5C5E\u6027\u6CA1\u6709\u914D\u7F6E");
25959
+ throw new RuntimeModelError61(this.model, "\u5206\u7EC4\u5C5E\u6027\u6CA1\u6709\u914D\u7F6E");
25488
25960
  }
25489
25961
  if (groupMode === "AUTO") {
25490
25962
  this.handleAutoGroup();
@@ -25551,7 +26023,7 @@ var MDCtrlController = class extends MDControlController {
25551
26023
  async handleCodeListGroup() {
25552
26024
  const { groupAppDEFieldId, groupCodeListId } = this.model;
25553
26025
  if (!groupCodeListId) {
25554
- throw new RuntimeModelError59(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
26026
+ throw new RuntimeModelError61(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
25555
26027
  }
25556
26028
  const { items } = this.state;
25557
26029
  const groupMap = /* @__PURE__ */ new Map();
@@ -25581,7 +26053,7 @@ var MDCtrlController = class extends MDControlController {
25581
26053
  };
25582
26054
 
25583
26055
  // src/controller/control/kanban/kanban.controller.ts
25584
- import { RuntimeError as RuntimeError56, RuntimeModelError as RuntimeModelError60 } from "@ibiz-template/core";
26056
+ import { RuntimeError as RuntimeError57, RuntimeModelError as RuntimeModelError62 } from "@ibiz-template/core";
25585
26057
  import { isNil as isNil25 } from "ramda";
25586
26058
 
25587
26059
  // src/controller/control/kanban/kanban.service.ts
@@ -25656,10 +26128,10 @@ var KanbanController = class extends DataViewControlController {
25656
26128
  const sortField = this.model.minorSortAppDEFieldId;
25657
26129
  const { minorSortDir } = this.model;
25658
26130
  if (!sortField) {
25659
- throw new RuntimeModelError60(this.model, "\u6392\u5E8F\u5C5E\u6027\u6CA1\u914D\u7F6E");
26131
+ throw new RuntimeModelError62(this.model, "\u6392\u5E8F\u5C5E\u6027\u6CA1\u914D\u7F6E");
25660
26132
  }
25661
26133
  if (!minorSortDir) {
25662
- throw new RuntimeModelError60(this.model, "\u6392\u5E8F\u65B9\u5411\u6CA1\u914D\u7F6E");
26134
+ throw new RuntimeModelError62(this.model, "\u6392\u5E8F\u65B9\u5411\u6CA1\u914D\u7F6E");
25663
26135
  }
25664
26136
  const isAsc = minorSortDir === "ASC";
25665
26137
  items.forEach((item) => {
@@ -25669,7 +26141,7 @@ var KanbanController = class extends DataViewControlController {
25669
26141
  } else {
25670
26142
  const toNum = Number(sortValue);
25671
26143
  if (Number.isNaN(toNum)) {
25672
- throw new RuntimeError56(
26144
+ throw new RuntimeError57(
25673
26145
  "".concat(item.srfmajortext, "\u7684\u6392\u5E8F\u5C5E\u6027\u65E0\u6CD5\u8F6C\u6362\u6210\u6570\u503C")
25674
26146
  );
25675
26147
  }
@@ -25685,10 +26157,82 @@ var KanbanController = class extends DataViewControlController {
25685
26157
  }
25686
26158
  handleDataGroup() {
25687
26159
  if (!this.model.enableGroup || this.model.groupMode === "NONE") {
25688
- throw new RuntimeError56("\u770B\u677F\u90E8\u4EF6\u5FC5\u987B\u5F00\u542F\u5206\u7EC4");
26160
+ throw new RuntimeError57("\u770B\u677F\u90E8\u4EF6\u5FC5\u987B\u5F00\u542F\u5206\u7EC4");
25689
26161
  }
25690
26162
  return super.handleDataGroup();
25691
26163
  }
26164
+ /**
26165
+ * 处理自动分组
26166
+ *
26167
+ * @memberof KanbanController
26168
+ */
26169
+ handleAutoGroup() {
26170
+ const { groupAppDEFieldId } = this.model;
26171
+ if (groupAppDEFieldId) {
26172
+ const { items } = this.state;
26173
+ const groupMap = /* @__PURE__ */ new Map();
26174
+ items.forEach((item) => {
26175
+ const groupVal = item[groupAppDEFieldId];
26176
+ if (isNil25(groupVal)) {
26177
+ return;
26178
+ }
26179
+ if (!groupMap.has(groupVal)) {
26180
+ groupMap.set(groupVal, []);
26181
+ }
26182
+ groupMap.get(groupVal).push(item);
26183
+ });
26184
+ const groups = [];
26185
+ groupMap.forEach((value, key) => {
26186
+ const codeListItem = this.groupCodeListItems.find(
26187
+ (item) => item.value === key
26188
+ );
26189
+ groups.push({
26190
+ caption: codeListItem.text,
26191
+ color: codeListItem.color,
26192
+ key: codeListItem.value,
26193
+ children: [...value]
26194
+ });
26195
+ });
26196
+ this.state.groups = groups;
26197
+ }
26198
+ }
26199
+ /**
26200
+ * 处理代码表分组
26201
+ *
26202
+ * @return {*} {Promise<void>}
26203
+ * @memberof KanbanController
26204
+ */
26205
+ async handleCodeListGroup() {
26206
+ const { groupAppDEFieldId, groupCodeListId } = this.model;
26207
+ if (!groupCodeListId) {
26208
+ throw new RuntimeModelError62(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
26209
+ }
26210
+ const { items } = this.state;
26211
+ const groupMap = /* @__PURE__ */ new Map();
26212
+ this.groupCodeListItems.forEach((item) => {
26213
+ groupMap.set(item.value, []);
26214
+ });
26215
+ items.forEach((item) => {
26216
+ const groupVal = item[groupAppDEFieldId];
26217
+ const groupArr = groupMap.get(groupVal);
26218
+ if (groupArr) {
26219
+ groupArr.push(item);
26220
+ }
26221
+ });
26222
+ const groups = [];
26223
+ groupMap.forEach((arr, key) => {
26224
+ const codeListItem = this.groupCodeListItems.find(
26225
+ (item) => item.value === key
26226
+ );
26227
+ groups.push({
26228
+ caption: codeListItem.text,
26229
+ color: codeListItem.color,
26230
+ key: codeListItem.value,
26231
+ children: arr
26232
+ });
26233
+ });
26234
+ this.state.groups = groups;
26235
+ }
25692
26236
  /**
25693
26237
  * 拖拽变更事件处理回调
25694
26238
  * @author lxm
@@ -26179,8 +26723,8 @@ var TreeGridService = class extends GridService {
26179
26723
  };
26180
26724
 
26181
26725
  // src/controller/control/medit-view-panel/medit-view-panel.controller.ts
26182
- import { RuntimeError as RuntimeError57 } from "@ibiz-template/core";
26183
- import { createUUID as createUUID11 } from "qx-util";
26726
+ import { RuntimeError as RuntimeError58 } from "@ibiz-template/core";
26727
+ import { createUUID as createUUID12 } from "qx-util";
26184
26728
 
26185
26729
  // src/controller/control/medit-view-panel/medit-view-panel.service.ts
26186
26730
  var MEditViewPanelService = class extends MDControlService {
@@ -26267,7 +26811,7 @@ var MEditViewPanelController = class extends MDControlController {
26267
26811
  */
26268
26812
  handlePanelItemParams(arg) {
26269
26813
  const [{ parameterName }] = this.parameters;
26270
- const id = arg[parameterName] ? arg[parameterName] : "mockId:".concat(createUUID11());
26814
+ const id = arg[parameterName] ? arg[parameterName] : "mockId:".concat(createUUID12());
26271
26815
  const item = {
26272
26816
  id,
26273
26817
  context: this.context.clone(),
@@ -26395,7 +26939,7 @@ var MEditViewPanelController = class extends MDControlController {
26395
26939
  (item) => item.id === id
26396
26940
  );
26397
26941
  if (panelUiItemIndex < 0) {
26398
- throw new RuntimeError57("\u7F16\u8F91\u89C6\u56FE\u9762\u677F\u90E8\u4EF6UI\u6570\u636E\u4E0D\u5B58\u5728");
26942
+ throw new RuntimeError58("\u7F16\u8F91\u89C6\u56FE\u9762\u677F\u90E8\u4EF6UI\u6570\u636E\u4E0D\u5B58\u5728");
26399
26943
  }
26400
26944
  const tempUiItem = this.state.panelUiItems[panelUiItemIndex];
26401
26945
  if (tempUiItem.id.startsWith("mockId:")) {
@@ -26708,7 +27252,7 @@ var UserReportPanelGenerator = class extends ReportPanelBaseGenerator {
26708
27252
  callBack: "{{ const nodes = data.controller.graph.getNodes(); if (nodes.length < 25) { data.controller.graph.zoomTo(1); data.controller.graph.fitCenter() } }}"
26709
27253
  }
26710
27254
  ],
26711
- nodeDataHook: "{{ data.forEach(node => { const type = node.data.source_lables || node.data.target_lables; Object.assign(node, { label: node.data.name, size: 66, style: { fill: node.color },donutAttrs: { prop1: 10000, prop2: 10 },donutColorMap: { prop1: node.color, prop2: node.color },icon: {show: true,img: type === 'NEO4J_ZT' ? resource.dir('/assets/images/user-avatar.png') : resource.dir('/assets/images/phone.png'),width: 40,height: 40}})})}}",
27255
+ nodeDataHook: "{{ data.forEach(node => { const type = node.data.source_lables || node.data.target_lables; Object.assign(node, { label: node.data.name, size: 66, style: { fill: node.color },donutAttrs: { prop1: 10000, prop2: 10 },donutColorMap: { prop1: node.color, prop2: node.color },icon: {show: true,img: type === 'NEO4J_ZT' ? resource.dir('assets/images/user-avatar.png') : resource.dir('assets/images/phone.png'),width: 40,height: 40}})})}}",
26712
27256
  edgeDataHook: "{{ data.forEach(edge => {Object.assign(edge, { label: edge.name })}) }}"
26713
27257
  }
26714
27258
  };
@@ -27141,6 +27685,34 @@ var GanttService = class extends TreeService {
27141
27685
  var GanttController = class extends MDControlController {
27142
27686
  constructor() {
27143
27687
  super(...arguments);
27688
+ /**
27689
+ * 表格列适配器
27690
+ *
27691
+ * @type {{ [key: string]: IGridColumnProvider }}
27692
+ * @memberof GanttController
27693
+ */
27694
+ this.providers = {};
27695
+ /**
27696
+ * 所有表格列控制器集合
27697
+ *
27698
+ * @type {{ [key: string]: GridColumnController }}
27699
+ * @memberof GanttController
27700
+ */
27701
+ this.columns = {};
27702
+ /**
27703
+ * 所有表格属性列的控制器
27704
+ *
27705
+ * @type {{ [key: string]: GridFieldColumnController }}
27706
+ * @memberof GanttController
27707
+ */
27708
+ this.fieldColumns = {};
27709
+ /**
27710
+ * 所有表格操作列的控制器
27711
+ *
27712
+ * @type {{ [key: string]: GridUAColumnController }}
27713
+ * @memberof GanttController
27714
+ */
27715
+ this.uaColumns = {};
27144
27716
  /**
27145
27717
  * 上下文菜单控制器
27146
27718
  *
@@ -27169,10 +27741,14 @@ var GanttController = class extends MDControlController {
27169
27741
  super.initState();
27170
27742
  this.state.size = 0;
27171
27743
  this.state.query = "";
27744
+ this.state.columnStates = [];
27745
+ this.state.rootNodes = [];
27172
27746
  }
27173
27747
  async onCreated() {
27174
27748
  var _a, _b;
27175
27749
  await super.onCreated();
27750
+ await this.initGridColumns();
27751
+ this.initColumnStates();
27176
27752
  if ((_a = this.model.detreeNodes) == null ? void 0 : _a[0].enableQuickSearch) {
27177
27753
  this.enableQuickSearch = true;
27178
27754
  }
@@ -27214,6 +27790,86 @@ var GanttController = class extends MDControlController {
27214
27790
  Object.values(this.contextMenus).map((menu) => menu.created())
27215
27791
  );
27216
27792
  }
27793
+ /**
27794
+ * 初始化表格列
27795
+ *
27796
+ * @protected
27797
+ * @return {*} {Promise<void>}
27798
+ * @memberof GanttController
27799
+ */
27800
+ async initGridColumns() {
27801
+ if (this.model.detreeColumns) {
27802
+ await Promise.all(
27803
+ this.model.detreeColumns.map(
27804
+ async (column) => this.initColumnsController(column)
27805
+ )
27806
+ );
27807
+ }
27808
+ }
27809
+ /**
27810
+ * 初始化表格属性列,操作列,编辑项控制器
27811
+ *
27812
+ * @protected
27813
+ * @param {IDETreeColumn} column
27814
+ * @return {*} {Promise<void>}
27815
+ * @memberof GanttController
27816
+ */
27817
+ async initColumnsController(column) {
27818
+ const provider = await getGridColumnProvider(column);
27819
+ if (!provider) {
27820
+ return;
27821
+ }
27822
+ this.providers[column.codeName] = provider;
27823
+ const controller = await provider.createController(column, this);
27824
+ this.columns[column.codeName] = controller;
27825
+ if (column.columnType === "DEFGRIDCOLUMN") {
27826
+ this.fieldColumns[column.codeName] = controller;
27827
+ } else if (column.columnType === "UAGRIDCOLUMN") {
27828
+ this.uaColumns[column.codeName] = controller;
27829
+ }
27830
+ }
27831
+ /**
27832
+ * 初始化表格列状态
27833
+ *
27834
+ * @protected
27835
+ * @memberof GanttController
27836
+ */
27837
+ initColumnStates() {
27838
+ recursiveIterate11(
27839
+ this.model,
27840
+ (column) => {
27841
+ if (column.columnType !== "GROUPGRIDCOLUMN") {
27842
+ this.state.columnStates.push({
27843
+ key: column.codeName,
27844
+ caption: column.caption,
27845
+ hidden: !!column.hideDefault,
27846
+ uaColumn: column.columnType === "UAGRIDCOLUMN"
27847
+ });
27848
+ }
27849
+ },
27850
+ { childrenFields: ["detreeColumns"] }
27851
+ );
27852
+ this.calcColumnFixed();
27853
+ }
27854
+ /**
27855
+ * 计算列的固定状态
27856
+ *
27857
+ * @protected
27858
+ * @memberof GanttController
27859
+ */
27860
+ calcColumnFixed() {
27861
+ const showColumns = this.state.columnStates.filter(
27862
+ (column) => !column.hidden
27863
+ );
27864
+ const allNum = showColumns.length;
27865
+ showColumns.forEach((column, index) => {
27866
+ if (column.uaColumn) {
27867
+ column.fixed = index + 1 <= Math.floor(allNum / 2) ? "left" : "right";
27868
+ } else {
27869
+ column.fixed = "right";
27870
+ }
27871
+ });
27872
+ }
27217
27873
  /**
27218
27874
  * 加载
27219
27875
  *
@@ -27242,6 +27898,17 @@ var GanttController = class extends MDControlController {
27242
27898
  });
27243
27899
  return nodes;
27244
27900
  }
27901
+ /**
27902
+ * 获取节点模型
27903
+ *
27904
+ * @param {string} id
27905
+ * @return {*} {(IDETreeNode | undefined)}
27906
+ * @memberof GanttController
27907
+ */
27908
+ getNodeModel(id) {
27909
+ var _a;
27910
+ return (_a = this.model.detreeNodes) == null ? void 0 : _a.find((item) => item.id === id);
27911
+ }
27245
27912
  /**
27246
27913
  * 获取查询参数
27247
27914
  *
@@ -27294,6 +27961,154 @@ var GanttController = class extends MDControlController {
27294
27961
  );
27295
27962
  return nodes;
27296
27963
  }
27964
+ /**
27965
+ * 甘特节点点击事件
27966
+ *
27967
+ * @param {IGanttNodeData} nodeData
27968
+ * @return {*} {Promise<void>}
27969
+ * @memberof GanttController
27970
+ */
27971
+ async onGanttNodeClick(nodeData) {
27972
+ if (this.state.singleSelect) {
27973
+ const { selectedData } = this.state;
27974
+ const filterArr = selectedData.filter((item) => item.id !== nodeData.id);
27975
+ if (filterArr.length === selectedData.length) {
27976
+ this.setSelection(
27977
+ this.state.singleSelect ? [nodeData] : selectedData.concat([nodeData])
27978
+ );
27979
+ } else {
27980
+ this.setSelection(filterArr);
27981
+ }
27982
+ }
27983
+ if (this.state.mdctrlActiveMode === 1) {
27984
+ await this.setActive(nodeData);
27985
+ }
27986
+ }
27987
+ /**
27988
+ * 甘特节点双击事件
27989
+ *
27990
+ * @param {IGanttNodeData} nodeData
27991
+ * @return {*} {Promise<void>}
27992
+ * @memberof GanttController
27993
+ */
27994
+ async onDbGanttNodeClick(nodeData) {
27995
+ if (this.state.mdctrlActiveMode === 2) {
27996
+ await this.setActive(nodeData);
27997
+ }
27998
+ }
27999
+ /**
28000
+ * 设置激活
28001
+ *
28002
+ * @param {IGanttNodeData} item
28003
+ * @return {*} {Promise<void>}
28004
+ * @memberof GanttController
28005
+ */
28006
+ setActive(item) {
28007
+ const nodeParams = this.parseGanttNodeData(item);
28008
+ return this.evt.emit("onActive", { ...nodeParams, nodeData: item });
28009
+ }
28010
+ /**
28011
+ * 设置选中
28012
+ *
28013
+ * @param {IData[]} selection
28014
+ * @memberof GanttController
28015
+ */
28016
+ setSelection(selection) {
28017
+ const selectionIds = selection.map((item) => item.id);
28018
+ const filterArr = this.state.items.filter(
28019
+ (item) => selectionIds.includes(item.id)
28020
+ );
28021
+ super.setSelection(filterArr);
28022
+ }
28023
+ /**
28024
+ * 执行界面行为
28025
+ *
28026
+ * @param {string} uiActionId
28027
+ * @param {IGanttNodeData} nodeData
28028
+ * @param {MouseEvent} event
28029
+ * @param {string} appId
28030
+ * @return {*} {Promise<void>}
28031
+ * @memberof GanttController
28032
+ */
28033
+ async doUIAction(uiActionId, nodeData, event, appId) {
28034
+ const eventArgs = this.getEventArgs();
28035
+ const nodeParams = this.parseGanttNodeData(nodeData);
28036
+ const result = await UIActionUtil.exec(
28037
+ uiActionId,
28038
+ {
28039
+ ...eventArgs,
28040
+ ...nodeParams,
28041
+ event
28042
+ },
28043
+ appId
28044
+ );
28045
+ if (result.closeView) {
28046
+ this.view.closeView();
28047
+ } else if (result.refresh) {
28048
+ switch (result.refreshMode) {
28049
+ case 1:
28050
+ this.refreshNodeChildren(nodeData);
28051
+ break;
28052
+ case 2:
28053
+ this.refreshNodeChildren(nodeData, true);
28054
+ break;
28055
+ case 3:
28056
+ this.refresh();
28057
+ break;
28058
+ default:
28059
+ }
28060
+ }
28061
+ }
28062
+ /**
28063
+ * 解析甘特节点获取通用数据,和完整的上下文和视图参数。
28064
+ *
28065
+ * @protected
28066
+ * @param {IGanttNodeData} nodeData
28067
+ * @return {*} {{
28068
+ * data: IData[];
28069
+ * context: IContext;
28070
+ * params: IParams;
28071
+ * }}
28072
+ * @memberof GanttController
28073
+ */
28074
+ parseGanttNodeData(nodeData) {
28075
+ return {
28076
+ data: [{ ...nodeData, ...nodeData.deData || {} }],
28077
+ context: Object.assign(this.context.clone(), nodeData.context || {}),
28078
+ params: { ...this.params, ...nodeData.params || {} }
28079
+ };
28080
+ }
28081
+ /**
28082
+ * 刷新指定树节点的子节点数据
28083
+ *
28084
+ * @param {(IGanttNodeData | IData)} nodeData 指定树节点数据,可以是节点数据,也可以是对应的实体数据
28085
+ * @param {boolean} [refreshParent=false] 是否是刷新给定节点数据的父节点的子节点数据
28086
+ * @return {*} {Promise<void>}
28087
+ * @memberof GanttController
28088
+ */
28089
+ async refreshNodeChildren(nodeData, refreshParent = false) {
28090
+ const key = nodeData.srfkey ? "srfkey" : "id";
28091
+ const currentNode = this.state.items.find(
28092
+ (item) => item[key] === nodeData[key]
28093
+ );
28094
+ if (!currentNode) {
28095
+ ibiz.log.error("\u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6811\u8282\u70B9\u6570\u636E", nodeData);
28096
+ return;
28097
+ }
28098
+ if (refreshParent) {
28099
+ const { parent } = currentNode;
28100
+ if (!parent || !this.model.rootVisible && this.state.rootNodes.includes(parent)) {
28101
+ this.refresh();
28102
+ return;
28103
+ }
28104
+ }
28105
+ const targetNode = refreshParent ? currentNode.parent : currentNode;
28106
+ const nodes = await this.loadNodes(targetNode);
28107
+ this.evt.emit("onAfterRefreshParent", {
28108
+ parentNode: targetNode,
28109
+ children: nodes
28110
+ });
28111
+ }
27297
28112
  };
27298
28113
 
27299
28114
  // src/controller/hub.controller.ts
@@ -27492,7 +28307,7 @@ var AppHub = class {
27492
28307
  this.registerAppView(appView);
27493
28308
  return appView;
27494
28309
  }
27495
- throw new RuntimeError58("\u89C6\u56FE[".concat(id, "]\u4E0D\u5B58\u5728"));
28310
+ throw new RuntimeError59("\u89C6\u56FE[".concat(id, "]\u4E0D\u5B58\u5728"));
27496
28311
  }
27497
28312
  /**
27498
28313
  * 根据应用实体代码名称查找应用视图
@@ -27523,7 +28338,7 @@ var AppHub = class {
27523
28338
  this.registerAppDataEntity(entity, appId);
27524
28339
  return entity;
27525
28340
  }
27526
- throw new RuntimeError58("\u672A\u627E\u5230\u5E94\u7528\u5B9E\u4F53[".concat(id, "]"));
28341
+ throw new RuntimeError59("\u672A\u627E\u5230\u5E94\u7528\u5B9E\u4F53[".concat(id, "]"));
27527
28342
  }
27528
28343
  /**
27529
28344
  * 新建 hub 应用
@@ -27538,7 +28353,7 @@ var AppHub = class {
27538
28353
  return this.appMap.get(id);
27539
28354
  }
27540
28355
  if (!this.modelLoaderProvider) {
27541
- throw new RuntimeError58("\u8BF7\u5148\u6CE8\u518C\u6A21\u578B\u52A0\u8F7D\u9002\u914D\u5668");
28356
+ throw new RuntimeError59("\u8BF7\u5148\u6CE8\u518C\u6A21\u578B\u52A0\u8F7D\u9002\u914D\u5668");
27542
28357
  }
27543
28358
  const appModel = await this.modelLoaderProvider.getApp(id);
27544
28359
  const app = new Application(appModel);
@@ -27638,7 +28453,7 @@ var EngineFactory = class {
27638
28453
  };
27639
28454
 
27640
28455
  // src/engine/view-base.engine.ts
27641
- import { RuntimeError as RuntimeError59 } from "@ibiz-template/core";
28456
+ import { RuntimeError as RuntimeError60 } from "@ibiz-template/core";
27642
28457
  var ViewEngineBase = class {
27643
28458
  /**
27644
28459
  * 构造函数在视图控制器的构造函数逻辑内部执行
@@ -27826,7 +28641,7 @@ var ViewEngineBase = class {
27826
28641
  const { appDataEntityId } = this.view.model;
27827
28642
  const { evt, context, params } = this.view;
27828
28643
  if (!appDataEntityId) {
27829
- throw new RuntimeError59("\u8BE5\u89C6\u56FE\u6CA1\u6709\u5B9E\u4F53\uFF0C\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u6570\u636E");
28644
+ throw new RuntimeError60("\u8BE5\u89C6\u56FE\u6CA1\u6709\u5B9E\u4F53\uFF0C\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u6570\u636E");
27830
28645
  }
27831
28646
  const app = ibiz.hub.getApp(context.srfappid);
27832
28647
  const res = await app.deService.exec(
@@ -27847,7 +28662,7 @@ var ViewEngineBase = class {
27847
28662
  };
27848
28663
 
27849
28664
  // src/engine/md-view.engine.ts
27850
- import { RuntimeModelError as RuntimeModelError61 } from "@ibiz-template/core";
28665
+ import { RuntimeModelError as RuntimeModelError63 } from "@ibiz-template/core";
27851
28666
  import { clone as clone24 } from "ramda";
27852
28667
  var MDViewEngine = class extends ViewEngineBase {
27853
28668
  /**
@@ -28031,7 +28846,7 @@ var MDViewEngine = class extends ViewEngineBase {
28031
28846
  view: this.view
28032
28847
  }));
28033
28848
  if (result === -1) {
28034
- throw new RuntimeModelError61(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28849
+ throw new RuntimeModelError63(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28035
28850
  } else {
28036
28851
  return {
28037
28852
  cancel: !result.ok
@@ -28054,7 +28869,7 @@ var MDViewEngine = class extends ViewEngineBase {
28054
28869
  (item) => item.id === "newdata"
28055
28870
  );
28056
28871
  if (!openAppViewLogic) {
28057
- throw new RuntimeModelError61(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28872
+ throw new RuntimeModelError63(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28058
28873
  }
28059
28874
  const params = clone24(this.view.params);
28060
28875
  if (copyMode) {
@@ -28068,7 +28883,7 @@ var MDViewEngine = class extends ViewEngineBase {
28068
28883
  view: this.view
28069
28884
  }));
28070
28885
  if (result === -1) {
28071
- throw new RuntimeModelError61(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28886
+ throw new RuntimeModelError63(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
28072
28887
  } else {
28073
28888
  return {
28074
28889
  cancel: !result.ok
@@ -28187,15 +29002,15 @@ var MDViewEngine = class extends ViewEngineBase {
28187
29002
 
28188
29003
  // src/utils/error-handler/default-error-handler.ts
28189
29004
  import {
28190
- RuntimeModelError as RuntimeModelError62,
29005
+ RuntimeModelError as RuntimeModelError64,
28191
29006
  ModelError as ModelError31,
28192
29007
  HttpError as HttpError5,
28193
29008
  NoticeError as NoticeError2,
28194
- RuntimeError as RuntimeError60
29009
+ RuntimeError as RuntimeError61
28195
29010
  } from "@ibiz-template/core";
28196
29011
  var DefaultErrorHandler = class {
28197
29012
  handle(error) {
28198
- if (error instanceof RuntimeModelError62 || error instanceof ModelError31) {
29013
+ if (error instanceof RuntimeModelError64 || error instanceof ModelError31) {
28199
29014
  ibiz.message.error(error.message, 10, true);
28200
29015
  } else if (error instanceof HttpError5) {
28201
29016
  if (error.status === 401) {
@@ -28209,7 +29024,7 @@ var DefaultErrorHandler = class {
28209
29024
  }
28210
29025
  } else if (error instanceof NoticeError2) {
28211
29026
  ibiz.message.error(error.message, error.duration, error.duration === 0);
28212
- } else if (error instanceof RuntimeError60) {
29027
+ } else if (error instanceof RuntimeError61) {
28213
29028
  ibiz.message.error(error.message, 10, true);
28214
29029
  }
28215
29030
  ibiz.log.error(error);
@@ -28351,7 +29166,7 @@ var GlobalUtil = class {
28351
29166
  };
28352
29167
 
28353
29168
  // src/logic-scheduler/executor/logic-executor.ts
28354
- import { RuntimeError as RuntimeError61 } from "@ibiz-template/core";
29169
+ import { RuntimeError as RuntimeError62 } from "@ibiz-template/core";
28355
29170
  var LogicExecutor = class {
28356
29171
  /**
28357
29172
  * @author lxm
@@ -28372,7 +29187,7 @@ var LogicExecutor = class {
28372
29187
  */
28373
29188
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28374
29189
  execute(_executeParams) {
28375
- throw new RuntimeError61("Method not implemented.");
29190
+ throw new RuntimeError62("Method not implemented.");
28376
29191
  }
28377
29192
  /**
28378
29193
  * 销毁方法
@@ -28463,13 +29278,13 @@ var ScriptExecutor = class extends LogicExecutor {
28463
29278
  };
28464
29279
 
28465
29280
  // src/logic-scheduler/executor/app-de-ui-logic-executor.ts
28466
- import { RuntimeModelError as RuntimeModelError63 } from "@ibiz-template/core";
29281
+ import { RuntimeModelError as RuntimeModelError65 } from "@ibiz-template/core";
28467
29282
  var AppDEUILogicExecutor = class extends LogicExecutor {
28468
29283
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28469
29284
  execute(executeParams) {
28470
29285
  const { appDEUILogicId, appDataEntityId } = this.logic;
28471
29286
  if (!appDEUILogicId) {
28472
- throw new RuntimeModelError63(this.logic, "\u6CA1\u6709\u914D\u7F6E\u5B9E\u4F53\u754C\u9762\u903B\u8F91");
29287
+ throw new RuntimeModelError65(this.logic, "\u6CA1\u6709\u914D\u7F6E\u5B9E\u4F53\u754C\u9762\u903B\u8F91");
28473
29288
  }
28474
29289
  execUILogic(appDEUILogicId, appDataEntityId, executeParams);
28475
29290
  }
@@ -28809,7 +29624,7 @@ var LogicSchedulerCenter = class {
28809
29624
  };
28810
29625
 
28811
29626
  // src/logic-scheduler/trigger/logic-trigger.ts
28812
- import { RuntimeError as RuntimeError62 } from "@ibiz-template/core";
29627
+ import { RuntimeError as RuntimeError63 } from "@ibiz-template/core";
28813
29628
  var LogicTrigger = class {
28814
29629
  /**
28815
29630
  * @author lxm
@@ -28869,7 +29684,7 @@ var LogicTrigger = class {
28869
29684
  if (this.executor) {
28870
29685
  return this.executor.execute(executeParams);
28871
29686
  }
28872
- throw new RuntimeError62("".concat(this.logic.id, "\u6CA1\u6709\u7ED1\u5B9Aexecutor"));
29687
+ throw new RuntimeError63("".concat(this.logic.id, "\u6CA1\u6709\u7ED1\u5B9Aexecutor"));
28873
29688
  }
28874
29689
  /**
28875
29690
  * 销毁方法
@@ -28886,12 +29701,12 @@ var CustomTrigger = class extends LogicTrigger {
28886
29701
  };
28887
29702
 
28888
29703
  // src/logic-scheduler/trigger/item-dyna-logic-trigger.ts
28889
- import { RuntimeError as RuntimeError63 } from "@ibiz-template/core";
29704
+ import { RuntimeError as RuntimeError64 } from "@ibiz-template/core";
28890
29705
  var ItemDynaLogicTrigger = class extends LogicTrigger {
28891
29706
  bindExecutor(executor) {
28892
29707
  super.bindExecutor(executor);
28893
29708
  if (this.executor.type !== "SCRIPT") {
28894
- throw new RuntimeError63(
29709
+ throw new RuntimeError64(
28895
29710
  "\u9884\u5B9A\u4E49\u903B\u8F91\u7C7B\u578B".concat(this.type, "\u7684\u89E6\u53D1\u5668\u7C7B\u578B\u53EA\u80FD\u662F\u811A\u672C")
28896
29711
  );
28897
29712
  }
@@ -28927,7 +29742,7 @@ var ItemDynaLogicTrigger = class extends LogicTrigger {
28927
29742
  };
28928
29743
 
28929
29744
  // src/logic-scheduler/trigger/timer-trigger.ts
28930
- import { RuntimeError as RuntimeError64, RuntimeModelError as RuntimeModelError64 } from "@ibiz-template/core";
29745
+ import { RuntimeError as RuntimeError65, RuntimeModelError as RuntimeModelError66 } from "@ibiz-template/core";
28931
29746
  var TimerTrigger = class extends LogicTrigger {
28932
29747
  constructor() {
28933
29748
  super(...arguments);
@@ -28935,11 +29750,11 @@ var TimerTrigger = class extends LogicTrigger {
28935
29750
  }
28936
29751
  start() {
28937
29752
  if (!this.logic.timer) {
28938
- throw new RuntimeModelError64(this.logic, "\u5B9A\u65F6\u5668\u7F3A\u5C11\u5B9A\u65F6\u95F4\u9694");
29753
+ throw new RuntimeModelError66(this.logic, "\u5B9A\u65F6\u5668\u7F3A\u5C11\u5B9A\u65F6\u95F4\u9694");
28939
29754
  }
28940
29755
  this.timer = setInterval(() => {
28941
29756
  if (!this.scheduler.defaultParamsCb) {
28942
- throw new RuntimeError64("\u5B9A\u65F6\u5668\u7F3A\u5C11\u9ED8\u8BA4\u53C2\u6570\u56DE\u8C03");
29757
+ throw new RuntimeError65("\u5B9A\u65F6\u5668\u7F3A\u5C11\u9ED8\u8BA4\u53C2\u6570\u56DE\u8C03");
28943
29758
  }
28944
29759
  const params = this.scheduler.defaultParamsCb();
28945
29760
  this.executor.execute(params);
@@ -28956,8 +29771,8 @@ var TimerTrigger = class extends LogicTrigger {
28956
29771
  // src/logic-scheduler/executor/app-ui-logic-executor.ts
28957
29772
  import {
28958
29773
  ModelError as ModelError34,
28959
- RuntimeError as RuntimeError65,
28960
- RuntimeModelError as RuntimeModelError65
29774
+ RuntimeError as RuntimeError66,
29775
+ RuntimeModelError as RuntimeModelError67
28961
29776
  } from "@ibiz-template/core";
28962
29777
  import { notNilEmpty as notNilEmpty9 } from "qx-util";
28963
29778
  var AppUILogicExecutor = class extends LogicExecutor {
@@ -28965,12 +29780,12 @@ var AppUILogicExecutor = class extends LogicExecutor {
28965
29780
  async execute(executeParams) {
28966
29781
  let result;
28967
29782
  try {
28968
- if (this.logic.id === "opendata" && this.logic.builtinAppUILogic) {
29783
+ if (this.logic.builtinAppUILogic && this.logic.builtinAppUILogic.viewLogicType === "APP_OPENDATA") {
28969
29784
  result = await this.executeOpenDataAppUILogic(
28970
29785
  this.logic.builtinAppUILogic,
28971
29786
  executeParams
28972
29787
  );
28973
- } else if (this.logic.id === "newdata" && this.logic.builtinAppUILogic) {
29788
+ } else if (this.logic.builtinAppUILogic && this.logic.builtinAppUILogic.viewLogicType === "APP_NEWDATA") {
28974
29789
  result = await this.executeNewDataAppUILogic(
28975
29790
  this.logic.builtinAppUILogic,
28976
29791
  executeParams
@@ -28994,7 +29809,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
28994
29809
  const { context, params, ...rest } = parameters;
28995
29810
  const { data } = parameters;
28996
29811
  if (!(data == null ? void 0 : data[0])) {
28997
- throw new RuntimeError65("opendata\u6CA1\u6709\u53EF\u64CD\u4F5C\u6570\u636E\uFF01");
29812
+ throw new RuntimeError66("opendata\u6CA1\u6709\u53EF\u64CD\u4F5C\u6570\u636E\uFF01");
28998
29813
  }
28999
29814
  const openViewRefs = appUILogic.openDataAppViews;
29000
29815
  let openViewRef;
@@ -29003,7 +29818,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29003
29818
  } else {
29004
29819
  openViewRef = appUILogic.openDataAppView;
29005
29820
  if (!openViewRef) {
29006
- throw new RuntimeModelError65(
29821
+ throw new RuntimeModelError67(
29007
29822
  appUILogic,
29008
29823
  "opendata\u89C6\u56FE\u903B\u8F91\u6CA1\u6709\u914D\u7F6E\u9ED8\u8BA4\u6253\u5F00\u89C6\u56FE"
29009
29824
  );
@@ -29011,7 +29826,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29011
29826
  }
29012
29827
  const openView = openViewRef.refAppViewId;
29013
29828
  if (!openView) {
29014
- throw new RuntimeModelError65(
29829
+ throw new RuntimeModelError67(
29015
29830
  appUILogic,
29016
29831
  "opendata\u89C6\u56FE\u903B\u8F91\u7684\u9ED8\u8BA4\u6253\u5F00\u89C6\u56FE\u6CA1\u6709\u5B9E\u9645\u5F15\u7528\u89C6\u56FE"
29017
29832
  );
@@ -29041,7 +29856,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29041
29856
  );
29042
29857
  const typeFileName = appDataEntity.formTypeAppDEFieldId || appDataEntity.dataTypeAppDEFieldId;
29043
29858
  if (!typeFileName) {
29044
- throw new RuntimeModelError65(
29859
+ throw new RuntimeModelError67(
29045
29860
  appUILogic,
29046
29861
  "".concat(appDataEntity.codeName, "[\u591A\u8868\u5355\u5B9E\u4F53] or [\u7D22\u5F15\u5B9E\u4F53]\u7F3A\u5C11\u7C7B\u578B\u5C5E\u6027\u914D\u7F6E")
29047
29862
  );
@@ -29049,12 +29864,12 @@ var AppUILogicExecutor = class extends LogicExecutor {
29049
29864
  const { data } = parameters;
29050
29865
  const formTypeValue = data[0][typeFileName];
29051
29866
  if (!formTypeValue) {
29052
- throw new RuntimeModelError65(appUILogic, "\u6570\u636E\u6E90\u65E0\u8868\u5355\u7C7B\u578B\u5E94\u7528\u5B9E\u4F53\u5C5E\u6027\u503C");
29867
+ throw new RuntimeModelError67(appUILogic, "\u6570\u636E\u6E90\u65E0\u8868\u5355\u7C7B\u578B\u5E94\u7528\u5B9E\u4F53\u5C5E\u6027\u503C");
29053
29868
  }
29054
29869
  const openViewRefs = appUILogic.openDataAppViews;
29055
29870
  const findView = openViewRefs == null ? void 0 : openViewRefs.find((item) => item.refMode === formTypeValue);
29056
29871
  if (!findView) {
29057
- throw new RuntimeError65(
29872
+ throw new RuntimeError66(
29058
29873
  "\u6CA1\u6709\u627E\u5230\u4E0E\u8868\u5355\u7C7B\u578B".concat(formTypeValue, "\u76F8\u5173\u7684\u5B9E\u4F53\u7684\u7F16\u8F91\u89C6\u56FE")
29059
29874
  );
29060
29875
  }
@@ -29091,7 +29906,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29091
29906
  return viewRef.refMode.toLowerCase() !== parentDeName;
29092
29907
  });
29093
29908
  if (!newViewRef) {
29094
- throw new RuntimeModelError65(
29909
+ throw new RuntimeModelError67(
29095
29910
  appUILogic,
29096
29911
  "\u6CA1\u6709\u627E\u5230\u6279\u6DFB\u52A0\u9700\u8981\u6253\u5F00\u7684\u9009\u62E9\u89C6\u56FE"
29097
29912
  );
@@ -29101,7 +29916,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29101
29916
  } else {
29102
29917
  newViewRef = newDataAppView;
29103
29918
  if (!newViewRef || !newViewRef.refAppViewId) {
29104
- throw new RuntimeModelError65(
29919
+ throw new RuntimeModelError67(
29105
29920
  appUILogic,
29106
29921
  "newdata\u89C6\u56FE\u903B\u8F91\u6CA1\u6709\u914D\u7F6E\u9ED8\u8BA4\u65B0\u5EFA\u6570\u636E\u89C6\u56FE"
29107
29922
  );
@@ -29159,7 +29974,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29159
29974
  const { wizardAppView, newDataAppViews } = appUILogic;
29160
29975
  const { context, params, ...rest } = parameters;
29161
29976
  if (!wizardAppView || !wizardAppView.refAppViewId) {
29162
- throw new RuntimeModelError65(appUILogic, "\u7F3A\u5C11\u9ED8\u8BA4\u7D22\u5F15\u5B9E\u4F53\u9009\u62E9\u89C6\u56FE");
29977
+ throw new RuntimeModelError67(appUILogic, "\u7F3A\u5C11\u9ED8\u8BA4\u7D22\u5F15\u5B9E\u4F53\u9009\u62E9\u89C6\u56FE");
29163
29978
  }
29164
29979
  const result = await ibiz.commands.execute(
29165
29980
  OpenAppViewCommand.TAG,
@@ -29173,7 +29988,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29173
29988
  }
29174
29989
  const selectData = (_a = result.data) == null ? void 0 : _a[0];
29175
29990
  if (!selectData) {
29176
- throw new RuntimeError65("\u8BF7\u9009\u4E2D\u4E00\u6761\u6570\u636E");
29991
+ throw new RuntimeError66("\u8BF7\u9009\u4E2D\u4E00\u6761\u6570\u636E");
29177
29992
  }
29178
29993
  const indexType = selectData.srfkey;
29179
29994
  const findView = newDataAppViews == null ? void 0 : newDataAppViews.find(
@@ -29183,7 +29998,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29183
29998
  }
29184
29999
  );
29185
30000
  if (!findView) {
29186
- throw new RuntimeError65(
30001
+ throw new RuntimeError66(
29187
30002
  "\u6CA1\u6709\u627E\u5230\u4E0E\u7D22\u5F15\u7C7B\u578B".concat(indexType, "\u76F8\u5173\u7684\u5B9E\u4F53\u7684\u7F16\u8F91\u89C6\u56FE")
29188
30003
  );
29189
30004
  }
@@ -29210,7 +30025,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
29210
30025
  const minorDERs = selfDe.minorAppDERSs;
29211
30026
  const pickParentDeName = newViewRef.refMode.toLowerCase();
29212
30027
  if (!minorDERs) {
29213
- throw new RuntimeModelError65(selfDe, "\u5B9E\u4F53\u6CA1\u6709\u4ECE\u5173\u7CFB\u96C6\u5408\uFF01");
30028
+ throw new RuntimeModelError67(selfDe, "\u5B9E\u4F53\u6CA1\u6709\u4ECE\u5173\u7CFB\u96C6\u5408\uFF01");
29214
30029
  }
29215
30030
  let pickParentFieldName;
29216
30031
  minorDERs == null ? void 0 : minorDERs.forEach((item) => {
@@ -29309,12 +30124,12 @@ var ControlEventTrigger = class extends LogicTrigger {
29309
30124
  };
29310
30125
 
29311
30126
  // src/logic-scheduler/executor/app-ui-action-executor.ts
29312
- import { RuntimeModelError as RuntimeModelError66 } from "@ibiz-template/core";
30127
+ import { RuntimeModelError as RuntimeModelError68 } from "@ibiz-template/core";
29313
30128
  var AppDEUIActionExecutor = class extends LogicExecutor {
29314
30129
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29315
30130
  execute(executeParams) {
29316
30131
  if (!this.logic.appDEUIActionId) {
29317
- throw new RuntimeModelError66(
30132
+ throw new RuntimeModelError68(
29318
30133
  this.logic,
29319
30134
  "\u903B\u8F91\u4E2D\u7F3A\u5C11\u89E6\u53D1\u5E94\u7528\u5B9E\u4F53\u754C\u9762\u884C\u4E3Aid"
29320
30135
  );