@ibiz-template/runtime 0.5.3-beta.4 → 0.5.3-beta.5

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 (69) hide show
  1. package/dist/index.esm.js +913 -174
  2. package/dist/index.system.min.js +1 -1
  3. package/out/command/app/open-app-view/open-app-view.js +2 -2
  4. package/out/controller/constant/control/index.d.ts +1 -0
  5. package/out/controller/constant/control/index.d.ts.map +1 -1
  6. package/out/controller/constant/control/index.js +1 -0
  7. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts +5 -0
  8. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts.map +1 -0
  9. package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.js +6 -0
  10. package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
  11. package/out/controller/control/form/form/form.controller.js +4 -1
  12. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +1 -0
  13. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -1
  14. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +1 -0
  15. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +10 -0
  16. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts.map +1 -1
  17. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +12 -0
  18. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts +34 -0
  19. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts.map +1 -1
  20. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.js +68 -0
  21. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts +205 -0
  22. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts.map +1 -0
  23. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.js +345 -0
  24. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts +3 -0
  25. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts.map +1 -1
  26. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.js +14 -1
  27. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +16 -8
  28. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -1
  29. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -12
  30. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +59 -0
  31. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  32. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +238 -1
  33. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +23 -1
  34. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
  35. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +17 -0
  36. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
  37. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +60 -2
  38. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
  39. package/out/interface/provider/i-async-action.provider.d.ts +3 -2
  40. package/out/interface/provider/i-async-action.provider.d.ts.map +1 -1
  41. package/out/register/helper/app-menu-item-register.d.ts.map +1 -1
  42. package/out/register/helper/app-menu-item-register.js +1 -6
  43. package/out/service/dto/method.dto.js +1 -1
  44. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +1 -1
  45. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  46. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +16 -17
  47. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts +6 -0
  48. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  49. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +93 -41
  50. package/package.json +4 -4
  51. package/src/command/app/open-app-view/open-app-view.ts +2 -2
  52. package/src/controller/constant/control/index.ts +1 -0
  53. package/src/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.ts +5 -0
  54. package/src/controller/control/form/form/form.controller.ts +11 -1
  55. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +1 -0
  56. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +22 -0
  57. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts +88 -2
  58. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts +522 -0
  59. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts +18 -1
  60. package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +43 -12
  61. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +296 -1
  62. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +27 -2
  63. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +15 -1
  64. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +64 -2
  65. package/src/interface/provider/i-async-action.provider.ts +3 -2
  66. package/src/register/helper/app-menu-item-register.ts +1 -5
  67. package/src/service/dto/method.dto.ts +1 -1
  68. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +15 -23
  69. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +111 -46
package/dist/index.esm.js CHANGED
@@ -3028,7 +3028,7 @@ async function handleAllSettled(values, isThrow = true) {
3028
3028
 
3029
3029
  // src/command/app/open-app-view/open-app-view.ts
3030
3030
  import { ModelError as ModelError15, RuntimeError as RuntimeError23 } from "@ibiz-template/core";
3031
- import { clone as clone15 } from "ramda";
3031
+ import { clone as clone16 } from "ramda";
3032
3032
 
3033
3033
  // src/service/utils/de-dq-cond/ps-de-dq-cond-engine.ts
3034
3034
  import { isEmpty as isEmpty3 } from "ramda";
@@ -4050,11 +4050,7 @@ async function getAppMenuItemProvider(model) {
4050
4050
  }
4051
4051
  }
4052
4052
  provider = getProvider14(itemType);
4053
- if (!provider) {
4054
- ibiz.log.error("\u627E\u4E0D\u5230\u5E94\u7528\u83DC\u5355\u9879\u7C7B\u578B".concat(itemType, "\u5BF9\u5E94\u7684\u9002\u914D\u5668"));
4055
- } else {
4056
- return provider;
4057
- }
4053
+ return provider;
4058
4054
  }
4059
4055
 
4060
4056
  // src/service/utils/app-counter/app-counter.ts
