@ibiz-template/runtime 0.7.30 → 0.7.31-alpha.0

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 (36) hide show
  1. package/dist/index.esm.js +403 -103
  2. package/dist/index.system.min.js +1 -1
  3. package/out/controller/control/chart/chart.controller.d.ts +1 -1
  4. package/out/controller/control/chart/chart.controller.d.ts.map +1 -1
  5. package/out/controller/control/chart/chart.controller.js +52 -22
  6. package/out/controller/control/chart/generator/base-series-generator.d.ts.map +1 -1
  7. package/out/controller/control/chart/generator/base-series-generator.js +33 -2
  8. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +7 -0
  9. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
  10. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +17 -1
  11. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.d.ts +10 -0
  12. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.d.ts.map +1 -1
  13. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.js +15 -0
  14. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts +7 -0
  15. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts.map +1 -1
  16. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.js +17 -0
  17. package/out/controller/control/grid/grid/entity-schema.d.ts.map +1 -1
  18. package/out/controller/control/grid/grid/entity-schema.js +3 -0
  19. package/out/controller/control/search-bar/entity-schema.d.ts.map +1 -1
  20. package/out/controller/control/search-bar/entity-schema.js +3 -0
  21. package/out/controller/control/search-bar/search-bar.controller.d.ts +10 -1
  22. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  23. package/out/controller/control/search-bar/search-bar.controller.js +60 -3
  24. package/out/controller/utils/code-list/code-list.d.ts +1 -1
  25. package/out/controller/utils/code-list/code-list.d.ts.map +1 -1
  26. package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts +16 -0
  27. package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts.map +1 -1
  28. package/out/service/de-service-util.d.ts +13 -0
  29. package/out/service/de-service-util.d.ts.map +1 -1
  30. package/out/service/de-service-util.js +59 -0
  31. package/out/service/service/code-list/code-list.service.d.ts +19 -0
  32. package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
  33. package/out/service/service/code-list/code-list.service.js +49 -0
  34. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  35. package/out/service/service/entity/method/de-action.js +17 -0
  36. package/package.json +6 -5