@@ -4550,26 +4546,23 @@ var DynamicCodeListCache = class {
4550
4546
  *
4551
4547
  * @return {codeListItem[] | undefined}
4552
4548
  */
4553
- prepareTreeData(items, pValue) {
4554
- const { pvalueAppDEFieldId } = this.codeList;
4555
- let filteredData = [];
4556
- filteredData = items.filter((item) => {
4557
- if (pValue) {
4558
- return item[pvalueAppDEFieldId] === pValue;
4549
+ prepareTreeData(items) {
4550
+ const { valueAppDEFieldId, pvalueAppDEFieldId } = this.codeList;
4551
+ const map = {};
4552
+ const nestedList = [];
4553
+ items.forEach((data) => {
4554
+ map[data[valueAppDEFieldId]] = this.convertData(data);
4555
+ });
4556
+ items.forEach((data) => {
4557
+ const parent = map[data[pvalueAppDEFieldId]];
4558
+ if (parent) {
4559
+ parent.children = parent.children || [];
4560
+ parent.children.push(map[data[valueAppDEFieldId]]);
4561
+ } else {
4562
+ nestedList.push(map[data[valueAppDEFieldId]]);
4559
4563
  }
4560
- return !item[pvalueAppDEFieldId];
4561
- });
4562
- if (filteredData.length === 0) {
4563
- return;
4564
- }
4565
- return filteredData.map((data) => {
4566
- const tempCodeListItem = this.convertData(data);
4567
- tempCodeListItem.children = this.prepareTreeData(
4568
- items,
4569
- tempCodeListItem.value
4570
- );
4571
- return tempCodeListItem;
4572
4564
  });
4565
+ return nestedList;
4573
4566
  }
4574
4567
  /**
4575
4568
  * 获取动态的代码项
@@ -6142,7 +6135,7 @@ var MethodDto = class {
6142
6135
  }
6143
6136
  const dto = await this.getFieldDto(context, field);
6144
6137
  const items = datum[key];
6145
- if (items) {
6138
+ if (items && items.length > 0) {
6146
6139
  const pKey = datum[this.entity.keyAppDEFieldId];
6147
6140
  if (field.refPickupAppDEFieldId) {
6148
6141
  items.forEach((item) => {
@@ -9200,15 +9193,14 @@ var TreeCodeListNodeData = class extends TreeNodeData {
9200
9193
 
9201
9194
  // src/service/vo/tree-node-data/tree-data-set-node-data.ts
9202
9195
  import { updateKeyDefine } from "@ibiz-template/core";
9203
- import { isNil as isNil12 } from "ramda";
9204
- var TreeDataSetNodeData = class extends TreeNodeData {
9196
+ import { clone as clone15, isNil as isNil12 } from "ramda";
9197
+ var CloneExcludeKeys = ["_id", "_value", "_text", "_deData", "clone"];
9198
+ var TreeDataSetNodeData = class _TreeDataSetNodeData extends TreeNodeData {
9205
9199
  constructor(model, parentNodeData, opts) {
9206
9200
  var _a, _b;
9207
9201
  super(model, parentNodeData, opts);
9208
9202
  const { data } = opts;
9209
9203
  this._deData = data;
9210
- this._text = model.textAppDEFieldId ? data[model.textAppDEFieldId] : data.srfmajortext;
9211
- this._value = model.idAppDEFieldId ? data[model.idAppDEFieldId] : data.srfkey;
9212
9204
  const selfId = "".concat(model.id, "@").concat(data.srfkey).toLowerCase();
9213
9205
  Object.defineProperty(this, "_id", {
9214
9206
  get() {
@@ -9217,6 +9209,20 @@ var TreeDataSetNodeData = class extends TreeNodeData {
9217
9209
  enumerable: true,
9218
9210
  configurable: true
9219
9211
  });
9212
+ Object.defineProperty(this, "_text", {
9213
+ get() {
9214
+ return model.textAppDEFieldId ? data[model.textAppDEFieldId] : data.srfmajortext;
9215
+ },
9216
+ enumerable: true,
9217
+ configurable: true
9218
+ });
9219
+ Object.defineProperty(this, "_value", {
9220
+ get() {
9221
+ return model.idAppDEFieldId ? data[model.idAppDEFieldId] : data.srfkey;
9222
+ },
9223
+ enumerable: true,
9224
+ configurable: true
9225
+ });
9220
9226
  if (model.appDataEntityId) {
9221
9227
  const deName = calcDeCodeNameById(model.appDataEntityId);
9222
9228
  this._context = Object.assign(this._context || {}, {
@@ -9229,14 +9235,13 @@ var TreeDataSetNodeData = class extends TreeNodeData {
9229
9235
  this._leaf = fieldValueToBoolean(data[model.leafFlagAppDEFieldId]);
9230
9236
  }
9231
9237
  const dataItemKeyMap = /* @__PURE__ */ new Map();
9232
- dataItemKeyMap.set("srfkey", "srfkey");
9233
- dataItemKeyMap.set("srfmajortext", "srfmajortext");
9238
+ const dataItemDefaultMap = /* @__PURE__ */ new Map();
9234
9239
  (_a = model.detreeNodeDataItems) == null ? void 0 : _a.forEach((dataItem) => {
9235
- const uiKey = dataItem.id.toLowerCase();
9240
+ const dataItemKey = dataItem.id.toLowerCase();
9236
9241
  const deFieldKey = dataItem.appDEFieldId.toLowerCase();
9237
- dataItemKeyMap.set(uiKey, deFieldKey);
9238
- if (dataItem.defaultValue && isNil12(data[deFieldKey])) {
9239
- data[deFieldKey] = dataItem.defaultValue;
9242
+ dataItemKeyMap.set(dataItemKey, deFieldKey);
9243
+ if (dataItem.defaultValue) {
9244
+ dataItemDefaultMap.set(dataItemKey, dataItem.defaultValue);
9240
9245
  }
9241
9246
  });
9242
9247
  const nodeColumnKeyMap = /* @__PURE__ */ new Map();
@@ -9246,35 +9251,60 @@ var TreeDataSetNodeData = class extends TreeNodeData {
9246
9251
  if (!columnKey || !dataItemKey) {
9247
9252
  ibiz.log.error("\u6A21\u578B\u5F02\u5E38\u7F3A\u5C11detreeColumnId\u6216\u8005dataItemName", column);
9248
9253
  } else {
9249
- nodeColumnKeyMap.set(columnKey, dataItemKeyMap.get(dataItemKey));
9254
+ nodeColumnKeyMap.set(columnKey, dataItemKey);
9250
9255
  }
9251
9256
  });
9257
+ const getDeKey = (key) => {
9258
+ if (nodeColumnKeyMap.has(key)) {
9259
+ return dataItemKeyMap.get(nodeColumnKeyMap.get(key));
9260
+ }
9261
+ if (dataItemKeyMap.has(key)) {
9262
+ return dataItemKeyMap.get(key);
9263
+ }
9264
+ if (Object.prototype.hasOwnProperty.call(this._deData, key)) {
9265
+ return key;
9266
+ }
9267
+ };
9268
+ const getKeyDefault = (key) => {
9269
+ if (nodeColumnKeyMap.has(key)) {
9270
+ return dataItemDefaultMap.get(nodeColumnKeyMap.get(key));
9271
+ }
9272
+ if (dataItemDefaultMap.has(key)) {
9273
+ return dataItemDefaultMap.get(key);
9274
+ }
9275
+ };
9276
+ this.clone = () => {
9277
+ const cloneData = clone15(this._deData);
9278
+ const cloneNodeData = new _TreeDataSetNodeData(model, this._parent, {
9279
+ data: cloneData,
9280
+ leaf: this._leaf,
9281
+ navContext: this._context,
9282
+ navParams: this._params
9283
+ });
9284
+ Object.keys(this).forEach((key) => {
9285
+ const deKey = getDeKey(key);
9286
+ if (isNil12(deKey) && !CloneExcludeKeys.includes(key)) {
9287
+ cloneNodeData[key] = this[key];
9288
+ }
9289
+ });
9290
+ return cloneNodeData;
9291
+ };
9252
9292
  return new Proxy(this, {
9253
9293
  set(target, p, value) {
9254
- if (nodeColumnKeyMap.has(p)) {
9255
- target._deData[nodeColumnKeyMap.get(p)] = value;
9256
- } else if (dataItemKeyMap.has(p)) {
9257
- target._deData[dataItemKeyMap.get(p)] = value;
9258
- } else if (Object.prototype.hasOwnProperty.call(target._deData, p)) {
9259
- target._deData[p] = value;
9294
+ const deKey = getDeKey(p);
9295
+ if (!isNil12(deKey)) {
9296
+ target._deData[deKey] = value;
9260
9297
  } else {
9261
9298
  target[p] = value;
9262
9299
  }
9263
9300
  return true;
9264
9301
  },
9265
9302
  get(target, p, _receiver) {
9266
- if (target[p] !== void 0) {
9267
- return target[p];
9268
- }
9269
- if (nodeColumnKeyMap.has(p)) {
9270
- return target._deData[nodeColumnKeyMap.get(p)];
9271
- }
9272
- if (dataItemKeyMap.has(p)) {
9273
- return target._deData[dataItemKeyMap.get(p)];
9274
- }
9275
- if (target._deData[p] !== void 0) {
9276
- return target._deData[p];
9303
+ const deKey = getDeKey(p);
9304
+ if (!isNil12(deKey)) {
9305
+ return isNil12(target._deData[deKey]) ? getKeyDefault(p) : target._deData[deKey];
9277
9306
  }
9307
+ return target[p];
9278
9308
  },
9279
9309
  ownKeys(target) {
9280
9310
  const allKeys = [
@@ -10062,7 +10092,7 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
10062
10092
  * @return {*} {(Promise<IModalData | void>)}
10063
10093
  */
10064
10094
  async exec(appViewId, _context, params = {}, opts = {}) {
10065
- const context = clone15(_context);
10095
+ const context = clone16(_context);
10066
10096
  const appView = await ibiz.hub.config.view.get(appViewId);
10067
10097
  if (!appView) {
10068
10098
  throw new RuntimeError23("\u5E94\u7528\u89C6\u56FE[".concat(appViewId, "]\u4E0D\u5B58\u5728"));
@@ -10091,7 +10121,7 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
10091
10121
  const viewOpenMode = opts.openMode || openMode;
10092
10122
  if (viewOpenMode !== void 0 && viewOpenMode !== "INDEXVIEWTAB") {
10093
10123
  if (context.toRouteDepth) {
10094
- delete context.toRouteDepth;
10124
+ context.toRouteDepth = void 0;
10095
10125
  }
10096
10126
  }
10097
10127
  switch (viewOpenMode) {
@@ -10333,7 +10363,7 @@ function installCommand() {
10333
10363
  }
10334
10364
 
10335
10365
  // src/app-hub.ts
10336
- import { RuntimeError as RuntimeError61 } from "@ibiz-template/core";
10366
+ import { RuntimeError as RuntimeError63 } from "@ibiz-template/core";
10337
10367
 
10338
10368
  // src/application.ts
10339
10369
  import { Net, getToken } from "@ibiz-template/core";
@@ -10622,6 +10652,13 @@ var PanelNotifyState = /* @__PURE__ */ ((PanelNotifyState2) => {
10622
10652
  return PanelNotifyState2;
10623
10653
  })(PanelNotifyState || {});
10624
10654
 
10655
+ // src/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.ts
10656
+ var TreeGridExNotifyState = /* @__PURE__ */ ((TreeGridExNotifyState2) => {
10657
+ TreeGridExNotifyState2["LOAD"] = "LOAD";
10658
+ TreeGridExNotifyState2["SAVE"] = "SAVE";
10659
+ return TreeGridExNotifyState2;
10660
+ })(TreeGridExNotifyState || {});
10661
+
10625
10662
  // src/controller/common/view/view.controller.ts
10626
10663
  import { notNilEmpty as notNilEmpty6 } from "qx-util";
10627
10664
  import { IBizContext as IBizContext2, RuntimeError as RuntimeError32 } from "@ibiz-template/core";
@@ -12619,7 +12656,7 @@ var CodeListEditorController = class extends EditorController {
12619
12656
 
12620
12657
  // src/controller/common/control/control.controller.ts
12621
12658
  import { IBizContext as IBizContext3, IBizParams, NoticeError as NoticeError2 } from "@ibiz-template/core";
12622
- import { clone as clone16, isNil as isNil20 } from "ramda";
12659
+ import { clone as clone17, isNil as isNil20 } from "ramda";
12623
12660
  import { notNilEmpty as notNilEmpty7 } from "qx-util";
12624
12661
  var ControlController = class extends BaseController {
12625
12662
  /**
@@ -12661,7 +12698,7 @@ var ControlController = class extends BaseController {
12661
12698
  "".concat(model.controlType, "_DEFAULT")
12662
12699
  );
12663
12700
  if (panelModel) {
12664
- this.controlPanel = clone16(panelModel);
12701
+ this.controlPanel = clone17(panelModel);
12665
12702
  }
12666
12703
  }
12667
12704
  this.updateContextParams({});
@@ -13933,7 +13970,7 @@ import isSameOrBefore from "dayjs/plugin/isSameOrBefore";
13933
13970
  import quarterOfYear from "dayjs/plugin/quarterOfYear";
13934
13971
  import weekOfYear from "dayjs/plugin/weekOfYear";
13935
13972
  import isoWeek from "dayjs/plugin/isoWeek";
13936
- import { clone as clone17, isNil as isNil21, mergeDeepRight } from "ramda";
13973
+ import { clone as clone18, isNil as isNil21, mergeDeepRight } from "ramda";
13937
13974
  dayjs4.extend(minMax);
13938
13975
  dayjs4.extend(isSameOrBefore);
13939
13976
  dayjs4.extend(quarterOfYear);
@@ -14208,7 +14245,7 @@ var BaseSeriesGenerator = class {
14208
14245
  dataPreprocess(data) {
14209
14246
  const tempData = [];
14210
14247
  data.forEach((singleData) => {
14211
- tempData.push(clone17(singleData));
14248
+ tempData.push(clone18(singleData));
14212
14249
  });
14213
14250
  const { groupMode } = this.model;
14214
14251
  if (groupMode) {
@@ -15259,7 +15296,7 @@ import { ModelError as ModelError19, RuntimeModelError as RuntimeModelError31 }
15259
15296
 
15260
15297
  // src/ui-logic/utils/handle-src-val.ts
15261
15298
  import { ModelError as ModelError18 } from "@ibiz-template/core";
15262
- import { clone as clone18 } from "ramda";
15299
+ import { clone as clone19 } from "ramda";
15263
15300
  function handleSrcVal2(ctx, srcValParams) {
15264
15301
  const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
15265
15302
  const srcValueType = srcValParams.srcValueType || "SRCDLPARAM";
@@ -15286,7 +15323,7 @@ function handleSrcVal2(ctx, srcValParams) {
15286
15323
  value = ctx.parameters.context;
15287
15324
  break;
15288
15325
  case "ENVPARAM":
15289
- value = clone18(ibiz.env);
15326
+ value = clone19(ibiz.env);
15290
15327
  break;
15291
15328
  default:
15292
15329
  throw new ModelError18(srcValParams, "\u6682\u672A\u652F\u6301\u6E90\u503C\u7C7B\u578B".concat(srcValueType));
@@ -15645,7 +15682,7 @@ var EndNode2 = class extends UILogicNode {
15645
15682
 
15646
15683
  // src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts
15647
15684
  import { ModelError as ModelError22, RuntimeError as RuntimeError39 } from "@ibiz-template/core";
15648
- import { clone as clone19 } from "ramda";
15685
+ import { clone as clone20 } from "ramda";
15649
15686
  var PrepareJSParamNode = class extends UILogicNode {
15650
15687
  async exec(ctx) {
15651
15688
  const nodeParams = this.model.deuilogicNodeParams;
@@ -15734,7 +15771,7 @@ var PrepareJSParamNode = class extends UILogicNode {
15734
15771
  copyParam(nodeParam, ctx) {
15735
15772
  const { dstDEUILogicParamId } = nodeParam;
15736
15773
  const srcVal = handleSrcVal2(ctx, nodeParam);
15737
- ctx.params[dstDEUILogicParamId] = clone19(srcVal);
15774
+ ctx.params[dstDEUILogicParamId] = clone20(srcVal);
15738
15775
  }
15739
15776
  /**
15740
15777
  * 绑定参数
@@ -15961,7 +15998,7 @@ var ResetParamNode2 = class extends UILogicNode {
15961
15998
 
15962
15999
  // src/ui-logic/ui-logic-node/copy-param-node/copy-param-node.ts
15963
16000
  import { RuntimeModelError as RuntimeModelError40 } from "@ibiz-template/core";
15964
- import { clone as clone20 } from "ramda";
16001
+ import { clone as clone21 } from "ramda";
15965
16002
  var CopyParamNode2 = class extends UILogicNode {
15966
16003
  async exec(ctx) {
15967
16004
  const { dstDEUILogicParamId, srcDEUILogicParamId } = this.model;
@@ -15972,7 +16009,7 @@ var CopyParamNode2 = class extends UILogicNode {
15972
16009
  );
15973
16010
  }
15974
16011
  const srcVal = handleSrcVal2(ctx, this.model);
15975
- ctx.params[dstDEUILogicParamId] = clone20(srcVal);
16012
+ ctx.params[dstDEUILogicParamId] = clone21(srcVal);
15976
16013
  }
15977
16014
  };
15978
16015
 
@@ -19025,7 +19062,11 @@ var ChartExpBarController = class extends ExpBarControlController {
19025
19062
  import { RuntimeError as RuntimeError50 } from "@ibiz-template/core";
19026
19063
 
19027
19064
  // src/controller/control/form/form/form.controller.ts
19028
- import { debounceAndAsyncMerge, recursiveIterate as recursiveIterate3 } from "@ibiz-template/core";
19065
+ import {
19066
+ RuntimeModelError as RuntimeModelError55,
19067
+ debounceAndAsyncMerge,
19068
+ recursiveIterate as recursiveIterate3
19069
+ } from "@ibiz-template/core";
19029
19070
  var FormController = class extends ControlController {
19030
19071
  constructor() {
19031
19072
  super(...arguments);
@@ -19149,6 +19190,12 @@ var FormController = class extends ControlController {
19149
19190
  if (!detailProvider) {
19150
19191
  return;
19151
19192
  }
19193
+ if (form.details[detail.id]) {
19194
+ throw new RuntimeModelError55(
19195
+ detail,
19196
+ "\u521D\u59CB\u5316\u5F02\u5E38: \u8868\u5355\u6210\u5458[".concat(detail.id, "](").concat(detail.detailType, ")\u5DF2\u5B58\u5728\uFF0C\u8868\u5355\u9879\u6807\u8BC6\u91CD\u590D\u8BF7\u68C0\u67E5\u914D\u7F6E")
19197
+ );
19198
+ }
19152
19199
  form.providers[detail.id] = detailProvider;
19153
19200
  const detailController = await detailProvider.createController(
19154
19201
  detail,
@@ -20786,7 +20833,7 @@ var FormMDCtrlController = class extends FormDetailController {
20786
20833
  import {
20787
20834
  mergeInLeft,
20788
20835
  ModelError as ModelError27,
20789
- RuntimeModelError as RuntimeModelError55
20836
+ RuntimeModelError as RuntimeModelError56
20790
20837
  } from "@ibiz-template/core";
20791
20838
  var FormMDCtrlMDController = class extends FormMDCtrlController {
20792
20839
  constructor() {
@@ -20812,7 +20859,7 @@ var FormMDCtrlMDController = class extends FormMDCtrlController {
20812
20859
  await super.onInit();
20813
20860
  const { contentControl } = this.model;
20814
20861
  if (!contentControl) {
20815
- throw new RuntimeModelError55(this.model, "\u591A\u6570\u636E\u90E8\u4EF6\u672A\u914D\u7F6E\u5185\u5BB9\u90E8\u4EF6");
20862
+ throw new RuntimeModelError56(this.model, "\u591A\u6570\u636E\u90E8\u4EF6\u672A\u914D\u7F6E\u5185\u5BB9\u90E8\u4EF6");
20816
20863
  }
20817
20864
  if (contentControl.controlType === "GRID") {
20818
20865
  mergeInLeft(contentControl, {
@@ -20909,7 +20956,7 @@ var FormMDCtrlMDController = class extends FormMDCtrlController {
20909
20956
  };
20910
20957
 
20911
20958
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts
20912
- import { RuntimeError as RuntimeError51, RuntimeModelError as RuntimeModelError56 } from "@ibiz-template/core";
20959
+ import { RuntimeError as RuntimeError51, RuntimeModelError as RuntimeModelError57 } from "@ibiz-template/core";
20913
20960
  import { createUUID as createUUID11 } from "qx-util";
20914
20961
 
20915
20962
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.ts
@@ -20950,7 +20997,7 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
20950
20997
  super.onInit();
20951
20998
  const { contentControl } = this.model;
20952
20999
  if (!contentControl) {
20953
- throw new RuntimeModelError56(this.model, "\u591A\u6570\u636E\u90E8\u4EF6\u672A\u914D\u7F6E\u5185\u5BB9\u90E8\u4EF6");
21000
+ throw new RuntimeModelError57(this.model, "\u591A\u6570\u636E\u90E8\u4EF6\u672A\u914D\u7F6E\u5185\u5BB9\u90E8\u4EF6");
20954
21001
  }
20955
21002
  contentControl.enableAutoSave = this.enableCreate || this.enableUpdate;
20956
21003
  const controlProvider = await getControlProvider(contentControl);
@@ -21084,7 +21131,7 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
21084
21131
 
21085
21132
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts
21086
21133
  import { ModelError as ModelError28 } from "@ibiz-template/core";
21087
- import { clone as clone21 } from "ramda";
21134
+ import { clone as clone22 } from "ramda";
21088
21135
  var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
21089
21136
  constructor() {
21090
21137
  super(...arguments);
@@ -21168,7 +21215,7 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
21168
21215
  copyFields.forEach((key) => {
21169
21216
  tempForm[key] = this.form.model[key];
21170
21217
  });
21171
- this.repeatedForm = clone21(tempForm);
21218
+ this.repeatedForm = clone22(tempForm);
21172
21219
  }
21173
21220
  /**
21174
21221
  * 设置重复器数据(修改主表单里重复器对应属性)
@@ -21298,12 +21345,12 @@ import {
21298
21345
  } from "@ibiz-template/core";
21299
21346
  import { debounce as debounce2 } from "lodash-es";
21300
21347
  import { createUUID as createUUID12 } from "qx-util";
21301
- import { clone as clone22 } from "ramda";
21348
+ import { clone as clone23 } from "ramda";
21302
21349
 
21303
21350
  // src/controller/control/form/edit-form/edit-form.service.ts
21304
21351
  import {
21305
21352
  recursiveIterate as recursiveIterate6,
21306
- RuntimeModelError as RuntimeModelError57
21353
+ RuntimeModelError as RuntimeModelError58
21307
21354
  } from "@ibiz-template/core";
21308
21355
  var EditFormService = class extends FormService {
21309
21356
  /**
@@ -21427,7 +21474,7 @@ var EditFormService = class extends FormService {
21427
21474
  const wizardForm = this.model;
21428
21475
  const methodName = (_a = wizardForm.goBackControlAction) == null ? void 0 : _a.appDEMethodId;
21429
21476
  if (!methodName) {
21430
- throw new RuntimeModelError57(this.model, "\u7F3A\u5C11\u8FD4\u56DE\u64CD\u4F5C\u5B9E\u4F53\u884C\u4E3A");
21477
+ throw new RuntimeModelError58(this.model, "\u7F3A\u5C11\u8FD4\u56DE\u64CD\u4F5C\u5B9E\u4F53\u884C\u4E3A");
21431
21478
  }
21432
21479
  let res = await this.exec(
21433
21480
  methodName,
@@ -21663,8 +21710,8 @@ var EditFormController = class extends FormController {
21663
21710
  * @return {*} {Promise<IData>}
21664
21711
  */
21665
21712
  async copy() {
21666
- const context = clone22(this.context);
21667
- const queryParams = clone22(this.params);
21713
+ const context = clone23(this.context);
21714
+ const queryParams = clone23(this.params);
21668
21715
  const appDataEntity = await ibiz.hub.getAppDataEntity(
21669
21716
  this.model.appDataEntityId,
21670
21717
  this.model.appId
@@ -21721,7 +21768,7 @@ var EditFormController = class extends FormController {
21721
21768
  return this.loadDraft();
21722
21769
  }
21723
21770
  const { context, params } = this.handlerAbilityParams(args);
21724
- const queryParams = clone22(params);
21771
+ const queryParams = clone23(params);
21725
21772
  let res;
21726
21773
  try {
21727
21774
  await this.startLoading();
@@ -22287,12 +22334,12 @@ import {
22287
22334
  mergeDefaultInLeft,
22288
22335
  recursiveIterate as recursiveIterate7,
22289
22336
  RuntimeError as RuntimeError53,
22290
- RuntimeModelError as RuntimeModelError59
22337
+ RuntimeModelError as RuntimeModelError60
22291
22338
  } from "@ibiz-template/core";
22292
- import { clone as clone23 } from "ramda";
22339
+ import { clone as clone24 } from "ramda";
22293
22340
 
22294
22341
  // src/controller/control/grid/grid/grid.service.ts
22295
- import { RuntimeModelError as RuntimeModelError58 } from "@ibiz-template/core";
22342
+ import { RuntimeModelError as RuntimeModelError59 } from "@ibiz-template/core";
22296
22343
  var GridService = class extends MDControlService {
22297
22344
  /**
22298
22345
  * 初始化属性映射
@@ -22320,7 +22367,7 @@ var GridService = class extends MDControlService {
22320
22367
  dataType: dataItem.dataType
22321
22368
  });
22322
22369
  } else {
22323
- throw new RuntimeModelError58(
22370
+ throw new RuntimeModelError59(
22324
22371
  column,
22325
22372
  "\u672A\u627E\u5230\u5BF9\u5E94\u7684\u8868\u683C\u6570\u636E\u9879[".concat(deField, "]")
22326
22373
  );
@@ -22599,7 +22646,7 @@ var GridController = class extends MDControlController {
22599
22646
  const result = await calcColumnModelBySchema(json, this);
22600
22647
  if (result && result.degridColumns.length > 0) {
22601
22648
  const { degridColumns, degridDataItems } = result;
22602
- this.model = clone23(this.model);
22649
+ this.model = clone24(this.model);
22603
22650
  this.model.degridColumns = [
22604
22651
  ...(this.model.degridColumns || []).filter((item) => {
22605
22652
  return degridColumns.findIndex((x) => x.id === item.id) === -1;
@@ -22630,11 +22677,11 @@ var GridController = class extends MDControlController {
22630
22677
  (item) => item.model.appDEFieldId === groupAppDEFieldId
22631
22678
  );
22632
22679
  if (!this.groupFieldColumn) {
22633
- throw new RuntimeModelError59(this.model, "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217");
22680
+ throw new RuntimeModelError60(this.model, "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217");
22634
22681
  }
22635
22682
  const groupFieldName = this.groupFieldColumn.model.id;
22636
22683
  if (!this.groupFieldColumn.model.appCodeListId) {
22637
- throw new RuntimeModelError59(
22684
+ throw new RuntimeModelError60(
22638
22685
  this.groupFieldColumn.model,
22639
22686
  "\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217".concat(groupFieldName, "\u6CA1\u6709\u914D\u7F6E\u4EE3\u7801\u8868")
22640
22687
  );
@@ -22644,7 +22691,7 @@ var GridController = class extends MDControlController {
22644
22691
  );
22645
22692
  if (index !== -1 && index !== 0) {
22646
22693
  if (this.isMultistageHeader) {
22647
- throw new RuntimeModelError59(
22694
+ throw new RuntimeModelError60(
22648
22695
  this.model,
22649
22696
  "\u8BF7\u5C06\u5206\u7EC4\u5C5E\u6027\u5217".concat(groupFieldName, "\u914D\u7F6E\u4E3A\u7B2C\u4E00\u5217")
22650
22697
  );
@@ -22654,10 +22701,10 @@ var GridController = class extends MDControlController {
22654
22701
  }
22655
22702
  if (groupMode === "CODELIST") {
22656
22703
  if (!groupCodeListId) {
22657
- throw new RuntimeModelError59(this.model, "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868");
22704
+ throw new RuntimeModelError60(this.model, "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868");
22658
22705
  }
22659
22706
  if (this.groupFieldColumn.model.appCodeListId !== groupCodeListId) {
22660
- throw new RuntimeModelError59(
22707
+ throw new RuntimeModelError60(
22661
22708
  this.model,
22662
22709
  "\u5206\u7EC4\u4EE3\u7801\u8868\u4E0E\u5C5E\u6027\u5217".concat(groupFieldName, "\u7684\u4EE3\u7801\u8868\u4E0D\u4E00\u81F4")
22663
22710
  );
@@ -22744,7 +22791,7 @@ var GridController = class extends MDControlController {
22744
22791
  return;
22745
22792
  }
22746
22793
  if (!aggAppDEDataSetId || !aggAppDataEntityId) {
22747
- throw new RuntimeModelError59(this.model, "\u7F3A\u5C11\u914D\u7F6E\u805A\u5408\u5B9E\u4F53\u6216\u805A\u5408\u6570\u636E\u96C6");
22794
+ throw new RuntimeModelError60(this.model, "\u7F3A\u5C11\u914D\u7F6E\u805A\u5408\u5B9E\u4F53\u6216\u805A\u5408\u6570\u636E\u96C6");
22748
22795
  }
22749
22796
  const params = await this.getFetchParams();
22750
22797
  const app = ibiz.hub.getApp(this.context.srfappid);
@@ -23114,7 +23161,7 @@ var GridController = class extends MDControlController {
23114
23161
  throw new RuntimeError53("\u540C\u65F6\u53EA\u80FD\u6709\u4E00\u884C\u5F00\u542F\u884C\u7F16\u8F91");
23115
23162
  }
23116
23163
  if (row.data.srfuf === 1 /* UPDATE */) {
23117
- row.cacheData = clone23(row.data);
23164
+ row.cacheData = clone24(row.data);
23118
23165
  const defaultVal = this.calcDefaultValue(row.data, false);
23119
23166
  Object.assign(row.data, defaultVal);
23120
23167
  }
@@ -23283,7 +23330,7 @@ var GridController = class extends MDControlController {
23283
23330
  }
23284
23331
  });
23285
23332
  }
23286
- const cloneData = clone23(
23333
+ const cloneData = clone24(
23287
23334
  data2.map((item) => {
23288
23335
  return item.getOrigin();
23289
23336
  })
@@ -23521,7 +23568,7 @@ var GridController = class extends MDControlController {
23521
23568
  import { DataTypes as DataTypes4, ModelError as ModelError29, plus as plus2 } from "@ibiz-template/core";
23522
23569
  import dayjs5 from "dayjs";
23523
23570
  import { debounce as debounce3 } from "lodash-es";
23524
- import { clone as clone24, isNil as isNil23 } from "ramda";
23571
+ import { clone as clone25, isNil as isNil23 } from "ramda";
23525
23572
  var GridFieldColumnController = class extends GridColumnController {
23526
23573
  constructor() {
23527
23574
  super(...arguments);
@@ -23650,7 +23697,7 @@ var GridFieldColumnController = class extends GridColumnController {
23650
23697
  srfkey: value,
23651
23698
  ...wfContext
23652
23699
  });
23653
- const tempParams = clone24(this.params);
23700
+ const tempParams = clone25(this.params);
23654
23701
  const { context: newContext, params: newParams } = this.handlePublicParams(
23655
23702
  row.data,
23656
23703
  tempContext,
@@ -23821,7 +23868,7 @@ var GridFieldColumnController = class extends GridColumnController {
23821
23868
  };
23822
23869
 
23823
23870
  // src/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.ts
23824
- import { RuntimeModelError as RuntimeModelError60 } from "@ibiz-template/core";
23871
+ import { RuntimeModelError as RuntimeModelError61 } from "@ibiz-template/core";
23825
23872
  var GridUAColumnController = class extends GridColumnController {
23826
23873
  /**
23827
23874
  * 给rowController初始化操作列的状态
@@ -23834,7 +23881,7 @@ var GridUAColumnController = class extends GridColumnController {
23834
23881
  var _a;
23835
23882
  const { deuiactionGroup } = this.model;
23836
23883
  if (!deuiactionGroup) {
23837
- throw new RuntimeModelError60(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
23884
+ throw new RuntimeModelError61(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
23838
23885
  }
23839
23886
  if (!((_a = deuiactionGroup.uiactionGroupDetails) == null ? void 0 : _a.length)) {
23840
23887
  ibiz.log.debug("\u64CD\u4F5C\u5217\u754C\u9762\u884C\u4E3A\u7EC4\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A");
@@ -25050,10 +25097,10 @@ import {
25050
25097
  mergeInLeft as mergeInLeft3,
25051
25098
  recursiveIterate as recursiveIterate9
25052
25099
  } from "@ibiz-template/core";
25053
- import { clone as clone25, isNil as isNil24 } from "ramda";
25100
+ import { clone as clone26, isNil as isNil24 } from "ramda";
25054
25101
 
25055
25102
  // src/controller/control/search-bar/search-bar-filter.controller.ts
25056
- import { RuntimeModelError as RuntimeModelError61 } from "@ibiz-template/core";
25103
+ import { RuntimeModelError as RuntimeModelError62 } from "@ibiz-template/core";
25057
25104
  var ExcludeOPs = [
25058
25105
  "ISNULL" /* IS_NULL */,
25059
25106
  "ISNOTNULL" /* IS_NOT_NULL */
@@ -25094,7 +25141,7 @@ var SearchBarFilterController = class {
25094
25141
  async init() {
25095
25142
  if (!this.noEditor) {
25096
25143
  if (!this.model.editor) {
25097
- throw new RuntimeModelError61(this.model, "\u7F3A\u5C11\u7F16\u8F91\u5668\u6A21\u578B");
25144
+ throw new RuntimeModelError62(this.model, "\u7F3A\u5C11\u7F16\u8F91\u5668\u6A21\u578B");
25098
25145
  }
25099
25146
  this.editorProvider = await getEditorProvider(this.model.editor);
25100
25147
  if (this.editorProvider) {
@@ -25554,7 +25601,7 @@ var SearchBarController = class extends ControlController {
25554
25601
  }
25555
25602
  });
25556
25603
  if (addSearchBarFilters.length > 0) {
25557
- this.model = clone25(this.model);
25604
+ this.model = clone26(this.model);
25558
25605
  this.model.searchBarFilters = addSearchBarFilters.concat(...mergeFilters);
25559
25606
  this.model.enableFilter = true;
25560
25607
  }
@@ -26138,7 +26185,7 @@ var TabExpPanelController = class extends ControlController {
26138
26185
  // src/controller/control/tree/tree.controller.ts
26139
26186
  import {
26140
26187
  RuntimeError as RuntimeError57,
26141
- RuntimeModelError as RuntimeModelError62,
26188
+ RuntimeModelError as RuntimeModelError63,
26142
26189
  recursiveIterate as recursiveIterate10
26143
26190
  } from "@ibiz-template/core";
26144
26191
 
@@ -27009,7 +27056,7 @@ var TreeController = class extends MDControlController {
27009
27056
  const { sortAppDEFieldId, sortDir, allowOrder } = orderNodeModel;
27010
27057
  if (allowOrder === true) {
27011
27058
  if (!sortAppDEFieldId) {
27012
- throw new RuntimeModelError62(orderNodeModel, "\u7F3A\u5C11\u914D\u7F6E\u6392\u5E8F\u5C5E\u6027");
27059
+ throw new RuntimeModelError63(orderNodeModel, "\u7F3A\u5C11\u914D\u7F6E\u6392\u5E8F\u5C5E\u6027");
27013
27060
  }
27014
27061
  const sortField = sortAppDEFieldId.toLowerCase();
27015
27062
  const isAsc = sortDir === "ASC";
@@ -27090,7 +27137,7 @@ var TreeController = class extends MDControlController {
27090
27137
  async modifyNodeText(nodeData, text) {
27091
27138
  const model = this.getNodeModel(nodeData._nodeId);
27092
27139
  if (!model.allowEditText) {
27093
- throw new RuntimeModelError62(model, "\u6811\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u7F16\u8F91\u6A21\u5F0F\uFF1A\u540D\u79F0");
27140
+ throw new RuntimeModelError63(model, "\u6811\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u7F16\u8F91\u6A21\u5F0F\uFF1A\u540D\u79F0");
27094
27141
  }
27095
27142
  if (!nodeData._deData) {
27096
27143
  throw new RuntimeError57("\u4E0D\u662F\u5B9E\u4F53\u6811\u8282\u70B9\u6570\u636E");
@@ -27454,7 +27501,7 @@ var WizardPanelController = class extends ControlController {
27454
27501
  };
27455
27502
 
27456
27503
  // src/controller/control/md-ctrl/md-ctrl.controller.ts
27457
- import { RuntimeModelError as RuntimeModelError63 } from "@ibiz-template/core";
27504
+ import { RuntimeModelError as RuntimeModelError64 } from "@ibiz-template/core";
27458
27505
  import { isNil as isNil25 } from "ramda";
27459
27506
 
27460
27507
  // src/controller/control/md-ctrl/md-ctrl.service.ts
@@ -27661,7 +27708,7 @@ var MDCtrlController = class extends MDControlController {
27661
27708
  const { enableGroup, groupMode, groupAppDEFieldId } = this.model;
27662
27709
  if (enableGroup && groupMode) {
27663
27710
  if (!groupAppDEFieldId) {
27664
- throw new RuntimeModelError63(this.model, "\u5206\u7EC4\u5C5E\u6027\u6CA1\u6709\u914D\u7F6E");
27711
+ throw new RuntimeModelError64(this.model, "\u5206\u7EC4\u5C5E\u6027\u6CA1\u6709\u914D\u7F6E");
27665
27712
  }
27666
27713
  if (groupMode === "AUTO") {
27667
27714
  this.handleAutoGroup();
@@ -27728,7 +27775,7 @@ var MDCtrlController = class extends MDControlController {
27728
27775
  async handleCodeListGroup() {
27729
27776
  const { groupAppDEFieldId, groupCodeListId } = this.model;
27730
27777
  if (!groupCodeListId) {
27731
- throw new RuntimeModelError63(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
27778
+ throw new RuntimeModelError64(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
27732
27779
  }
27733
27780
  const { items } = this.state;
27734
27781
  const groupMap = /* @__PURE__ */ new Map();
@@ -27758,7 +27805,7 @@ var MDCtrlController = class extends MDControlController {
27758
27805
  };
27759
27806
 
27760
27807
  // src/controller/control/kanban/kanban.controller.ts
27761
- import { RuntimeError as RuntimeError59, RuntimeModelError as RuntimeModelError64 } from "@ibiz-template/core";
27808
+ import { RuntimeError as RuntimeError59, RuntimeModelError as RuntimeModelError65 } from "@ibiz-template/core";
27762
27809
  import { isNil as isNil26 } from "ramda";
27763
27810
 
27764
27811
  // src/controller/control/kanban/kanban.service.ts
@@ -27836,10 +27883,10 @@ var KanbanController = class extends DataViewControlController {
27836
27883
  const sortField = this.model.minorSortAppDEFieldId;
27837
27884
  const { minorSortDir } = this.model;
27838
27885
  if (!sortField) {
27839
- throw new RuntimeModelError64(this.model, "\u6392\u5E8F\u5C5E\u6027\u6CA1\u914D\u7F6E");
27886
+ throw new RuntimeModelError65(this.model, "\u6392\u5E8F\u5C5E\u6027\u6CA1\u914D\u7F6E");
27840
27887
  }
27841
27888
  if (!minorSortDir) {
27842
- throw new RuntimeModelError64(this.model, "\u6392\u5E8F\u65B9\u5411\u6CA1\u914D\u7F6E");
27889
+ throw new RuntimeModelError65(this.model, "\u6392\u5E8F\u65B9\u5411\u6CA1\u914D\u7F6E");
27843
27890
  }
27844
27891
  const isAsc = minorSortDir === "ASC";
27845
27892
  items.forEach((item) => {
@@ -27983,7 +28030,7 @@ var KanbanController = class extends DataViewControlController {
27983
28030
  async handleCodeListGroup() {
27984
28031
  const { groupAppDEFieldId, groupCodeListId } = this.model;
27985
28032
  if (!groupCodeListId) {
27986
- throw new RuntimeModelError64(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
28033
+ throw new RuntimeModelError65(this.model, "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E");
27987
28034
  }
27988
28035
  const { items } = this.state;
27989
28036
  const groupMap = /* @__PURE__ */ new Map();
@@ -28277,7 +28324,12 @@ var KanbanController = class extends DataViewControlController {
28277
28324
  };
28278
28325
 
28279
28326
  // src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts
28280
- import { recursiveIterate as recursiveIterate11 } from "@ibiz-template/core";
28327
+ import {
28328
+ RuntimeError as RuntimeError60,
28329
+ awaitTimeout as awaitTimeout3,
28330
+ recursiveIterate as recursiveIterate11
28331
+ } from "@ibiz-template/core";
28332
+ import { clone as clone27 } from "ramda";
28281
28333
 
28282
28334
  // src/controller/control/tree-grid-ex/tree-grid-ex.service.ts
28283
28335
  var TreeGridExService = class extends TreeService {
@@ -28286,18 +28338,29 @@ var TreeGridExService = class extends TreeService {
28286
28338
  // src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts
28287
28339
  var TreeGridExRowState = class {
28288
28340
  constructor(data, treeGrid) {
28289
- /**
28290
- * 操作列状态(p是操作列的标识)
28291
- *
28292
- * @author lxm
28293
- * @date 2022-09-07 22:09:38
28294
- * @type {({ [p: string]: IButtonContainerState })}
28295
- */
28296
- this.uaColStates = {};
28341
+ this.errors = {};
28342
+ this.columnActionsStates = {};
28343
+ this.editColStates = {};
28344
+ this.modified = false;
28345
+ this.showRowEdit = false;
28346
+ this.processing = false;
28297
28347
  this.data = data;
28298
- Object.values(treeGrid.uaColumns).forEach((column) => {
28299
- column.initActionStates(this);
28300
- });
28348
+ if (data._nodeType === "DE") {
28349
+ Object.values(treeGrid.uaColumns).forEach((column) => {
28350
+ column.initActionStates(this);
28351
+ });
28352
+ Object.values(treeGrid.fieldColumns).forEach((column) => {
28353
+ column.initActionStates(this);
28354
+ });
28355
+ Object.values(treeGrid.fieldColumns).forEach((fieldColumn) => {
28356
+ this.editColStates[fieldColumn.name] = {
28357
+ disabled: false,
28358
+ readonly: false,
28359
+ editable: ibiz.config.grid.editShowMode === "all",
28360
+ required: false
28361
+ };
28362
+ });
28363
+ }
28301
28364
  }
28302
28365
  };
28303
28366
 
@@ -28342,6 +28405,9 @@ var TreeGridExController = class extends TreeController {
28342
28405
  */
28343
28406
  this.uaColumns = {};
28344
28407
  }
28408
+ get _evt() {
28409
+ return this.evt;
28410
+ }
28345
28411
  /**
28346
28412
  * 是否有配置宽度自适应列
28347
28413
  *
@@ -28361,11 +28427,22 @@ var TreeGridExController = class extends TreeController {
28361
28427
  get overflowMode() {
28362
28428
  return ibiz.config.grid.overflowMode;
28363
28429
  }
28430
+ /**
28431
+ * 允许使用行编辑
28432
+ * @author lxm
28433
+ * @date 2023-08-17 02:52:07
28434
+ * @readonly
28435
+ * @type {boolean}
28436
+ */
28437
+ get allowRowEdit() {
28438
+ return this.state.rowEditOpen;
28439
+ }
28364
28440
  initState() {
28365
28441
  super.initState();
28366
28442
  this.state.columnStates = [];
28367
28443
  this.state.rootNodes = [];
28368
28444
  this.state.rows = {};
28445
+ this.state.rowEditOpen = true;
28369
28446
  }
28370
28447
  async onCreated() {
28371
28448
  await super.onCreated();
@@ -28501,6 +28578,202 @@ var TreeGridExController = class extends TreeController {
28501
28578
  convertColumnCaption(this.model.detreeColumns);
28502
28579
  }
28503
28580
  }
28581
+ async save(nodeData) {
28582
+ if (this.state.isSimple) {
28583
+ ibiz.log.debug("\u7B80\u5355\u6A21\u5F0F\uFF0C\u4E0D\u4FDD\u5B58");
28584
+ return;
28585
+ }
28586
+ if (nodeData._nodeType !== "DE") {
28587
+ throw new RuntimeError60("\u975E\u5B9E\u4F53\u8282\u70B9\u6570\u636E\u4E0D\u80FD\u4FDD\u5B58");
28588
+ }
28589
+ const rowState = this.state.rows[nodeData._uuid];
28590
+ if (!rowState) {
28591
+ throw new RuntimeError60("\u884C\u6570\u636E\u4E0D\u5B58\u5728");
28592
+ }
28593
+ if (!rowState.modified) {
28594
+ ibiz.log.debug("\u503C\u6CA1\u6709\u53D1\u751F\u6539\u53D8");
28595
+ return;
28596
+ }
28597
+ if (rowState.processing) {
28598
+ await awaitTimeout3(500, this.save.bind(this), [nodeData]);
28599
+ return;
28600
+ }
28601
+ const nodeModel = this.getNodeModel(nodeData._nodeId);
28602
+ const { appDataEntityId } = nodeModel;
28603
+ const isCreate = nodeData._deData.srfuf === 0 /* CREATE */;
28604
+ if (isCreate) {
28605
+ throw new RuntimeError60("\u6682\u4E0D\u652F\u6301\u65B0\u5EFA");
28606
+ }
28607
+ const methodAction = "update";
28608
+ const deName = calcDeCodeNameById(appDataEntityId);
28609
+ const tempContext = this.context.clone();
28610
+ tempContext[deName] = nodeData._deData.srfkey;
28611
+ const app = ibiz.hub.getApp(this.context.srfappid);
28612
+ let res;
28613
+ try {
28614
+ res = await app.deService.exec(
28615
+ appDataEntityId,
28616
+ methodAction,
28617
+ tempContext,
28618
+ nodeData._deData
28619
+ );
28620
+ } catch (error) {
28621
+ await this._evt.emit("onSaveError", void 0);
28622
+ this.actionNotification("".concat(isCreate ? "CREATE" : "UPDATE", "ERROR"), {
28623
+ error,
28624
+ data: rowState.data
28625
+ });
28626
+ throw error;
28627
+ }
28628
+ rowState.data._deData = res.data;
28629
+ rowState.modified = false;
28630
+ this.gridStateNotify(rowState, "SAVE" /* SAVE */);
28631
+ await this._evt.emit("onSaveSuccess", void 0);
28632
+ }
28633
+ async saveAll() {
28634
+ const needSaveData = Object.values(this.state.rows).filter((row) => row.modified).map((row) => row.data);
28635
+ if (!needSaveData.length) {
28636
+ return;
28637
+ }
28638
+ await handleAllSettled(
28639
+ needSaveData.map((data) => {
28640
+ return this.save(data);
28641
+ })
28642
+ );
28643
+ }
28644
+ /**
28645
+ * 树表格状态变更通知
28646
+ *
28647
+ * @author lxm
28648
+ * @date 2022-09-20 18:09:07
28649
+ */
28650
+ gridStateNotify(row, state) {
28651
+ Object.values(this.columns).forEach((column) => {
28652
+ column.gridStateNotify(row, state);
28653
+ });
28654
+ }
28655
+ /**
28656
+ * 设置行属性的值
28657
+ *
28658
+ * @author lxm
28659
+ * @date 2022-08-24 10:08:40
28660
+ * @param {GridRowState} row 行状态控制器
28661
+ * @param {unknown} value 要设置的值
28662
+ * @param {string} name 要设置的表单数据的属性名称
28663
+ */
28664
+ async setRowValue(row, name, value) {
28665
+ if (Object.prototype.hasOwnProperty.call(row.data, name) && !isValueChange(row.data[name], value)) {
28666
+ return;
28667
+ }
28668
+ row.data[name] = value;
28669
+ row.modified = true;
28670
+ row.processing = true;
28671
+ try {
28672
+ await this.dataChangeNotify(row, [name]);
28673
+ } finally {
28674
+ row.processing = false;
28675
+ }
28676
+ }
28677
+ /**
28678
+ * 通知所有表格编辑项成员表格编辑项数据变更
28679
+ *
28680
+ * @author lxm
28681
+ * @date 2022-09-20 22:09:49
28682
+ * @param {GridRowState} row 行数据
28683
+ * @param {string[]} names 更新的属性
28684
+ */
28685
+ async dataChangeNotify(row, names) {
28686
+ await handleAllSettled(
28687
+ Object.values(this.columns).map(async (column) => {
28688
+ return column.dataChangeNotify(row, names);
28689
+ })
28690
+ );
28691
+ }
28692
+ async toggleRowEdit() {
28693
+ this.state.rowEditOpen = !this.state.rowEditOpen;
28694
+ }
28695
+ /**
28696
+ * 计算默认值并返回一个对象,对象里的属性就是要填充的默认值
28697
+ * 没有的属性就是不需要填充默认值的属性
28698
+ * @author lxm
28699
+ * @date 2023-09-18 04:01:06
28700
+ * @param {IData} data
28701
+ * @param {boolean} isCreate
28702
+ * @return {*} {IData}
28703
+ */
28704
+ calcDefaultValue(data, isCreate) {
28705
+ const result = {};
28706
+ Object.values(this.fieldColumns).forEach((c) => {
28707
+ const nodeColumn = c.nodeColumnControllerMap.get(data._nodeId);
28708
+ if (!nodeColumn || !nodeColumn.nodeEditItem) {
28709
+ return;
28710
+ }
28711
+ const { createDV, createDVT, updateDV, updateDVT } = nodeColumn.nodeEditItem;
28712
+ const valueType = isCreate ? createDVT : updateDVT;
28713
+ const defaultValue = isCreate ? createDV : updateDV;
28714
+ const defaultVal = getDefaultValue(
28715
+ {
28716
+ name: c.name,
28717
+ valueType,
28718
+ defaultValue,
28719
+ valueFormat: nodeColumn.valueFormat
28720
+ },
28721
+ { data, context: this.context, params: this.params }
28722
+ );
28723
+ if (defaultVal !== void 0) {
28724
+ result[c.name] = defaultVal;
28725
+ }
28726
+ });
28727
+ return result;
28728
+ }
28729
+ /**
28730
+ * 切换单行的编辑状态
28731
+ * @author lxm
28732
+ * @date 2023-08-08 06:45:54
28733
+ * @param {GridRowState} row
28734
+ * @param {boolean} [editable]
28735
+ */
28736
+ async switchRowEdit(row, editable, isSave = true) {
28737
+ if (!this.allowRowEdit) {
28738
+ return;
28739
+ }
28740
+ if (row.data._nodeType !== "DE") {
28741
+ return;
28742
+ }
28743
+ const toState = editable === void 0 ? !row.showRowEdit : editable;
28744
+ if (row.showRowEdit === toState) {
28745
+ return;
28746
+ }
28747
+ if (toState === false) {
28748
+ if (isSave) {
28749
+ await this.save(row.data);
28750
+ } else if (row.data._deData.srfuf === 0 /* CREATE */) {
28751
+ row.showRowEdit = false;
28752
+ this._evt.emit("onRowEditChange", { row });
28753
+ return this.remove({ data: [row.data], silent: true });
28754
+ } else if (row.cacheData) {
28755
+ row.data = row.cacheData;
28756
+ delete row.cacheData;
28757
+ }
28758
+ } else {
28759
+ const editingRow = Object.values(this.state.rows).find(
28760
+ (item) => item.showRowEdit
28761
+ );
28762
+ if (editingRow) {
28763
+ throw new RuntimeError60("\u540C\u65F6\u53EA\u80FD\u6709\u4E00\u884C\u5F00\u542F\u884C\u7F16\u8F91");
28764
+ }
28765
+ if (row.data._deData.srfuf === 1 /* UPDATE */) {
28766
+ row.cacheData = clone27(row.data);
28767
+ const defaultVal = this.calcDefaultValue(row.data, false);
28768
+ Object.assign(row.data, defaultVal);
28769
+ }
28770
+ }
28771
+ row.showRowEdit = toState;
28772
+ Object.values(this.fieldColumns).forEach((column) => {
28773
+ row.editColStates[column.name].editable = toState;
28774
+ });
28775
+ this._evt.emit("onRowEditChange", { row });
28776
+ }
28504
28777
  };
28505
28778
 
28506
28779
  // src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts
@@ -28585,14 +28858,468 @@ var TreeGridExColumnController = class {
28585
28858
  */
28586
28859
  async onInit() {
28587
28860
  }
28861
+ /**
28862
+ * 表格状态变更通知
28863
+ *
28864
+ * @author lxm
28865
+ * @date 2022-09-20 18:09:07
28866
+ */
28867
+ gridStateNotify(_row, _state) {
28868
+ }
28869
+ async dataChangeNotify(_row, _names) {
28870
+ }
28871
+ };
28872
+
28873
+ // src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts
28874
+ import {
28875
+ DataTypes as DataTypes5,
28876
+ RuntimeError as RuntimeError61,
28877
+ RuntimeModelError as RuntimeModelError66
28878
+ } from "@ibiz-template/core";
28879
+ import { clone as clone28 } from "ramda";
28880
+ import dayjs6 from "dayjs";
28881
+ var TreeGridExNodeColumnController = class {
28882
+ /**
28883
+ * @author lxm
28884
+ * @date 2024-01-09 10:04:05
28885
+ * @param {TreeGridExFieldColumnController} fieldColumn 树表格属性列控制器
28886
+ * @param {IDETreeNode} nodeModel 对应实体节点模型
28887
+ */
28888
+ constructor(fieldColumn, nodeModel) {
28889
+ this.fieldColumn = fieldColumn;
28890
+ this.nodeModel = nodeModel;
28891
+ /**
28892
+ * 代码表模型
28893
+ * @return {*}
28894
+ * @author: zhujiamin
28895
+ * @Date: 2023-05-24 10:55:50
28896
+ */
28897
+ this.codeList = void 0;
28898
+ const { detreeNodeColumns, detreeNodeDataItems, detreeNodeEditItems } = nodeModel;
28899
+ const nodeColumn = detreeNodeColumns == null ? void 0 : detreeNodeColumns.find((column) => {
28900
+ return column.detreeColumnId === this.fieldColumn.model.id;
28901
+ });
28902
+ const nodeDataItem = detreeNodeDataItems == null ? void 0 : detreeNodeDataItems.find(
28903
+ (treeNodeDataItem) => {
28904
+ return treeNodeDataItem.id === nodeColumn.dataItemName;
28905
+ }
28906
+ );
28907
+ if (!nodeColumn || !nodeDataItem) {
28908
+ throw new RuntimeModelError66(
28909
+ nodeModel,
28910
+ "\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u5BF9\u5E94\u8868\u683C\u5217".concat(this.fieldColumn.name, "\u7684\u6570\u636E\u9879")
28911
+ );
28912
+ }
28913
+ this.nodeColumn = nodeColumn;
28914
+ this.nodeDataItem = nodeDataItem;
28915
+ if (nodeColumn.enableRowEdit) {
28916
+ const nodeEditItem = detreeNodeEditItems == null ? void 0 : detreeNodeEditItems.find(
28917
+ (treeNodeEditItem) => {
28918
+ return treeNodeEditItem.id === nodeColumn.id;
28919
+ }
28920
+ );
28921
+ if (!nodeEditItem) {
28922
+ throw new RuntimeModelError66(
28923
+ nodeModel,
28924
+ "\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u8868\u683C\u5217".concat(this.fieldColumn.name, "\u7684\u7F16\u8F91\u9879\u6A21\u578B")
28925
+ );
28926
+ }
28927
+ this.nodeEditItem = nodeEditItem;
28928
+ }
28929
+ }
28930
+ get unitName() {
28931
+ var _a;
28932
+ return (_a = this.nodeEditItem) == null ? void 0 : _a.unitName;
28933
+ }
28934
+ get valueFormat() {
28935
+ return this.nodeColumn.valueFormat;
28936
+ }
28937
+ get context() {
28938
+ return this.fieldColumn.context;
28939
+ }
28940
+ get params() {
28941
+ return this.fieldColumn.params;
28942
+ }
28943
+ get dataType() {
28944
+ var _a;
28945
+ return (_a = this.nodeDataItem) == null ? void 0 : _a.dataType;
28946
+ }
28947
+ /**
28948
+ * 树表格列标识(用于取数和各种比较判断)
28949
+ * @author lxm
28950
+ * @date 2024-01-09 11:33:37
28951
+ * @readonly
28952
+ * @type {string}
28953
+ */
28954
+ get name() {
28955
+ return this.fieldColumn.name;
28956
+ }
28957
+ /**
28958
+ *树表格增强部件
28959
+ * @author lxm
28960
+ * @date 2024-01-10 11:49:23
28961
+ * @readonly
28962
+ * @type {TreeGridExController}
28963
+ */
28964
+ get treeGrid() {
28965
+ return this.fieldColumn.treeGrid;
28966
+ }
28967
+ /**
28968
+ * 是否是链接列
28969
+ *
28970
+ * @author lxm
28971
+ * @date 2022-09-28 17:09:15
28972
+ * @returns {*}
28973
+ */
28974
+ get isLinkColumn() {
28975
+ return !!this.nodeColumn.enableLinkView && !!this.nodeColumn.linkAppViewId;
28976
+ }
28977
+ /**
28978
+ * 是否有触发界面行为
28979
+ *
28980
+ * @author lxm
28981
+ * @date 2022-12-08 14:12:37
28982
+ * @readonly
28983
+ * @type {boolean}
28984
+ */
28985
+ get hasClickAction() {
28986
+ return !!this.nodeColumn.deuiactionId;
28987
+ }
28988
+ /**
28989
+ * 单元格超出呈现模式
28990
+ * @author lxm
28991
+ * @date 2024-01-09 05:36:36
28992
+ * @readonly
28993
+ * @type {('wrap' | 'ellipsis')}
28994
+ */
28995
+ get overflowMode() {
28996
+ return this.fieldColumn.treeGrid.overflowMode;
28997
+ }
28998
+ /**
28999
+ * 初始化
29000
+ * @author lxm
29001
+ * @date 2024-01-09 10:02:16
29002
+ * @return {*} {Promise<void>}
29003
+ */
29004
+ async init() {
29005
+ var _a;
29006
+ if (((_a = this.nodeEditItem) == null ? void 0 : _a.editor) && this.nodeEditItem.editor.editorType !== "HIDDEN") {
29007
+ this.editorProvider = await getEditorProvider(this.nodeEditItem.editor);
29008
+ if (this.editorProvider) {
29009
+ this.editor = await this.editorProvider.createController(
29010
+ this.nodeEditItem.editor,
29011
+ this
29012
+ );
29013
+ }
29014
+ }
29015
+ if (!this.nodeEditItem) {
29016
+ await this.loadCodeList();
29017
+ }
29018
+ }
29019
+ /**
29020
+ * 初始化属性列界面行为组按钮状态
29021
+ *
29022
+ * @author lxm
29023
+ * @date 2022-09-07 21:09:43
29024
+ * @param {GridRowState} row
29025
+ */
29026
+ initActionStates(row) {
29027
+ const { deuiactionGroup } = this.nodeColumn;
29028
+ if (deuiactionGroup && deuiactionGroup.uiactionGroupDetails) {
29029
+ const containerState = new ButtonContainerState();
29030
+ deuiactionGroup.uiactionGroupDetails.forEach((detail) => {
29031
+ const actionid = detail.uiactionId;
29032
+ if (actionid) {
29033
+ const buttonState = new UIActionButtonState(
29034
+ detail.id,
29035
+ this.context.srfappid,
29036
+ actionid
29037
+ );
29038
+ containerState.addState(detail.id, buttonState);
29039
+ }
29040
+ });
29041
+ row.columnActionsStates[this.name] = containerState;
29042
+ }
29043
+ }
29044
+ /**
29045
+ * 文本点击事件
29046
+ *
29047
+ * @author zk
29048
+ * @date 2023-07-13 12:07:53
29049
+ * @param {MouseEvent} event
29050
+ */
29051
+ onTextClick(row, event) {
29052
+ if (this.isLinkColumn) {
29053
+ event.stopPropagation();
29054
+ this.openLinkView(row, event);
29055
+ } else if (this.hasClickAction) {
29056
+ event.stopPropagation();
29057
+ this.triggerAction(row, event);
29058
+ }
29059
+ }
29060
+ /**
29061
+ * 打开链接视图
29062
+ *
29063
+ * @author lxm
29064
+ * @date 2024-01-09 02:45:34
29065
+ * @param {ITreeGridExRowState} row
29066
+ * @param {MouseEvent} event
29067
+ * @return {*} {Promise<void>}
29068
+ */
29069
+ async openLinkView(row, event) {
29070
+ const curValue = row.data[this.fieldColumn.name];
29071
+ if (!curValue) {
29072
+ return;
29073
+ }
29074
+ const valueItem = this.nodeColumn.linkValueItem || "srfkey";
29075
+ const value = row.data[valueItem];
29076
+ if (value == null) {
29077
+ throw new RuntimeError61("\u672A\u5728\u884C\u6570\u636E\u4E2D\u53D6\u5230 ".concat(valueItem, " \u7684\u503C"));
29078
+ }
29079
+ const { linkAppViewId } = this.nodeColumn;
29080
+ if (!linkAppViewId) {
29081
+ return;
29082
+ }
29083
+ const wfContext = getWFContext(row.data);
29084
+ const tempContext = Object.assign(this.context.clone(), {
29085
+ srfkey: value,
29086
+ ...wfContext
29087
+ });
29088
+ const tempParams = clone28(this.params);
29089
+ const { userParam } = this.nodeColumn;
29090
+ if (userParam) {
29091
+ const { navigateContexts, navigateParams } = parseUserParams(userParam);
29092
+ let selfContext = {};
29093
+ if (navigateContexts && row.data) {
29094
+ selfContext = convertNavData(
29095
+ navigateContexts,
29096
+ row.data,
29097
+ tempParams,
29098
+ tempContext
29099
+ );
29100
+ }
29101
+ Object.assign(tempContext, selfContext);
29102
+ let selfParams = {};
29103
+ if (navigateParams && row.data) {
29104
+ selfParams = convertNavData(
29105
+ navigateParams,
29106
+ row.data,
29107
+ tempParams,
29108
+ tempContext
29109
+ );
29110
+ }
29111
+ Object.assign(tempParams, selfParams);
29112
+ }
29113
+ const res = await ibiz.commands.execute(
29114
+ OpenAppViewCommand.TAG,
29115
+ linkAppViewId,
29116
+ tempContext,
29117
+ tempParams,
29118
+ { event }
29119
+ );
29120
+ if (res == null ? void 0 : res.ok) {
29121
+ this.fieldColumn.treeGrid.refresh();
29122
+ }
29123
+ }
29124
+ /**
29125
+ * 触发表格列附加界面行为
29126
+ *
29127
+ * @author lxm
29128
+ * @date 2022-12-08 15:12:35
29129
+ * @param {GridRowState} row 行数据
29130
+ * @param {MouseEvent} event 鼠标事件
29131
+ * @returns {*} {Promise<void>}
29132
+ */
29133
+ async triggerAction(row, event) {
29134
+ const actionId = this.nodeColumn.deuiactionId;
29135
+ await UIActionUtil.execAndResolved(
29136
+ actionId,
29137
+ {
29138
+ context: this.context,
29139
+ params: this.params,
29140
+ data: [row.data],
29141
+ view: this.treeGrid.view,
29142
+ event
29143
+ },
29144
+ this.nodeColumn.appId
29145
+ );
29146
+ }
29147
+ /**
29148
+ * 触发界面行为组点击事件
29149
+ *
29150
+ * @author lxm
29151
+ * @date 2024-01-11 02:26:12
29152
+ * @param {IUIActionGroupDetail} detail
29153
+ * @param {ITreeGridExRowState} row
29154
+ * @param {MouseEvent} event
29155
+ * @return {*} {Promise<void>}
29156
+ */
29157
+ async onActionClick(detail, row, event) {
29158
+ const actionId = detail.uiactionId;
29159
+ await UIActionUtil.execAndResolved(
29160
+ actionId,
29161
+ {
29162
+ context: this.context,
29163
+ params: this.params,
29164
+ data: [row.data],
29165
+ view: this.treeGrid.view,
29166
+ event
29167
+ },
29168
+ detail.appId
29169
+ );
29170
+ }
29171
+ /**
29172
+ * 值格式化
29173
+ * @author lxm
29174
+ * @date 2024-01-09 03:37:34
29175
+ * @param {unknown} [value='']
29176
+ * @return {*} {string}
29177
+ */
29178
+ formatValue(value = "") {
29179
+ if (this.nodeColumn.valueType !== "SIMPLE") {
29180
+ return ValueExUtil.toText(this.nodeColumn, value);
29181
+ }
29182
+ const strVal = "".concat(value);
29183
+ if (!this.valueFormat) {
29184
+ return strVal;
29185
+ }
29186
+ const isDate = DataTypes5.isDate(this.dataType);
29187
+ if (isDate || this.fieldColumn.name === "createdate") {
29188
+ const formatVal = dayjs6(strVal).format(this.valueFormat);
29189
+ if (formatVal !== "Invalid Date") {
29190
+ return formatVal;
29191
+ }
29192
+ return strVal;
29193
+ }
29194
+ return ibiz.util.text.format(strVal, this.valueFormat);
29195
+ }
29196
+ /**
29197
+ * 加载代码表数据
29198
+ *
29199
+ * @author lxm
29200
+ * @date 2022-09-28 15:09:38
29201
+ * @returns {*}
29202
+ */
29203
+ async loadCodeList() {
29204
+ const appCodeListId = this.nodeColumn.appCodeListId;
29205
+ if (!appCodeListId) {
29206
+ return;
29207
+ }
29208
+ const app = ibiz.hub.getApp(this.context.srfappid);
29209
+ if (!this.codeList) {
29210
+ this.codeList = app.codeList.getCodeList(appCodeListId);
29211
+ }
29212
+ const dataItems = await app.codeList.get(
29213
+ appCodeListId,
29214
+ this.context,
29215
+ this.params
29216
+ );
29217
+ this.codeListItems = dataItems;
29218
+ return dataItems;
29219
+ }
29220
+ gridStateNotify(row, state) {
29221
+ if (state === "LOAD" /* LOAD */ || state === "SAVE" /* SAVE */) {
29222
+ const uaColState = row.columnActionsStates[this.name];
29223
+ if (uaColState && row.data._nodeType === "DE") {
29224
+ uaColState.update(row.data._deData);
29225
+ }
29226
+ }
29227
+ }
29228
+ /**
29229
+ * 设置行属性的值
29230
+ *
29231
+ * @author lxm
29232
+ * @date 2022-08-24 10:08:40
29233
+ * @param {GridRowState} row 行状态控制器
29234
+ * @param {unknown} value 要设置的值
29235
+ * @param {string} name 要设置的表单数据的属性名称
29236
+ */
29237
+ async setRowValue(row, value, name) {
29238
+ name = name || this.name;
29239
+ await this.treeGrid.setRowValue(row, name, value);
29240
+ }
29241
+ };
29242
+
29243
+ // src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts
29244
+ var TreeGridExFieldColumnController = class extends TreeGridExColumnController {
29245
+ constructor() {
29246
+ super(...arguments);
29247
+ /**
29248
+ * 该树表格列对应不同节点模型的节点列控制器
29249
+ * @author lxm
29250
+ * @date 2024-01-08 05:40:56
29251
+ * @type {Map<string, IDETreeNodeColumn>}
29252
+ */
29253
+ this.nodeColumnControllerMap = /* @__PURE__ */ new Map();
29254
+ }
29255
+ /**
29256
+ * 树表格列标识(用于取数和各种比较判断)
29257
+ * @author lxm
29258
+ * @date 2024-01-09 11:33:37
29259
+ * @readonly
29260
+ * @type {string}
29261
+ */
29262
+ get name() {
29263
+ return this.model.id;
29264
+ }
29265
+ async init() {
29266
+ await this.onInit();
29267
+ await this.initNodeColumnController();
29268
+ }
29269
+ /**
29270
+ * 解析模型并初始化相关属性
29271
+ * @author lxm
29272
+ * @date 2024-01-08 05:59:12
29273
+ * @return {*} {Promise<void>}
29274
+ */
29275
+ async initNodeColumnController() {
29276
+ var _a;
29277
+ (_a = this.treeGrid.model.detreeNodes) == null ? void 0 : _a.forEach((node) => {
29278
+ var _a2;
29279
+ if (node.treeNodeType !== "DE") {
29280
+ return;
29281
+ }
29282
+ const nodeColumn = (_a2 = node.detreeNodeColumns) == null ? void 0 : _a2.find(
29283
+ (column) => {
29284
+ return column.detreeColumnId === this.model.id;
29285
+ }
29286
+ );
29287
+ if (nodeColumn) {
29288
+ this.nodeColumnControllerMap.set(
29289
+ node.id,
29290
+ new TreeGridExNodeColumnController(this, node)
29291
+ );
29292
+ }
29293
+ });
29294
+ await Promise.all(
29295
+ Array.from(this.nodeColumnControllerMap.values()).map(
29296
+ (controller) => controller.init()
29297
+ )
29298
+ );
29299
+ }
29300
+ /**
29301
+ * 初始化属性列界面行为组按钮状态
29302
+ * @author lxm
29303
+ * @date 2024-01-11 01:48:38
29304
+ * @param {ITreeGridExRowState} row
29305
+ */
29306
+ initActionStates(row) {
29307
+ const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
29308
+ if (nodeColumn) {
29309
+ nodeColumn.initActionStates(row);
29310
+ }
29311
+ }
29312
+ gridStateNotify(row, state) {
29313
+ super.gridStateNotify(row, state);
29314
+ const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
29315
+ if (nodeColumn) {
29316
+ nodeColumn.gridStateNotify(row, state);
29317
+ }
29318
+ }
28588
29319
  };
28589
29320
 
28590
- // src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts
28591
- var TreeGridExFieldColumnController = class extends TreeGridExColumnController {
28592
- };
28593
-
28594
29321
  // src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts
28595
- import { RuntimeModelError as RuntimeModelError65 } from "@ibiz-template/core";
29322
+ import { RuntimeModelError as RuntimeModelError67 } from "@ibiz-template/core";
28596
29323
  var TreeGridExUAColumnController = class extends TreeGridExColumnController {
28597
29324
  /**
28598
29325
  * 给rowController初始化操作列的状态
@@ -28605,7 +29332,8 @@ var TreeGridExUAColumnController = class extends TreeGridExColumnController {
28605
29332
  var _a;
28606
29333
  const { deuiactionGroup } = this.model;
28607
29334
  if (!deuiactionGroup) {
28608
- throw new RuntimeModelError65(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
29335
+ return;
29336
+ throw new RuntimeModelError67(this.model, "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4");
28609
29337
  }
28610
29338
  if (!((_a = deuiactionGroup.uiactionGroupDetails) == null ? void 0 : _a.length)) {
28611
29339
  ibiz.log.debug("\u64CD\u4F5C\u5217\u754C\u9762\u884C\u4E3A\u7EC4\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A");
@@ -28623,7 +29351,7 @@ var TreeGridExUAColumnController = class extends TreeGridExColumnController {
28623
29351
  containerState.addState(detail.id, buttonState);
28624
29352
  }
28625
29353
  });
28626
- row.uaColStates[this.model.codeName] = containerState;
29354
+ row.columnActionsStates[this.model.id] = containerState;
28627
29355
  }
28628
29356
  /**
28629
29357
  * 触发操作列点击事件
@@ -28647,10 +29375,19 @@ var TreeGridExUAColumnController = class extends TreeGridExColumnController {
28647
29375
  detail.appId
28648
29376
  );
28649
29377
  }
29378
+ gridStateNotify(row, state) {
29379
+ super.gridStateNotify(row, state);
29380
+ if (state === "LOAD" /* LOAD */ || state === "SAVE" /* SAVE */) {
29381
+ const uaColState = row.columnActionsStates[this.model.id];
29382
+ if (uaColState && row.data._nodeType === "DE") {
29383
+ uaColState.update(row.data._deData);
29384
+ }
29385
+ }
29386
+ }
28650
29387
  };
28651
29388
 
28652
29389
  // src/controller/control/tree-grid/tree-grid.controller.ts
28653
- import { RuntimeModelError as RuntimeModelError66 } from "@ibiz-template/core";
29390
+ import { RuntimeModelError as RuntimeModelError68 } from "@ibiz-template/core";
28654
29391
  var TreeGridController = class extends GridController {
28655
29392
  constructor() {
28656
29393
  super(...arguments);
@@ -28695,10 +29432,10 @@ var TreeGridController = class extends GridController {
28695
29432
  return item.treeColumnMode === 2 || item.treeColumnMode === 3;
28696
29433
  });
28697
29434
  if (!treeGridParent) {
28698
- throw new RuntimeModelError66(this.model, "\u6811\u8868\u683C\u65E0\u503C\u5217\u6A21\u5F0F");
29435
+ throw new RuntimeModelError68(this.model, "\u6811\u8868\u683C\u65E0\u503C\u5217\u6A21\u5F0F");
28699
29436
  }
28700
29437
  if (!treeGridValue) {
28701
- throw new RuntimeModelError66(this.model, "\u6811\u8868\u683C\u65E0\u7236\u503C\u5217\u6A21\u5F0F");
29438
+ throw new RuntimeModelError68(this.model, "\u6811\u8868\u683C\u65E0\u7236\u503C\u5217\u6A21\u5F0F");
28702
29439
  }
28703
29440
  this.treeGridValueField = treeGridValue.appDEFieldId.toLowerCase();
28704
29441
  this.treeGridParentField = treeGridParent.appDEFieldId.toLowerCase();
@@ -28718,7 +29455,7 @@ var TreeGridService = class extends GridService {
28718
29455
  };
28719
29456
 
28720
29457
  // src/controller/control/medit-view-panel/medit-view-panel.controller.ts
28721
- import { RuntimeError as RuntimeError60 } from "@ibiz-template/core";
29458
+ import { RuntimeError as RuntimeError62 } from "@ibiz-template/core";
28722
29459
  import { createUUID as createUUID13 } from "qx-util";
28723
29460
 
28724
29461
  // src/controller/control/medit-view-panel/medit-view-panel.service.ts
@@ -28934,7 +29671,7 @@ var MEditViewPanelController = class extends MDControlController {
28934
29671
  (item) => item.id === id
28935
29672
  );
28936
29673
  if (panelUiItemIndex < 0) {
28937
- throw new RuntimeError60("\u7F16\u8F91\u89C6\u56FE\u9762\u677F\u90E8\u4EF6UI\u6570\u636E\u4E0D\u5B58\u5728");
29674
+ throw new RuntimeError62("\u7F16\u8F91\u89C6\u56FE\u9762\u677F\u90E8\u4EF6UI\u6570\u636E\u4E0D\u5B58\u5728");
28938
29675
  }
28939
29676
  const tempUiItem = this.state.panelUiItems[panelUiItemIndex];
28940
29677
  if (tempUiItem.id.startsWith("mockId:")) {
@@ -29997,7 +30734,7 @@ var AppHub = class {
29997
30734
  this.registerAppView(appView);
29998
30735
  return appView;
29999
30736
  }
30000
- throw new RuntimeError61("\u89C6\u56FE[".concat(id, "]\u4E0D\u5B58\u5728"));
30737
+ throw new RuntimeError63("\u89C6\u56FE[".concat(id, "]\u4E0D\u5B58\u5728"));
30001
30738
  }
30002
30739
  /**
30003
30740
  * 根据视图模型路径,加参数重新计算视图模型
@@ -30018,7 +30755,7 @@ var AppHub = class {
30018
30755
  );
30019
30756
  return model;
30020
30757
  }
30021
- throw new RuntimeError61("\u89C6\u56FE[".concat(modelPath, "]\u4E0D\u5B58\u5728"));
30758
+ throw new RuntimeError63("\u89C6\u56FE[".concat(modelPath, "]\u4E0D\u5B58\u5728"));
30022
30759
  }
30023
30760
  /**
30024
30761
  * 根据应用实体代码名称查找应用视图
@@ -30049,7 +30786,7 @@ var AppHub = class {
30049
30786
  this.registerAppDataEntity(entity, appId2);
30050
30787
  return entity;
30051
30788
  }
30052
- throw new RuntimeError61("\u672A\u627E\u5230\u5E94\u7528\u5B9E\u4F53[".concat(id, "]"));
30789
+ throw new RuntimeError63("\u672A\u627E\u5230\u5E94\u7528\u5B9E\u4F53[".concat(id, "]"));
30053
30790
  }
30054
30791
  /**
30055
30792
  * 新建 hub 应用
@@ -30064,7 +30801,7 @@ var AppHub = class {
30064
30801
  return this.appMap.get(id);
30065
30802
  }
30066
30803
  if (!this.modelLoaderProvider) {
30067
- throw new RuntimeError61("\u8BF7\u5148\u6CE8\u518C\u6A21\u578B\u52A0\u8F7D\u9002\u914D\u5668");
30804
+ throw new RuntimeError63("\u8BF7\u5148\u6CE8\u518C\u6A21\u578B\u52A0\u8F7D\u9002\u914D\u5668");
30068
30805
  }
30069
30806
  const appModel = await this.modelLoaderProvider.getApp(id);
30070
30807
  const app = new Application(appModel);
@@ -30195,7 +30932,7 @@ var EngineFactory = class {
30195
30932
  };
30196
30933
 
30197
30934
  // src/engine/view-base.engine.ts
30198
- import { RuntimeError as RuntimeError62 } from "@ibiz-template/core";
30935
+ import { RuntimeError as RuntimeError64 } from "@ibiz-template/core";
30199
30936
  var ViewEngineBase = class {
30200
30937
  /**
30201
30938
  * 构造函数在视图控制器的构造函数逻辑内部执行
@@ -30383,7 +31120,7 @@ var ViewEngineBase = class {
30383
31120
  const { appDataEntityId } = this.view.model;
30384
31121
  const { evt, context, params } = this.view;
30385
31122
  if (!appDataEntityId) {
30386
- throw new RuntimeError62("\u8BE5\u89C6\u56FE\u6CA1\u6709\u5B9E\u4F53\uFF0C\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u6570\u636E");
31123
+ throw new RuntimeError64("\u8BE5\u89C6\u56FE\u6CA1\u6709\u5B9E\u4F53\uFF0C\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u6570\u636E");
30387
31124
  }
30388
31125
  const app = ibiz.hub.getApp(context.srfappid);
30389
31126
  const res = await app.deService.exec(
@@ -30404,8 +31141,8 @@ var ViewEngineBase = class {
30404
31141
  };
30405
31142
 
30406
31143
  // src/engine/md-view.engine.ts
30407
- import { RuntimeModelError as RuntimeModelError67 } from "@ibiz-template/core";
30408
- import { clone as clone26 } from "ramda";
31144
+ import { RuntimeModelError as RuntimeModelError69 } from "@ibiz-template/core";
31145
+ import { clone as clone29 } from "ramda";
30409
31146
  var MDViewEngine = class extends ViewEngineBase {
30410
31147
  /**
30411
31148
  * 多数据部件名称
@@ -30588,7 +31325,7 @@ var MDViewEngine = class extends ViewEngineBase {
30588
31325
  view: this.view
30589
31326
  }));
30590
31327
  if (result === -1) {
30591
- throw new RuntimeModelError67(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
31328
+ throw new RuntimeModelError69(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
30592
31329
  } else {
30593
31330
  return {
30594
31331
  cancel: !result.ok
@@ -30611,9 +31348,9 @@ var MDViewEngine = class extends ViewEngineBase {
30611
31348
  (item) => item.id === "newdata"
30612
31349
  );
30613
31350
  if (!openAppViewLogic) {
30614
- throw new RuntimeModelError67(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
31351
+ throw new RuntimeModelError69(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
30615
31352
  }
30616
- const params = clone26(this.view.params);
31353
+ const params = clone29(this.view.params);
30617
31354
  if (copyMode) {
30618
31355
  params.srfcopymode = copyMode;
30619
31356
  }
@@ -30625,7 +31362,7 @@ var MDViewEngine = class extends ViewEngineBase {
30625
31362
  view: this.view
30626
31363
  }));
30627
31364
  if (result === -1) {
30628
- throw new RuntimeModelError67(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
31365
+ throw new RuntimeModelError69(this.view.model, "\u7F3A\u5C11newdata\u7684\u89C6\u56FE\u903B\u8F91");
30629
31366
  } else {
30630
31367
  return {
30631
31368
  cancel: !result.ok
@@ -30824,7 +31561,7 @@ var GlobalUtil = class {
30824
31561
  };
30825
31562
 
30826
31563
  // src/logic-scheduler/executor/logic-executor.ts
30827
- import { RuntimeError as RuntimeError63 } from "@ibiz-template/core";
31564
+ import { RuntimeError as RuntimeError65 } from "@ibiz-template/core";
30828
31565
  var LogicExecutor = class {
30829
31566
  /**
30830
31567
  * @author lxm
@@ -30845,7 +31582,7 @@ var LogicExecutor = class {
30845
31582
  */
30846
31583
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
30847
31584
  execute(_executeParams) {
30848
- throw new RuntimeError63("Method not implemented.");
31585
+ throw new RuntimeError65("Method not implemented.");
30849
31586
  }
30850
31587
  /**
30851
31588
  * 销毁方法
@@ -30936,13 +31673,13 @@ var ScriptExecutor = class extends LogicExecutor {
30936
31673
  };
30937
31674
 
30938
31675
  // src/logic-scheduler/executor/app-de-ui-logic-executor.ts
30939
- import { RuntimeModelError as RuntimeModelError68 } from "@ibiz-template/core";
31676
+ import { RuntimeModelError as RuntimeModelError70 } from "@ibiz-template/core";
30940
31677
  var AppDEUILogicExecutor = class extends LogicExecutor {
30941
31678
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
30942
31679
  execute(executeParams) {
30943
31680
  const { appDEUILogicId, appDataEntityId } = this.logic;
30944
31681
  if (!appDEUILogicId) {
30945
- throw new RuntimeModelError68(this.logic, "\u6CA1\u6709\u914D\u7F6E\u5B9E\u4F53\u754C\u9762\u903B\u8F91");
31682
+ throw new RuntimeModelError70(this.logic, "\u6CA1\u6709\u914D\u7F6E\u5B9E\u4F53\u754C\u9762\u903B\u8F91");
30946
31683
  }
30947
31684
  execUILogic(appDEUILogicId, appDataEntityId, executeParams);
30948
31685
  }
@@ -31282,7 +32019,7 @@ var LogicSchedulerCenter = class {
31282
32019
  };
31283
32020
 
31284
32021
  // src/logic-scheduler/trigger/logic-trigger.ts
31285
- import { RuntimeError as RuntimeError64 } from "@ibiz-template/core";
32022
+ import { RuntimeError as RuntimeError66 } from "@ibiz-template/core";
31286
32023
  var LogicTrigger = class {
31287
32024
  /**
31288
32025
  * @author lxm
@@ -31342,7 +32079,7 @@ var LogicTrigger = class {
31342
32079
  if (this.executor) {
31343
32080
  return this.executor.execute(executeParams);
31344
32081
  }
31345
- throw new RuntimeError64("".concat(this.logic.id, "\u6CA1\u6709\u7ED1\u5B9Aexecutor"));
32082
+ throw new RuntimeError66("".concat(this.logic.id, "\u6CA1\u6709\u7ED1\u5B9Aexecutor"));
31346
32083
  }
31347
32084
  /**
31348
32085
  * 销毁方法
@@ -31359,12 +32096,12 @@ var CustomTrigger = class extends LogicTrigger {
31359
32096
  };
31360
32097
 
31361
32098
  // src/logic-scheduler/trigger/item-dyna-logic-trigger.ts
31362
- import { RuntimeError as RuntimeError65 } from "@ibiz-template/core";
32099
+ import { RuntimeError as RuntimeError67 } from "@ibiz-template/core";
31363
32100
  var ItemDynaLogicTrigger = class extends LogicTrigger {
31364
32101
  bindExecutor(executor) {
31365
32102
  super.bindExecutor(executor);
31366
32103
  if (this.executor.type !== "SCRIPT") {
31367
- throw new RuntimeError65(
32104
+ throw new RuntimeError67(
31368
32105
  "\u9884\u5B9A\u4E49\u903B\u8F91\u7C7B\u578B".concat(this.type, "\u7684\u89E6\u53D1\u5668\u7C7B\u578B\u53EA\u80FD\u662F\u811A\u672C")
31369
32106
  );
31370
32107
  }
@@ -31400,7 +32137,7 @@ var ItemDynaLogicTrigger = class extends LogicTrigger {
31400
32137
  };
31401
32138
 
31402
32139
  // src/logic-scheduler/trigger/timer-trigger.ts
31403
- import { RuntimeError as RuntimeError66, RuntimeModelError as RuntimeModelError69 } from "@ibiz-template/core";
32140
+ import { RuntimeError as RuntimeError68, RuntimeModelError as RuntimeModelError71 } from "@ibiz-template/core";
31404
32141
  var TimerTrigger = class extends LogicTrigger {
31405
32142
  constructor() {
31406
32143
  super(...arguments);
@@ -31408,11 +32145,11 @@ var TimerTrigger = class extends LogicTrigger {
31408
32145
  }
31409
32146
  start() {
31410
32147
  if (!this.logic.timer) {
31411
- throw new RuntimeModelError69(this.logic, "\u5B9A\u65F6\u5668\u7F3A\u5C11\u5B9A\u65F6\u95F4\u9694");
32148
+ throw new RuntimeModelError71(this.logic, "\u5B9A\u65F6\u5668\u7F3A\u5C11\u5B9A\u65F6\u95F4\u9694");
31412
32149
  }
31413
32150
  this.timer = setInterval(() => {
31414
32151
  if (!this.scheduler.defaultParamsCb) {
31415
- throw new RuntimeError66("\u5B9A\u65F6\u5668\u7F3A\u5C11\u9ED8\u8BA4\u53C2\u6570\u56DE\u8C03");
32152
+ throw new RuntimeError68("\u5B9A\u65F6\u5668\u7F3A\u5C11\u9ED8\u8BA4\u53C2\u6570\u56DE\u8C03");
31416
32153
  }
31417
32154
  const params = this.scheduler.defaultParamsCb();
31418
32155
  this.executor.execute(params);
@@ -31429,8 +32166,8 @@ var TimerTrigger = class extends LogicTrigger {
31429
32166
  // src/logic-scheduler/executor/app-ui-logic-executor.ts
31430
32167
  import {
31431
32168
  ModelError as ModelError34,
31432
- RuntimeError as RuntimeError67,
31433
- RuntimeModelError as RuntimeModelError70
32169
+ RuntimeError as RuntimeError69,
32170
+ RuntimeModelError as RuntimeModelError72
31434
32171
  } from "@ibiz-template/core";
31435
32172
  import { notNilEmpty as notNilEmpty9 } from "qx-util";
31436
32173
  var AppUILogicExecutor = class extends LogicExecutor {
@@ -31467,7 +32204,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31467
32204
  const { context, params, ...rest } = parameters;
31468
32205
  const { data } = parameters;
31469
32206
  if (!(data == null ? void 0 : data[0])) {
31470
- throw new RuntimeError67("opendata\u6CA1\u6709\u53EF\u64CD\u4F5C\u6570\u636E\uFF01");
32207
+ throw new RuntimeError69("opendata\u6CA1\u6709\u53EF\u64CD\u4F5C\u6570\u636E\uFF01");
31471
32208
  }
31472
32209
  const openViewRefs = appUILogic.openDataAppViews;
31473
32210
  let openViewRef;
@@ -31476,7 +32213,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31476
32213
  } else {
31477
32214
  openViewRef = appUILogic.openDataAppView;
31478
32215
  if (!openViewRef) {
31479
- throw new RuntimeModelError70(
32216
+ throw new RuntimeModelError72(
31480
32217
  appUILogic,
31481
32218
  "opendata\u89C6\u56FE\u903B\u8F91\u6CA1\u6709\u914D\u7F6E\u9ED8\u8BA4\u6253\u5F00\u89C6\u56FE"
31482
32219
  );
@@ -31484,7 +32221,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31484
32221
  }
31485
32222
  const openView = openViewRef.refAppViewId;
31486
32223
  if (!openView) {
31487
- throw new RuntimeModelError70(
32224
+ throw new RuntimeModelError72(
31488
32225
  appUILogic,
31489
32226
  "opendata\u89C6\u56FE\u903B\u8F91\u7684\u9ED8\u8BA4\u6253\u5F00\u89C6\u56FE\u6CA1\u6709\u5B9E\u9645\u5F15\u7528\u89C6\u56FE"
31490
32227
  );
@@ -31514,7 +32251,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31514
32251
  );
31515
32252
  const typeFileName = appDataEntity.formTypeAppDEFieldId || appDataEntity.dataTypeAppDEFieldId;
31516
32253
  if (!typeFileName) {
31517
- throw new RuntimeModelError70(
32254
+ throw new RuntimeModelError72(
31518
32255
  appUILogic,
31519
32256
  "".concat(appDataEntity.codeName, "[\u591A\u8868\u5355\u5B9E\u4F53] or [\u7D22\u5F15\u5B9E\u4F53]\u7F3A\u5C11\u7C7B\u578B\u5C5E\u6027\u914D\u7F6E")
31520
32257
  );
@@ -31522,12 +32259,12 @@ var AppUILogicExecutor = class extends LogicExecutor {
31522
32259
  const { data } = parameters;
31523
32260
  const formTypeValue = data[0][typeFileName];
31524
32261
  if (!formTypeValue) {
31525
- throw new RuntimeModelError70(appUILogic, "\u6570\u636E\u6E90\u65E0\u8868\u5355\u7C7B\u578B\u5E94\u7528\u5B9E\u4F53\u5C5E\u6027\u503C");
32262
+ throw new RuntimeModelError72(appUILogic, "\u6570\u636E\u6E90\u65E0\u8868\u5355\u7C7B\u578B\u5E94\u7528\u5B9E\u4F53\u5C5E\u6027\u503C");
31526
32263
  }
31527
32264
  const openViewRefs = appUILogic.openDataAppViews;
31528
32265
  const findView = openViewRefs == null ? void 0 : openViewRefs.find((item) => item.refMode === formTypeValue);
31529
32266
  if (!findView) {
31530
- throw new RuntimeError67(
32267
+ throw new RuntimeError69(
31531
32268
  "\u6CA1\u6709\u627E\u5230\u4E0E\u8868\u5355\u7C7B\u578B".concat(formTypeValue, "\u76F8\u5173\u7684\u5B9E\u4F53\u7684\u7F16\u8F91\u89C6\u56FE")
31532
32269
  );
31533
32270
  }
@@ -31564,7 +32301,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31564
32301
  return viewRef.refMode.toLowerCase() !== parentDeName;
31565
32302
  });
31566
32303
  if (!newViewRef) {
31567
- throw new RuntimeModelError70(
32304
+ throw new RuntimeModelError72(
31568
32305
  appUILogic,
31569
32306
  "\u6CA1\u6709\u627E\u5230\u6279\u6DFB\u52A0\u9700\u8981\u6253\u5F00\u7684\u9009\u62E9\u89C6\u56FE"
31570
32307
  );
@@ -31574,7 +32311,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31574
32311
  } else {
31575
32312
  newViewRef = newDataAppView;
31576
32313
  if (!newViewRef || !newViewRef.refAppViewId) {
31577
- throw new RuntimeModelError70(
32314
+ throw new RuntimeModelError72(
31578
32315
  appUILogic,
31579
32316
  "newdata\u89C6\u56FE\u903B\u8F91\u6CA1\u6709\u914D\u7F6E\u9ED8\u8BA4\u65B0\u5EFA\u6570\u636E\u89C6\u56FE"
31580
32317
  );
@@ -31638,7 +32375,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31638
32375
  const { wizardAppView, newDataAppViews } = appUILogic;
31639
32376
  const { context, params, ...rest } = parameters;
31640
32377
  if (!wizardAppView || !wizardAppView.refAppViewId) {
31641
- throw new RuntimeModelError70(appUILogic, "\u7F3A\u5C11\u9ED8\u8BA4\u7D22\u5F15\u5B9E\u4F53\u9009\u62E9\u89C6\u56FE");
32378
+ throw new RuntimeModelError72(appUILogic, "\u7F3A\u5C11\u9ED8\u8BA4\u7D22\u5F15\u5B9E\u4F53\u9009\u62E9\u89C6\u56FE");
31642
32379
  }
31643
32380
  const result = await ibiz.commands.execute(
31644
32381
  OpenAppViewCommand.TAG,
@@ -31652,7 +32389,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31652
32389
  }
31653
32390
  const selectData = (_a = result.data) == null ? void 0 : _a[0];
31654
32391
  if (!selectData) {
31655
- throw new RuntimeError67("\u8BF7\u9009\u4E2D\u4E00\u6761\u6570\u636E");
32392
+ throw new RuntimeError69("\u8BF7\u9009\u4E2D\u4E00\u6761\u6570\u636E");
31656
32393
  }
31657
32394
  const indexType = selectData.srfkey;
31658
32395
  const findView = newDataAppViews == null ? void 0 : newDataAppViews.find(
@@ -31662,7 +32399,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31662
32399
  }
31663
32400
  );
31664
32401
  if (!findView) {
31665
- throw new RuntimeError67(
32402
+ throw new RuntimeError69(
31666
32403
  "\u6CA1\u6709\u627E\u5230\u4E0E\u7D22\u5F15\u7C7B\u578B".concat(indexType, "\u76F8\u5173\u7684\u5B9E\u4F53\u7684\u7F16\u8F91\u89C6\u56FE")
31667
32404
  );
31668
32405
  }
@@ -31689,7 +32426,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31689
32426
  const minorDERs = selfDe.minorAppDERSs;
31690
32427
  const pickParentDeName = newViewRef.refMode.toLowerCase();
31691
32428
  if (!minorDERs) {
31692
- throw new RuntimeModelError70(selfDe, "\u5B9E\u4F53\u6CA1\u6709\u4ECE\u5173\u7CFB\u96C6\u5408\uFF01");
32429
+ throw new RuntimeModelError72(selfDe, "\u5B9E\u4F53\u6CA1\u6709\u4ECE\u5173\u7CFB\u96C6\u5408\uFF01");
31693
32430
  }
31694
32431
  let pickParentFieldName = "";
31695
32432
  minorDERs == null ? void 0 : minorDERs.forEach((item) => {
@@ -31699,7 +32436,7 @@ var AppUILogicExecutor = class extends LogicExecutor {
31699
32436
  }
31700
32437
  });
31701
32438
  if (pickParentFieldName === void 0) {
31702
- throw new RuntimeError67(
32439
+ throw new RuntimeError69(
31703
32440
  "\u6CA1\u6709\u627E\u5230".concat(pickParentDeName, "\u5728\u5F53\u524D\u5B9E\u4F53\u7684\u5916\u952E\u5C5E\u6027")
31704
32441
  );
31705
32442
  }
@@ -31786,12 +32523,12 @@ var ControlEventTrigger = class extends LogicTrigger {
31786
32523
  };
31787
32524
 
31788
32525
  // src/logic-scheduler/executor/app-ui-action-executor.ts
31789
- import { RuntimeModelError as RuntimeModelError71 } from "@ibiz-template/core";
32526
+ import { RuntimeModelError as RuntimeModelError73 } from "@ibiz-template/core";
31790
32527
  var AppDEUIActionExecutor = class extends LogicExecutor {
31791
32528
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
31792
32529
  execute(executeParams) {
31793
32530
  if (!this.logic.appDEUIActionId) {
31794
- throw new RuntimeModelError71(
32531
+ throw new RuntimeModelError73(
31795
32532
  this.logic,
31796
32533
  "\u903B\u8F91\u4E2D\u7F3A\u5C11\u89E6\u53D1\u5E94\u7528\u5B9E\u4F53\u754C\u9762\u884C\u4E3Aid"
31797
32534
  );
@@ -32149,6 +32886,8 @@ export {
32149
32886
  TreeGridExColumnController,
32150
32887
  TreeGridExController,
32151
32888
  TreeGridExFieldColumnController,
32889
+ TreeGridExNodeColumnController,
32890
+ TreeGridExNotifyState,
32152
32891
  TreeGridExRowState,
32153
32892
  TreeGridExService,
32154
32893
  TreeGridExUAColumnController,