package/dist/index.esm.js CHANGED
@@ -5904,6 +5904,35 @@ async function calcDynaSysParams(appDataEntityId, context, opts = {}) {
5904
5904
 
5905
5905
  // src/service/service/code-list/code-list.service.ts
5906
5906
  import { RuntimeError as RuntimeError16 } from "@ibiz-template/core";
5907
+ import { isNumber } from "lodash-es";
5908
+
5909
+ // src/controller/utils/code-list/code-list.ts
5910
+ function calcThresholdRange(codelist, value) {
5911
+ return codelist.find((item) => {
5912
+ if (!item.beginValue && !item.endValue) {
5913
+ return item.value == value;
5914
+ }
5915
+ let beginCond = true;
5916
+ if (item.beginValue) {
5917
+ if (item.includeBeginValue) {
5918
+ beginCond = value >= item.beginValue;
5919
+ } else {
5920
+ beginCond = value > item.beginValue;
5921
+ }
5922
+ }
5923
+ let endCond = true;
5924
+ if (item.endValue) {
5925
+ if (item.includeEndValue) {
5926
+ endCond = value <= item.endValue;
5927
+ } else {
5928
+ endCond = value < item.endValue;
5929
+ }
5930
+ }
5931
+ return beginCond && endCond;
5932
+ });
5933
+ }
5934
+
5935
+ // src/service/service/code-list/code-list.service.ts
5907
5936
  var CodeListService = class {
5908
5937
  constructor(appModel) {
5909
5938
  this.appModel = appModel;
@@ -6067,6 +6096,58 @@ var CodeListService = class {
6067
6096
  }
6068
6097
  return [];
6069
6098
  }
6099
+ /**
6100
+ * 递归查找代码表项
6101
+ *
6102
+ * @param {IAppCodeList} codeList 代码表模型
6103
+ * @param {readonly CodeListItem[] | undefined} dataItems 代码表数据
6104
+ * @param {string | number} value 代码项值
6105
+ * @returns 代码表项|CodeListItem | undefined
6106
+ */
6107
+ findCodeListItem(codeList, dataItems, value) {
6108
+ if (dataItems) {
6109
+ const { thresholdGroup } = codeList;
6110
+ if (thresholdGroup && isNumber(Number(value))) {
6111
+ const findItem2 = calcThresholdRange(dataItems, Number(value));
6112
+ if (findItem2) {
6113
+ return findItem2;
6114
+ }
6115
+ }
6116
+ const findItem = dataItems.find((item) => item.value === value);
6117
+ if (findItem) {
6118
+ return findItem;
6119
+ }
6120
+ for (let i = 0; i < dataItems.length; i++) {
6121
+ const childrenItem = this.findCodeListItem(
6122
+ codeList,
6123
+ dataItems[i].children,
6124
+ value
6125
+ );
6126
+ if (childrenItem) {
6127
+ return childrenItem;
6128
+ }
6129
+ }
6130
+ }
6131
+ }
6132
+ /**
6133
+ * 获取代码表项
6134
+ *
6135
+ * @param {string} tag 代码表标识
6136
+ * @param {string | number} value 代码表值
6137
+ * @param {IContext} context 上下文
6138
+ * @param {IParams} params 视图参数
6139
+ * @returns 代码表项|Promise<CodeListItem | undefined>
6140
+ */
6141
+ async getItem(tag, value, context, params) {
6142
+ const codeList = this.allCodeLists.get(tag);
6143
+ if (!codeList) {
6144
+ throw new RuntimeError16(
6145
+ ibiz.i18n.t("runtime.service.noFindCodeList", { tag })
6146
+ );
6147
+ }
6148
+ const dataItems = await this.get(tag, context, params);
6149
+ return this.findCodeListItem(codeList, dataItems, value);
6150
+ }
6070
6151
  /**
6071
6152
  * 获取代码表实例对象(动态代码表返回具体实例,静态代码表返回undefined)
6072
6153
  *
@@ -10195,6 +10276,17 @@ var DEActionMethod = class extends Method {
10195
10276
  }
10196
10277
  }
10197
10278
  const methodTag = this.method.actionTag ? this.method.actionTag.toUpperCase() : this.method.codeName.toUpperCase();
10279
+ if (this.method.beforeCode) {
10280
+ await ScriptFactory.asyncExecScriptFn(
10281
+ {
10282
+ context,
10283
+ data,
10284
+ viewParam: params,
10285
+ activeData: header
10286
+ },
10287
+ this.method.beforeCode
10288
+ );
10289
+ }
10198
10290
  switch (methodTag) {
10199
10291
  case "CREATE":
10200
10292
  result = await this.create(context, data, params || {}, header);
@@ -10249,6 +10341,17 @@ var DEActionMethod = class extends Method {
10249
10341
  }
10250
10342
  }
10251
10343
  }
10344
+ if (this.method.afterCode) {
10345
+ await ScriptFactory.asyncExecScriptFn(
10346
+ {
10347
+ context,
10348
+ data: result.data,
10349
+ viewParam: params,
10350
+ activeData: header
10351
+ },
10352
+ this.method.afterCode
10353
+ );
10354
+ }
10252
10355
  if (result.data) {
10253
10356
  await execFieldLogics(
10254
10357
  this.entity,
@@ -12160,6 +12263,14 @@ var _DEServiceUtil = class _DEServiceUtil {
12160
12263
  * @return {*} {Promise<IAppDEService>}
12161
12264
  */
12162
12265
  async getService(context, id) {
12266
+ const { targetApp, targetAppDataEntityId } = await this.computeAppDEMappingParam(context, id);
12267
+ if (targetApp && targetAppDataEntityId) {
12268
+ const targetService = await targetApp.deService.getService(
12269
+ context,
12270
+ targetAppDataEntityId
12271
+ );
12272
+ return targetService;
12273
+ }
12163
12274
  const sandboxId = context.srfsessionid || "applocation";
12164
12275
  if (!this.cache.has(sandboxId)) {
12165
12276
  this.cache.set(sandboxId, /* @__PURE__ */ new Map());
@@ -12269,6 +12380,18 @@ var _DEServiceUtil = class _DEServiceUtil {
12269
12380
  * @return {*} {Promise<IHttpResponse<IData>>}
12270
12381
  */
12271
12382
  async exec(appDataEntityId, methodName, context, params, params2, header) {
12383
+ const { targetApp, targetAppDataEntityId } = await this.computeAppDEMappingParam(context, appDataEntityId);
12384
+ if (targetApp && targetAppDataEntityId) {
12385
+ const result = await targetApp.deService.exec(
12386
+ targetAppDataEntityId,
12387
+ methodName,
12388
+ context,
12389
+ params,
12390
+ params2,
12391
+ header
12392
+ );
12393
+ return result;
12394
+ }
12272
12395
  const service = await this.getService(context, appDataEntityId);
12273
12396
  try {
12274
12397
  const result = await service.exec(
@@ -12286,6 +12409,46 @@ var _DEServiceUtil = class _DEServiceUtil {
12286
12409
  throw error;
12287
12410
  }
12288
12411
  }
12412
+ /**
12413
+ * 计算应用实体服务映射参数
12414
+ * srfappdemapping:是否开启应用实体服务映射
12415
+ * srfappmappingmap:应用映射表,与srfappdemapping搭配使用,原应用标识:目标应用标识,以冒号分割,多个应用以逗号隔开
12416
+ * 如:logicdesign__logicdesign:ibizplm__plmweb
12417
+ *
12418
+ * @author tony001
12419
+ * @date 2024-07-19 15:07:31
12420
+ * @param {IContext} context
12421
+ * @param {string} appDataEntityId
12422
+ * @return {*} {Promise<IData>}
12423
+ */
12424
+ async computeAppDEMappingParam(context, appDataEntityId) {
12425
+ const result = {};
12426
+ if (context.srfappdemapping && context.srfappdemapping === "true" && context.srfappmappingmap) {
12427
+ const { srfappmappingmap } = context;
12428
+ const appMap = /* @__PURE__ */ new Map();
12429
+ const appMappings = (srfappmappingmap == null ? void 0 : srfappmappingmap.split(",")) || [];
12430
+ for (const appMpping of appMappings) {
12431
+ const [sourceAppId, targetAppId] = appMpping.split(":");
12432
+ appMap.set(sourceAppId, targetAppId);
12433
+ }
12434
+ if (appMap.has(this.appModel.appId)) {
12435
+ const targetApp = ibiz.hub.getApp(appMap.get(this.appModel.appId));
12436
+ if (targetApp) {
12437
+ Object.assign(result, { targetApp });
12438
+ if (appDataEntityId.indexOf(".") !== -1) {
12439
+ Object.assign(result, {
12440
+ targetAppDataEntityId: "".concat(targetApp.model.id, ".").concat(appDataEntityId.split(".").pop())
12441
+ });
12442
+ } else {
12443
+ Object.assign(result, {
12444
+ targetAppDataEntityId: appDataEntityId
12445
+ });
12446
+ }
12447
+ }
12448
+ }
12449
+ }
12450
+ return result;
12451
+ }
12289
12452
  };
12290
12453
  /**
12291
12454
  * 实体服务构造方法缓存
@@ -13113,8 +13276,8 @@ var baseStyle = {
13113
13276
  position: "fixed",
13114
13277
  zIndex: "10000"
13115
13278
  };
13116
- function cloneElement(clone42, teleport = document.body, isRemoveChild = true) {
13117
- const element = getAnimationElement(clone42);
13279
+ function cloneElement(clone41, teleport = document.body, isRemoveChild = true) {
13280
+ const element = getAnimationElement(clone41);
13118
13281
  if (element == null) {
13119
13282
  throw new Error(ibiz.i18n.t("runtime.utils.anime.noClone"));
13120
13283
  }
@@ -13533,11 +13696,11 @@ function arrayContains(arr, val) {
13533
13696
  });
13534
13697
  }
13535
13698
  function cloneObject(o) {
13536
- var clone42 = {};
13699
+ var clone41 = {};
13537
13700
  for (var p in o) {
13538
- clone42[p] = o[p];
13701
+ clone41[p] = o[p];
13539
13702
  }
13540
- return clone42;
13703
+ return clone41;
13541
13704
  }
13542
13705
  function replaceObjectProps(o1, o2) {
13543
13706
  var o = cloneObject(o1);
@@ -17197,7 +17360,7 @@ function getOriginData(data) {
17197
17360
 
17198
17361
  // src/controller/utils/value-rule/value-rule.ts
17199
17362
  import { RuntimeError as RuntimeError31 } from "@ibiz-template/core";
17200
- import { isNilOrEmpty as isNilOrEmpty6, isNumber } from "qx-util";
17363
+ import { isNilOrEmpty as isNilOrEmpty6, isNumber as isNumber2 } from "qx-util";
17201
17364
  import { isNil as isNil18 } from "ramda";
17202
17365
  function generateRules(itemVRs, name, valueItemName) {
17203
17366
  const rules = [];
@@ -17296,7 +17459,7 @@ function generateEditorRules(editor) {
17296
17459
  if (!isNil18(maxValue)) {
17297
17460
  rules.push({
17298
17461
  validator: (rule, value, callback) => {
17299
- if (!isNil18(value) && isNumber(value) && value > maxValue) {
17462
+ if (!isNil18(value) && isNumber2(value) && value > maxValue) {
17300
17463
  callback(new Error("\u503C\u5FC5\u987B\u5C0F\u4E8E\u7B49\u4E8E".concat(maxValue)));
17301
17464
  } else {
17302
17465
  return true;
@@ -17307,7 +17470,7 @@ function generateEditorRules(editor) {
17307
17470
  if (!isNil18(minValue)) {
17308
17471
  rules.push({
17309
17472
  validator: (rule, value, callback) => {
17310
- if (!isNil18(value) && isNumber(value) && value < minValue) {
17473
+ if (!isNil18(value) && isNumber2(value) && value < minValue) {
17311
17474
  callback(new Error("\u503C\u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E".concat(minValue)));
17312
17475
  } else {
17313
17476
  return true;
@@ -18137,32 +18300,6 @@ var ViewMsgController = class _ViewMsgController {
18137
18300
  }
18138
18301
  };
18139
18302
 
18140
- // src/controller/utils/code-list/code-list.ts
18141
- function calcThresholdRange(codelist, value) {
18142
- return codelist.find((item) => {
18143
- if (!item.beginValue && !item.endValue) {
18144
- return item.value == value;
18145
- }
18146
- let beginCond = true;
18147
- if (item.beginValue) {
18148
- if (item.includeBeginValue) {
18149
- beginCond = value >= item.beginValue;
18150
- } else {
18151
- beginCond = value > item.beginValue;
18152
- }
18153
- }
18154
- let endCond = true;
18155
- if (item.endValue) {
18156
- if (item.includeEndValue) {
18157
- endCond = value <= item.endValue;
18158
- } else {
18159
- endCond = value < item.endValue;
18160
- }
18161
- }
18162
- return beginCond && endCond;
18163
- });
18164
- }
18165
-
18166
18303
  // src/controller/common/base.controller.ts
18167
18304
  var SELF_KEY = "__self";
18168
18305
  var BaseController = class {
@@ -21196,7 +21333,6 @@ var CalendarController = class extends MDControlController {
21196
21333
 
21197
21334
  // src/controller/control/chart/chart.controller.ts
21198
21335
  import { RuntimeError as RuntimeError44 } from "@ibiz-template/core";
21199
- import { clone as clone25 } from "ramda";
21200
21336
 
21201
21337
  // src/controller/control/chart/generator/chart-options-generator.ts
21202
21338
  import { clone as clone24, mergeDeepRight as mergeDeepRight3 } from "ramda";
@@ -21470,6 +21606,7 @@ var BaseSeriesGenerator = class {
21470
21606
  const groupData = this.groupData;
21471
21607
  const { seriesCodeListId, catalogCodeListId } = this.model;
21472
21608
  data.forEach((item) => {
21609
+ var _a, _b;
21473
21610
  let group = DEFAULT_GROUP;
21474
21611
  if (this.groupField) {
21475
21612
  const groupVal = this.translateVal(
@@ -21493,9 +21630,10 @@ var BaseSeriesGenerator = class {
21493
21630
  tempCodeLists.push({ codename, codelist: clone22(codeListItems) });
21494
21631
  } else if (mode === "field") {
21495
21632
  const tempdata = data.map((_data) => {
21633
+ var _a2, _b2;
21496
21634
  return {
21497
21635
  text: _data[codename],
21498
- value: _data[codename]
21636
+ value: (_b2 = (_a2 = _data.$origin) == null ? void 0 : _a2.$origin) == null ? void 0 : _b2[codename]
21499
21637
  };
21500
21638
  });
21501
21639
  tempCodeLists.push({ codename, codelist: tempdata });
@@ -21523,6 +21661,7 @@ var BaseSeriesGenerator = class {
21523
21661
  const codeListItems = this.chartGenerator.codeListMap.get(catalogCodeListId);
21524
21662
  codeListItems.forEach((x) => {
21525
21663
  groupData[group].set(x.text, { value: 0 });
21664
+ this.catalogMap.set(x.text, { [this.catalogField]: x.value });
21526
21665
  this.prepareChartData(
21527
21666
  groupData,
21528
21667
  {
@@ -21563,6 +21702,11 @@ var BaseSeriesGenerator = class {
21563
21702
  if (!catalog) {
21564
21703
  return;
21565
21704
  }
21705
+ if (!catalogCodeListId) {
21706
+ this.catalogMap.set(item[this.catalogField], {
21707
+ [this.catalogField]: (_b = (_a = item.$origin) == null ? void 0 : _a.$origin) == null ? void 0 : _b[this.catalogField]
21708
+ });
21709
+ }
21566
21710
  if (!groupData[group].get(catalog)) {
21567
21711
  groupData[group].set(catalog, { value: 0 });
21568
21712
  }
@@ -21594,7 +21738,7 @@ var BaseSeriesGenerator = class {
21594
21738
  * @return {*} {SeriesOption[]}
21595
21739
  */
21596
21740
  calcGroupSeries(groupData) {
21597
- return Object.keys(groupData).map((group) => {
21741
+ const tempSeries = Object.keys(groupData).map((group) => {
21598
21742
  const catalogData = groupData[group];
21599
21743
  const data = this.calcSeriesData(catalogData);
21600
21744
  let options = { ...this.staticOptions, data };
@@ -21610,6 +21754,23 @@ var BaseSeriesGenerator = class {
21610
21754
  }
21611
21755
  return options;
21612
21756
  });
21757
+ if (this.model.seriesCodeListId) {
21758
+ const codelist = this.chartGenerator.codeListMap.get(
21759
+ this.model.seriesCodeListId
21760
+ );
21761
+ if (codelist) {
21762
+ tempSeries.sort((a, b) => {
21763
+ const aIndex = codelist.findIndex((_code) => {
21764
+ return _code.text === a.name;
21765
+ });
21766
+ const bIndex = codelist.findIndex((_code) => {
21767
+ return _code.text === b.name;
21768
+ });
21769
+ return aIndex - bIndex;
21770
+ });
21771
+ }
21772
+ }
21773
+ return tempSeries;
21613
21774
  }
21614
21775
  /**
21615
21776
  * 生成每条序列的data,由于不同图表类型格式不同所以为any
@@ -22896,13 +23057,27 @@ var ChartController = class extends MDControlController {
22896
23057
  * @memberof ChartController
22897
23058
  */
22898
23059
  changeTooltipState(tag = true) {
22899
- if (this.options && this.options.tooltip) {
23060
+ if (this.chart && this.options && this.options.tooltip) {
22900
23061
  if (tag) {
22901
- Object.assign(this.options.tooltip, { show: this.tooltipState });
23062
+ this.chart.setOption(
23063
+ {
23064
+ tooltip: {
23065
+ show: this.tooltipState
23066
+ }
23067
+ },
23068
+ { notMerge: false }
23069
+ );
22902
23070
  } else {
22903
- Object.assign(this.options.tooltip, { show: false });
23071
+ this.chart.setOption(
23072
+ {
23073
+ tooltip: {
23074
+ show: false
23075
+ }
23076
+ },
23077
+ { notMerge: false }
23078
+ );
22904
23079
  }
22905
- this.updateChart();
23080
+ this.resizeChart();
22906
23081
  }
22907
23082
  }
22908
23083
  /**
@@ -22915,10 +23090,19 @@ var ChartController = class extends MDControlController {
22915
23090
  var _a;
22916
23091
  const { data, seriesType } = arg;
22917
23092
  let tempConfig = {};
22918
- if (seriesType === "pie") {
23093
+ if (seriesType === "pie" || seriesType === "gauge") {
22919
23094
  if (data && data.value && Array.isArray(data.value)) {
22920
23095
  tempConfig = data.value.at(1);
22921
23096
  }
23097
+ } else if (seriesType === "radar") {
23098
+ const { componentIndex, componentSubType, componentType, event } = arg;
23099
+ const index = event.topTarget.__dimIdx;
23100
+ if (componentType === "series" && (index || index === 0)) {
23101
+ const serieid2 = "".concat(componentSubType, "_").concat(componentIndex);
23102
+ tempConfig = {
23103
+ _seriesModelId: serieid2
23104
+ };
23105
+ }
22922
23106
  } else if (data && Array.isArray(data)) {
22923
23107
  tempConfig = data.at(2);
22924
23108
  }
@@ -22929,36 +23113,39 @@ var ChartController = class extends MDControlController {
22929
23113
  return targetSerie;
22930
23114
  }
22931
23115
  /**
22932
- * 处理查看明细参数
23116
+ * 计算查看明细参数
22933
23117
  *
22934
23118
  * @param {IData} arg
22935
23119
  * @return {*}
22936
23120
  * @memberof ChartController
22937
23121
  */
22938
23122
  computedDrillDetailParam(arg) {
22939
- var _a;
22940
- const { seriesType, data } = arg;
23123
+ var _a, _b;
23124
+ const { seriesType } = arg;
22941
23125
  const targetSerie = this.computedClickSerieModel(arg);
22942
23126
  let measureId = "";
22943
23127
  const dimension = [];
22944
23128
  if (targetSerie) {
22945
23129
  measureId = targetSerie.valueField;
22946
- if (seriesType === "pie") {
22947
- if (data && data.value && Array.isArray(data.value)) {
22948
- const value = data.value.at(1);
22949
- const tempData = clone25(value.$origin);
22950
- Object.keys(tempData).forEach((key) => {
22951
- if (key !== targetSerie.valueField && key !== "$origin") {
23130
+ if (seriesType === "radar") {
23131
+ const { event } = arg;
23132
+ const index = event.topTarget.__dimIdx;
23133
+ const cataData = this.generator.radarMap.get(targetSerie.catalogField);
23134
+ if (cataData && cataData.indicatorKeys) {
23135
+ const cataValue = cataData.indicatorKeys[index];
23136
+ const tempDimension = (_a = this.generator.seriesGenerators) == null ? void 0 : _a[0].catalogMap.get(cataValue);
23137
+ if (tempDimension) {
23138
+ Object.keys(tempDimension).forEach((key) => {
22952
23139
  dimension.push({
22953
23140
  name: key,
22954
- value: tempData[key]
23141
+ value: tempDimension[key]
22955
23142
  });
22956
- }
22957
- });
23143
+ });
23144
+ }
22958
23145
  }
22959
- } else {
23146
+ } else if (seriesType !== "gauge") {
22960
23147
  const value = arg.name;
22961
- const tempDimension = (_a = this.generator.seriesGenerators) == null ? void 0 : _a[0].catalogMap.get(value);
23148
+ const tempDimension = (_b = this.generator.seriesGenerators) == null ? void 0 : _b[0].catalogMap.get(value);
22962
23149
  if (tempDimension) {
22963
23150
  Object.keys(tempDimension).forEach((key) => {
22964
23151
  dimension.push({
@@ -22973,7 +23160,7 @@ var ChartController = class extends MDControlController {
22973
23160
  measure: {
22974
23161
  name: measureId
22975
23162
  },
22976
- dimension
23163
+ dimension: dimension.length > 0 ? dimension : void 0
22977
23164
  };
22978
23165
  }
22979
23166
  /**
@@ -23411,7 +23598,7 @@ import { ModelError as ModelError19, RuntimeModelError as RuntimeModelError34 }
23411
23598
 
23412
23599
  // src/ui-logic/utils/handle-src-val.ts
23413
23600
  import { ModelError as ModelError18 } from "@ibiz-template/core";
23414
- import { clone as clone26 } from "ramda";
23601
+ import { clone as clone25 } from "ramda";
23415
23602
  function handleSrcVal2(ctx, srcValParams) {
23416
23603
  const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
23417
23604
  const srcValueType = srcValParams.srcValueType || "SRCDLPARAM";
@@ -23438,7 +23625,7 @@ function handleSrcVal2(ctx, srcValParams) {
23438
23625
  value = ctx.parameters.context;
23439
23626
  break;
23440
23627
  case "ENVPARAM":
23441
- value = clone26(ibiz.env);
23628
+ value = clone25(ibiz.env);
23442
23629
  break;
23443
23630
  default:
23444
23631
  throw new ModelError18(
@@ -23895,7 +24082,7 @@ var EndNode2 = class extends UILogicNode {
23895
24082
 
23896
24083
  // src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts
23897
24084
  import { ModelError as ModelError22, RuntimeError as RuntimeError45 } from "@ibiz-template/core";
23898
- import { clone as clone27 } from "ramda";
24085
+ import { clone as clone26 } from "ramda";
23899
24086
  var PrepareJSParamNode = class extends UILogicNode {
23900
24087
  async exec(ctx) {
23901
24088
  const nodeParams = this.model.deuilogicNodeParams;
@@ -23905,7 +24092,7 @@ var PrepareJSParamNode = class extends UILogicNode {
23905
24092
  for (const nodeParam of nodeParams) {
23906
24093
  let originValue;
23907
24094
  if (nodeParam.dstDEUILogicParamId && ibiz.env.logLevel === "DEBUG") {
23908
- originValue = clone27(ctx.params[nodeParam.dstDEUILogicParamId]);
24095
+ originValue = clone26(ctx.params[nodeParam.dstDEUILogicParamId]);
23909
24096
  }
23910
24097
  switch (nodeParam.paramAction) {
23911
24098
  case "SETPARAMVALUE":
@@ -24000,7 +24187,7 @@ var PrepareJSParamNode = class extends UILogicNode {
24000
24187
  copyParam(nodeParam, ctx) {
24001
24188
  const { dstDEUILogicParamId } = nodeParam;
24002
24189
  const srcVal = handleSrcVal2(ctx, nodeParam);
24003
- ctx.params[dstDEUILogicParamId] = clone27(srcVal);
24190
+ ctx.params[dstDEUILogicParamId] = clone26(srcVal);
24004
24191
  }
24005
24192
  /**
24006
24193
  * 绑定参数
@@ -24307,7 +24494,7 @@ var ResetParamNode2 = class extends UILogicNode {
24307
24494
 
24308
24495
  // src/ui-logic/ui-logic-node/copy-param-node/copy-param-node.ts
24309
24496
  import { RuntimeModelError as RuntimeModelError43 } from "@ibiz-template/core";
24310
- import { clone as clone28 } from "ramda";
24497
+ import { clone as clone27 } from "ramda";
24311
24498
  var CopyParamNode2 = class extends UILogicNode {
24312
24499
  async exec(ctx) {
24313
24500
  const { dstDEUILogicParamId, srcDEUILogicParamId } = this.model;
@@ -24318,7 +24505,7 @@ var CopyParamNode2 = class extends UILogicNode {
24318
24505
  );
24319
24506
  }
24320
24507
  const srcVal = handleSrcVal2(ctx, this.model);
24321
- ctx.params[dstDEUILogicParamId] = clone28(srcVal);
24508
+ ctx.params[dstDEUILogicParamId] = clone27(srcVal);
24322
24509
  ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
24323
24510
  ibiz.log.debug(
24324
24511
  ibiz.i18n.t("runtime.uiLogic.copyParameter", {
@@ -26191,7 +26378,7 @@ var ContextMenuController = class extends ToolbarController {
26191
26378
  };
26192
26379
 
26193
26380
  // src/controller/control/dashboard/dashboard.controller.ts
26194
- import { clone as clone29 } from "ramda";
26381
+ import { clone as clone28 } from "ramda";
26195
26382
  var DashboardController = class extends ControlController {
26196
26383
  constructor() {
26197
26384
  super(...arguments);
@@ -26374,7 +26561,7 @@ var DashboardController = class extends ControlController {
26374
26561
  */
26375
26562
  async loadDynaPortletById(id) {
26376
26563
  const app = ibiz.hub.getApp(ibiz.env.appId);
26377
- const tempContext = clone29(this.context);
26564
+ const tempContext = clone28(this.context);
26378
26565
  Object.assign(tempContext, { psappportlet: id });
26379
26566
  const res = await app.deService.exec(
26380
26567
  "psappportlet",
@@ -26645,7 +26832,7 @@ var CustomDashboardController = class {
26645
26832
 
26646
26833
  // src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts
26647
26834
  import { merge } from "lodash-es";
26648
- import { IBizContext as IBizContext5, IBizParams as IBizParams2 } from "@ibiz-template/core";
26835
+ import { IBizContext as IBizContext5, IBizParams as IBizParams2, Namespace as Namespace2 } from "@ibiz-template/core";
26649
26836
 
26650
26837
  // src/controller/control/dashboard/portlet/portlet-part/portlet-part.state.ts
26651
26838
  var PortletPartState = class {
@@ -26732,6 +26919,22 @@ var PortletPartController = class {
26732
26919
  return this.dashboard.getController(contentControlId);
26733
26920
  }
26734
26921
  }
26922
+ /**
26923
+ * @description 内容元素
26924
+ * @readonly
26925
+ * @type {(HTMLDivElement | null)}
26926
+ * @memberof PortletPartController
26927
+ */
26928
+ get contentElement() {
26929
+ if (this.contentController) {
26930
+ const { codeName = "" } = this.contentController.model;
26931
+ if (codeName) {
26932
+ const ns = new Namespace2("control", ibiz.env.namespace);
26933
+ return document.querySelector(".".concat(ns.m(codeName)));
26934
+ }
26935
+ }
26936
+ return null;
26937
+ }
26735
26938
  /**
26736
26939
  * 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。
26737
26940
  *
@@ -26946,6 +27149,7 @@ var ContainerPortletController = class extends PortletPartController {
26946
27149
  };
26947
27150
 
26948
27151
  // src/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.ts
27152
+ import { Namespace as Namespace3 } from "@ibiz-template/core";
26949
27153
  var ViewPortletController = class extends PortletPartController {
26950
27154
  /**
26951
27155
  * 内容控制器
@@ -26961,6 +27165,22 @@ var ViewPortletController = class extends PortletPartController {
26961
27165
  return this.dashboard.getController(portletAppView.name);
26962
27166
  }
26963
27167
  }
27168
+ /**
27169
+ * @description 内容元素
27170
+ * @readonly
27171
+ * @type {(HTMLDivElement | null)}
27172
+ * @memberof PortletPartController
27173
+ */
27174
+ get contentElement() {
27175
+ if (this.contentController) {
27176
+ const { codeName = "" } = this.contentController.model;
27177
+ if (codeName) {
27178
+ const ns = new Namespace3("view", ibiz.env.namespace);
27179
+ return document.querySelector(".".concat(ns.m(codeName)));
27180
+ }
27181
+ }
27182
+ return null;
27183
+ }
26964
27184
  /**
26965
27185
  * 刷新门户部件
26966
27186
  *
@@ -27024,6 +27244,21 @@ var RawItemPortletController = class extends PortletPartController {
27024
27244
 
27025
27245
  // src/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.ts
27026
27246
  var ReportPortletController = class extends PortletPartController {
27247
+ /**
27248
+ * 内容控制器
27249
+ *
27250
+ * @author tony001
27251
+ * @date 2024-05-07 14:05:02
27252
+ * @readonly
27253
+ * @type {(IController | undefined)}
27254
+ */
27255
+ get contentController() {
27256
+ const { controls = [] } = this.model;
27257
+ const reportPanel = controls.find((x) => x.controlType === "REPORTPANEL");
27258
+ if (reportPanel && reportPanel.codeName) {
27259
+ return this.dashboard.getController(reportPanel.codeName);
27260
+ }
27261
+ }
27027
27262
  /**
27028
27263
  * 刷新报表部件
27029
27264
  *
@@ -30707,7 +30942,7 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
30707
30942
 
30708
30943
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts
30709
30944
  import { ModelError as ModelError28 } from "@ibiz-template/core";
30710
- import { clone as clone30 } from "ramda";
30945
+ import { clone as clone29 } from "ramda";
30711
30946
  var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
30712
30947
  constructor() {
30713
30948
  super(...arguments);
@@ -30799,7 +31034,7 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
30799
31034
  copyFields.forEach((key) => {
30800
31035
  tempForm[key] = this.form.model[key];
30801
31036
  });
30802
- this.repeatedForm = clone30(tempForm);
31037
+ this.repeatedForm = clone29(tempForm);
30803
31038
  }
30804
31039
  /**
30805
31040
  * 设置重复器控制器
@@ -31007,7 +31242,7 @@ import {
31007
31242
  } from "@ibiz-template/core";
31008
31243
  import { debounce } from "lodash-es";
31009
31244
  import { createUUID as createUUID12 } from "qx-util";
31010
- import { clone as clone31, isNil as isNil27 } from "ramda";
31245
+ import { clone as clone30, isNil as isNil27 } from "ramda";
31011
31246
 
31012
31247
  // src/controller/control/form/edit-form/edit-form.service.ts
31013
31248
  import {
@@ -31376,8 +31611,8 @@ var EditFormController = class extends FormController {
31376
31611
  * @return {*} {Promise<IData>}
31377
31612
  */
31378
31613
  async copy() {
31379
- const context = clone31(this.context);
31380
- const queryParams = clone31(this.params);
31614
+ const context = clone30(this.context);
31615
+ const queryParams = clone30(this.params);
31381
31616
  const appDataEntity = await ibiz.hub.getAppDataEntity(
31382
31617
  this.model.appDataEntityId,
31383
31618
  this.model.appId
@@ -31434,7 +31669,7 @@ var EditFormController = class extends FormController {
31434
31669
  return this.loadDraft();
31435
31670
  }
31436
31671
  const { context, params } = this.handlerAbilityParams(args);
31437
- const queryParams = clone31(params);
31672
+ const queryParams = clone30(params);
31438
31673
  let res;
31439
31674
  try {
31440
31675
  await this.startLoading();
@@ -32131,7 +32366,7 @@ import {
32131
32366
  RuntimeError as RuntimeError59,
32132
32367
  RuntimeModelError as RuntimeModelError63
32133
32368
  } from "@ibiz-template/core";
32134
- import { clone as clone32, isNil as isNil28 } from "ramda";
32369
+ import { clone as clone31, isNil as isNil28 } from "ramda";
32135
32370
  import dayjs5 from "dayjs";
32136
32371
 
32137
32372
  // src/controller/control/grid/grid/grid.service.ts
@@ -32275,6 +32510,9 @@ async function calcColumnModelBySchema(json, c) {
32275
32510
  });
32276
32511
  const addColumns = [];
32277
32512
  const addDataItems = [];
32513
+ addFields.sort((a, b) => {
32514
+ return (a.description || "").localeCompare(b.description || "");
32515
+ });
32278
32516
  addFields.forEach((item) => {
32279
32517
  addColumns.push({
32280
32518
  appId: c.model.appId,
@@ -32564,7 +32802,7 @@ var GridController = class extends MDControlController {
32564
32802
  if (!this.addSchemaColumn) {
32565
32803
  return;
32566
32804
  }
32567
- const tempParams = clone32(this.jsonSchemaParams);
32805
+ const tempParams = clone31(this.jsonSchemaParams);
32568
32806
  Object.assign(tempParams, this.params);
32569
32807
  const json = await getEntitySchema(
32570
32808
  this.model.appDataEntityId,
@@ -32577,7 +32815,7 @@ var GridController = class extends MDControlController {
32577
32815
  const result = await calcColumnModelBySchema(json, this);
32578
32816
  if (result && result.degridColumns.length > 0) {
32579
32817
  const { degridColumns, degridDataItems } = result;
32580
- this.model = clone32(this.model);
32818
+ this.model = clone31(this.model);
32581
32819
  this.model.degridColumns = [
32582
32820
  ...this.model.degridColumns || [],
32583
32821
  ...degridColumns
@@ -33289,7 +33527,7 @@ var GridController = class extends MDControlController {
33289
33527
  );
33290
33528
  }
33291
33529
  if (row.data.srfuf === 1 /* UPDATE */) {
33292
- row.cacheData = clone32(row.data);
33530
+ row.cacheData = clone31(row.data);
33293
33531
  const defaultVal = this.calcDefaultValue(row.data, false);
33294
33532
  Object.assign(row.data, defaultVal);
33295
33533
  }
@@ -33432,7 +33670,7 @@ var GridController = class extends MDControlController {
33432
33670
  */
33433
33671
  formatExcelData(data) {
33434
33672
  const { fields = [] } = this.dataExportParam;
33435
- const cloneData = clone32(
33673
+ const cloneData = clone31(
33436
33674
  data.map((item) => {
33437
33675
  return fields.reduce((obj, key) => {
33438
33676
  obj[key] = item[key];
@@ -33790,7 +34028,7 @@ import {
33790
34028
  } from "@ibiz-template/core";
33791
34029
  import dayjs6 from "dayjs";
33792
34030
  import { debounce as debounce2 } from "lodash-es";
33793
- import { clone as clone33, isNil as isNil29 } from "ramda";
34031
+ import { clone as clone32, isNil as isNil29 } from "ramda";
33794
34032
  import { isNilOrEmpty as isNilOrEmpty8 } from "qx-util";
33795
34033
  var GridFieldColumnController = class extends GridColumnController {
33796
34034
  constructor() {
@@ -33934,7 +34172,7 @@ var GridFieldColumnController = class extends GridColumnController {
33934
34172
  srfkey: value,
33935
34173
  ...wfContext
33936
34174
  });
33937
- const tempParams = clone33(this.params);
34175
+ const tempParams = clone32(this.params);
33938
34176
  const { context: newContext, params: newParams } = this.handlePublicParams(
33939
34177
  row.data,
33940
34178
  tempContext,
@@ -35479,7 +35717,7 @@ var PickupViewPanelController = class extends ControlController {
35479
35717
 
35480
35718
  // src/controller/control/search-bar/search-bar.controller.ts
35481
35719
  import { mergeInLeft as mergeInLeft3, recursiveIterate as recursiveIterate10 } from "@ibiz-template/core";
35482
- import { clone as clone35 } from "ramda";
35720
+ import { clone as clone34 } from "ramda";
35483
35721
  import { isString as isString3 } from "lodash-es";
35484
35722
 
35485
35723
  // src/controller/control/search-bar/search-bar-filter.controller.ts
@@ -35937,6 +36175,9 @@ async function calcFilterModelBySchema(json, appDataEntityId, modelAppId) {
35937
36175
  }
35938
36176
  });
35939
36177
  const addSearchBarFilters = [];
36178
+ addFields.sort((a, b) => {
36179
+ return (a.description || "").localeCompare(b.description || "");
36180
+ });
35940
36181
  addFields.forEach((item) => {
35941
36182
  const ops = typeToOPs[item.type];
35942
36183
  if (!ops) {
@@ -35968,7 +36209,7 @@ async function calcFilterModelBySchema(json, appDataEntityId, modelAppId) {
35968
36209
 
35969
36210
  // src/controller/control/search-bar/search-bar-filter-items.controller.ts
35970
36211
  import { RuntimeError as RuntimeError62 } from "@ibiz-template/core";
35971
- import { clone as clone34 } from "ramda";
36212
+ import { clone as clone33 } from "ramda";
35972
36213
  var SubFieldRegex2 = /^N_(.\w+)_(.\w+)$/;
35973
36214
  var SearchBarFilterItemsController = class extends SearchBarFilterController {
35974
36215
  constructor(filterModels, appDataEntity, context, params) {
@@ -36053,7 +36294,7 @@ var SearchBarFilterItemsController = class extends SearchBarFilterController {
36053
36294
  const matches = subStr.match(SubFieldRegex2);
36054
36295
  const subField = matches[1];
36055
36296
  const subOP = matches[2];
36056
- const cloneItem = clone34(item);
36297
+ const cloneItem = clone33(item);
36057
36298
  cloneItem.defsearchMode.valueOP = subOP;
36058
36299
  cloneItem.id = subField;
36059
36300
  const filterC = new SearchBarFilterController(
@@ -36474,6 +36715,8 @@ var SearchBarController = class extends ControlController {
36474
36715
  this.state.quickSearchItems = [];
36475
36716
  this.state.quickSearchFieldNames = [];
36476
36717
  this.state.quickSearchPlaceHolder = "";
36718
+ this.state.filterMode = "default";
36719
+ this.state.customCond = "";
36477
36720
  this.resetFilter();
36478
36721
  this.state.visible = !!(this.model.enableQuickSearch || this.model.enableGroup || this.enableFilter);
36479
36722
  }
@@ -36520,7 +36763,7 @@ var SearchBarController = class extends ControlController {
36520
36763
  if (!this.addSchemaFilters) {
36521
36764
  return;
36522
36765
  }
36523
- const tempParams = clone35(this.jsonSchemaParams);
36766
+ const tempParams = clone34(this.jsonSchemaParams);
36524
36767
  Object.assign(tempParams, this.params);
36525
36768
  const json = await getEntitySchema(
36526
36769
  this.model.appDataEntityId,
@@ -36548,7 +36791,7 @@ var SearchBarController = class extends ControlController {
36548
36791
  }
36549
36792
  });
36550
36793
  if (addSearchBarFilters.length > 0) {
36551
- this.model = clone35(this.model);
36794
+ this.model = clone34(this.model);
36552
36795
  this.model.searchBarFilters = addSearchBarFilters.concat(...mergeFilters);
36553
36796
  this.model.enableFilter = true;
36554
36797
  }
@@ -36717,6 +36960,42 @@ var SearchBarController = class extends ControlController {
36717
36960
  );
36718
36961
  }
36719
36962
  }
36963
+ /**
36964
+ * 附加自定义条件
36965
+ *
36966
+ * @author zhanghengfeng
36967
+ * @date 2024-07-19 10:07:34
36968
+ * @param {IFilterNode[]} nodes
36969
+ * @return {*} {void}
36970
+ */
36971
+ attachCustomCond(nodes) {
36972
+ if (!this.state.customCond) {
36973
+ return;
36974
+ }
36975
+ if (!nodes[0]) {
36976
+ nodes[0] = {
36977
+ nodeType: "GROUP",
36978
+ logicType: "AND",
36979
+ children: []
36980
+ };
36981
+ }
36982
+ const group = nodes[0];
36983
+ if (!Array.isArray(group.children)) {
36984
+ group.children = [];
36985
+ }
36986
+ const item = group.children.find(
36987
+ (child) => child.nodeType === "CUSTOM" && child.customType === "PQL"
36988
+ );
36989
+ if (item) {
36990
+ item.customCond = this.state.customCond;
36991
+ } else {
36992
+ group.children.push({
36993
+ nodeType: "CUSTOM",
36994
+ customType: "PQL",
36995
+ customCond: this.state.customCond
36996
+ });
36997
+ }
36998
+ }
36720
36999
  /**
36721
37000
  * 计算过滤项参数
36722
37001
  * @author lxm
@@ -36727,7 +37006,9 @@ var SearchBarController = class extends ControlController {
36727
37006
  if (!this.enableFilter) {
36728
37007
  return;
36729
37008
  }
36730
- const searchconds = calcSearchConds(this.state.filterNodes, {
37009
+ const nodes = clone34(this.state.filterNodes);
37010
+ this.attachCustomCond(nodes);
37011
+ const searchconds = calcSearchConds(nodes, {
36731
37012
  after: (node, cond) => {
36732
37013
  if (node.nodeType === "FIELD" && isString3(node.value)) {
36733
37014
  if (ScriptValueRegex2.test(node.value)) {
@@ -36894,7 +37175,9 @@ var SearchBarController = class extends ControlController {
36894
37175
  */
36895
37176
  async handleSave() {
36896
37177
  if (this.grid && this.state.selectedSearchGroupItem) {
36897
- const filters = calcSearchCondExs(this.state.filterNodes);
37178
+ const nodes = clone34(this.state.filterNodes);
37179
+ this.attachCustomCond(nodes);
37180
+ const filters = calcSearchCondExs(nodes);
36898
37181
  const saveParams = {
36899
37182
  searchconds: filters,
36900
37183
  sort: this.grid.state.sortQuery,
@@ -36940,7 +37223,7 @@ var SearchBarController = class extends ControlController {
36940
37223
  * @Date: 2023-12-21 10:29:24
36941
37224
  */
36942
37225
  async handleGroupClick(groupItem) {
36943
- var _a;
37226
+ var _a, _b;
36944
37227
  if (this.enableStorage) {
36945
37228
  const key = (_a = this.storageKeyFn) == null ? void 0 : _a.call(this);
36946
37229
  if (key && groupItem.name) {
@@ -36959,9 +37242,26 @@ var SearchBarController = class extends ControlController {
36959
37242
  const filterNodes = groupItem.searchGroupData.searchconds.map(
36960
37243
  (item) => SearchCondEx2filterNode(item)
36961
37244
  );
37245
+ this.state.customCond = "";
37246
+ if (filterNodes && filterNodes[0]) {
37247
+ const group = filterNodes[0];
37248
+ const { children } = group;
37249
+ if (Array.isArray(children)) {
37250
+ const index = children.findIndex(
37251
+ (child) => child.nodeType === "CUSTOM" && child.customType === "PQL"
37252
+ );
37253
+ if (index !== -1) {
37254
+ const item = children.splice(index, 1);
37255
+ this.state.customCond = ((_b = item[0]) == null ? void 0 : _b.customCond) || "";
37256
+ }
37257
+ }
37258
+ }
37259
+ this.state.filterMode = "default";
36962
37260
  this.state.filterNodes = filterNodes;
36963
37261
  } else {
36964
37262
  this.state.filterNodes = getOriginFilterNodes();
37263
+ this.state.customCond = "";
37264
+ this.state.filterMode = "default";
36965
37265
  }
36966
37266
  recursiveIterate10(this.state.filterNodes[0], (node) => {
36967
37267
  if (node.nodeType === "FIELD") {
@@ -39172,10 +39472,10 @@ var MDCtrlController = class extends MDControlController {
39172
39472
 
39173
39473
  // src/controller/control/kanban/kanban.controller.ts
39174
39474
  import { RuntimeError as RuntimeError65, RuntimeModelError as RuntimeModelError68 } from "@ibiz-template/core";
39175
- import { clone as clone37, isNil as isNil33 } from "ramda";
39475
+ import { clone as clone36, isNil as isNil33 } from "ramda";
39176
39476
 
39177
39477
  // src/controller/control/kanban/kanban.service.ts
39178
- import { clone as clone36 } from "ramda";
39478
+ import { clone as clone35 } from "ramda";
39179
39479
  var KanbanService = class extends DataViewControlService {
39180
39480
  /**
39181
39481
  * 更新分组数据
@@ -39204,7 +39504,7 @@ var KanbanService = class extends DataViewControlService {
39204
39504
  */
39205
39505
  async moveOrderItem(context, data, args) {
39206
39506
  const moveAction = this.model.moveControlAction.appDEMethodId;
39207
- const params = clone36(data.getOrigin());
39507
+ const params = clone35(data.getOrigin());
39208
39508
  Object.assign(params, args);
39209
39509
  let res = await this.exec(moveAction, context, params, {
39210
39510
  srfupdateitem: true
@@ -39536,7 +39836,7 @@ var KanbanController = class extends DataViewControlController {
39536
39836
  }
39537
39837
  return moveData;
39538
39838
  };
39539
- const draggedItem = clone37(fromGroup.children[fromIndex]);
39839
+ const draggedItem = clone36(fromGroup.children[fromIndex]);
39540
39840
  const removeItems = fromGroup.children.splice(fromIndex, 1);
39541
39841
  toGroup.children.splice(toIndex, 0, ...removeItems);
39542
39842
  if (info.from !== info.to) {
@@ -39809,7 +40109,7 @@ import {
39809
40109
  awaitTimeout as awaitTimeout3,
39810
40110
  recursiveIterate as recursiveIterate12
39811
40111
  } from "@ibiz-template/core";
39812
- import { clone as clone38 } from "ramda";
40112
+ import { clone as clone37 } from "ramda";
39813
40113
 
39814
40114
  // src/controller/control/tree-grid-ex/tree-grid-ex.service.ts
39815
40115
  var TreeGridExService = class extends TreeService {
@@ -40281,7 +40581,7 @@ var TreeGridExController = class extends TreeController {
40281
40581
  );
40282
40582
  }
40283
40583
  if (row.data._deData.srfuf === 1 /* UPDATE */) {
40284
- row.cacheData = clone38(row.data);
40584
+ row.cacheData = clone37(row.data);
40285
40585
  const defaultVal = this.calcDefaultValue(row.data, false);
40286
40586
  Object.assign(row.data, defaultVal);
40287
40587
  }
@@ -40394,7 +40694,7 @@ import {
40394
40694
  RuntimeError as RuntimeError67,
40395
40695
  RuntimeModelError as RuntimeModelError70
40396
40696
  } from "@ibiz-template/core";
40397
- import { clone as clone39 } from "ramda";
40697
+ import { clone as clone38 } from "ramda";
40398
40698
  import dayjs7 from "dayjs";
40399
40699
  var TreeGridExNodeColumnController = class {
40400
40700
  /**
@@ -40611,7 +40911,7 @@ var TreeGridExNodeColumnController = class {
40611
40911
  srfkey: value,
40612
40912
  ...wfContext
40613
40913
  });
40614
- const tempParams = clone39(this.params);
40914
+ const tempParams = clone38(this.params);
40615
40915
  const { userParam } = this.nodeColumn;
40616
40916
  if (userParam) {
40617
40917
  const { navigateContexts, navigateParams } = parseUserParams(userParam);
@@ -42764,8 +43064,8 @@ import { QXEvent as QXEvent11 } from "qx-util";
42764
43064
 
42765
43065
  // src/controller/notification/async-action.controller.ts
42766
43066
  import { QXEvent as QXEvent9 } from "qx-util";
42767
- import { clone as clone40 } from "ramda";
42768
- import { isNil as isNil34, isNumber as isNumber2 } from "lodash-es";
43067
+ import { clone as clone39 } from "ramda";
43068
+ import { isNil as isNil34, isNumber as isNumber3 } from "lodash-es";
42769
43069
  import dayjs8 from "dayjs";
42770
43070
  var AsyncActionController = class {
42771
43071
  constructor() {
@@ -42839,7 +43139,7 @@ var AsyncActionController = class {
42839
43139
  "updatedate"
42840
43140
  ];
42841
43141
  dateFields.forEach((key) => {
42842
- if (isNumber2(data[key])) {
43142
+ if (isNumber3(data[key])) {
42843
43143
  data[key] = dayjs8(data[key]).format("YYYY-MM-DD HH:mm:ss");
42844
43144
  }
42845
43145
  });
@@ -42875,7 +43175,7 @@ var AsyncActionController = class {
42875
43175
  } else {
42876
43176
  this.noticeResult(action);
42877
43177
  }
42878
- this.evt.emit("add", clone40(action));
43178
+ this.evt.emit("add", clone39(action));
42879
43179
  this.evt.emit("dataChange");
42880
43180
  }
42881
43181
  /**
@@ -42897,7 +43197,7 @@ var AsyncActionController = class {
42897
43197
  }
42898
43198
  this.noticeResult(action);
42899
43199
  }
42900
- this.evt.emit("change", clone40(action));
43200
+ this.evt.emit("change", clone39(action));
42901
43201
  this.evt.emit("dataChange");
42902
43202
  }
42903
43203
  noticeResult(action) {
@@ -44062,7 +44362,7 @@ var ViewEngineBase = class {
44062
44362
 
44063
44363
  // src/engine/md-view.engine.ts
44064
44364
  import { RuntimeModelError as RuntimeModelError73 } from "@ibiz-template/core";
44065
- import { clone as clone41 } from "ramda";
44365
+ import { clone as clone40 } from "ramda";
44066
44366
  var MDViewEngine = class extends ViewEngineBase {
44067
44367
  /**
44068
44368
  * 多数据部件名称
@@ -44317,7 +44617,7 @@ var MDViewEngine = class extends ViewEngineBase {
44317
44617
  ibiz.i18n.t("runtime.engine.logicNewdata")
44318
44618
  );
44319
44619
  }
44320
- const params = clone41(this.view.params);
44620
+ const params = clone40(this.view.params);
44321
44621
  if (copyMode) {
44322
44622
  params.srfcopymode = copyMode;
44323
44623
  }