@ibiz-template/runtime 0.7.31-alpha.1 → 0.7.34

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 (66) hide show
  1. package/dist/index.esm.js +447 -63
  2. package/dist/index.system.min.js +1 -1
  3. package/out/controller/control/chart/chart.controller.d.ts.map +1 -1
  4. package/out/controller/control/chart/chart.controller.js +25 -2
  5. package/out/controller/control/chart/generator/base-series-generator.d.ts.map +1 -1
  6. package/out/controller/control/chart/generator/base-series-generator.js +20 -13
  7. package/out/controller/control/chart/generator/chart-options-generator.d.ts +2 -1
  8. package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
  9. package/out/controller/control/chart/generator/chart-options-generator.js +2 -1
  10. package/out/controller/control/dashboard/dashboard.controller.d.ts.map +1 -1
  11. package/out/controller/control/dashboard/dashboard.controller.js +0 -1
  12. package/out/controller/control/dashboard/portlet/chart-portlet/chart-portlet.controller.d.ts +5 -4
  13. package/out/controller/control/dashboard/portlet/chart-portlet/chart-portlet.controller.d.ts.map +1 -1
  14. package/out/controller/control/dashboard/portlet/chart-portlet/chart-portlet.controller.js +5 -4
  15. package/out/controller/control/dashboard/portlet/list-portlet/list-portlet.controller.d.ts +5 -4
  16. package/out/controller/control/dashboard/portlet/list-portlet/list-portlet.controller.d.ts.map +1 -1
  17. package/out/controller/control/dashboard/portlet/list-portlet/list-portlet.controller.js +5 -4
  18. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +5 -4
  19. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
  20. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +5 -4
  21. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.d.ts +3 -2
  22. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.d.ts.map +1 -1
  23. package/out/controller/control/dashboard/portlet/report-portlet/report-portlet.controller.js +11 -3
  24. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts +4 -4
  25. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts.map +1 -1
  26. package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.js +4 -4
  27. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  28. package/out/controller/control/grid/grid/grid.controller.js +6 -8
  29. package/out/controller/control/search-bar/search-bar.controller.d.ts +16 -0
  30. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  31. package/out/controller/control/search-bar/search-bar.controller.js +31 -0
  32. package/out/global/global-util/global-util.d.ts +8 -1
  33. package/out/global/global-util/global-util.d.ts.map +1 -1
  34. package/out/global/global-util/global-util.js +8 -1
  35. package/out/interface/controller/controller/control/i-control.controller.d.ts +8 -0
  36. package/out/interface/controller/controller/control/i-control.controller.d.ts.map +1 -1
  37. package/out/interface/controller/controller/control/i-dashboard.controller.d.ts +10 -1
  38. package/out/interface/controller/controller/control/i-dashboard.controller.d.ts.map +1 -1
  39. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts +8 -0
  40. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts.map +1 -1
  41. package/out/interface/controller/event/control/i-dashboard.event.d.ts +19 -0
  42. package/out/interface/controller/event/control/i-dashboard.event.d.ts.map +1 -1
  43. package/out/interface/util/i-jsonschema-util/i-jsonschema-util.d.ts +35 -0
  44. package/out/interface/util/i-jsonschema-util/i-jsonschema-util.d.ts.map +1 -0
  45. package/out/interface/util/i-jsonschema-util/i-jsonschema-util.js +1 -0
  46. package/out/interface/util/index.d.ts +1 -0
  47. package/out/interface/util/index.d.ts.map +1 -1
  48. package/out/locale/en/index.d.ts +0 -1
  49. package/out/locale/en/index.d.ts.map +1 -1
  50. package/out/locale/en/index.js +0 -1
  51. package/out/locale/zh-CN/index.d.ts +0 -1
  52. package/out/locale/zh-CN/index.d.ts.map +1 -1
  53. package/out/locale/zh-CN/index.js +0 -1
  54. package/out/service/de-service-util.d.ts +19 -0
  55. package/out/service/de-service-util.d.ts.map +1 -1
  56. package/out/service/de-service-util.js +42 -10
  57. package/out/service/vo/chart-data/chart-data.d.ts +2 -1
  58. package/out/service/vo/chart-data/chart-data.d.ts.map +1 -1
  59. package/out/service/vo/chart-data/chart-data.js +2 -1
  60. package/out/utils/index.d.ts +1 -0
  61. package/out/utils/index.d.ts.map +1 -1
  62. package/out/utils/index.js +1 -0
  63. package/out/utils/jsonschema-util/jsonschema-util.d.ts +108 -0
  64. package/out/utils/jsonschema-util/jsonschema-util.d.ts.map +1 -0
  65. package/out/utils/jsonschema-util/jsonschema-util.js +305 -0
  66. package/package.json +4 -3
package/dist/index.esm.js CHANGED
@@ -11977,11 +11977,12 @@ function updateKeyDefine4(target, keys) {
11977
11977
  });
11978
11978
  }
11979
11979
  var ChartData = class {
11980
- constructor(deData, seriesModel, catalog, groupName) {
11980
+ constructor(deData, seriesModel, catalog, groupName, chartId) {
11981
11981
  this._seriesModelId = seriesModel == null ? void 0 : seriesModel.id;
11982
11982
  this._catalog = catalog;
11983
11983
  this._groupName = groupName;
11984
11984
  this._uuid = createUUID5();
11985
+ this._chartid = chartId;
11985
11986
  return new Proxy(this, {
11986
11987
  set(target, p, value) {
11987
11988
  if (Object.prototype.hasOwnProperty.call(deData, p)) {
@@ -12241,6 +12242,15 @@ var _DEServiceUtil = class _DEServiceUtil {
12241
12242
  * @type {Map<string, Map<string, IAppDEService>>} Map<域标识, Map<实体标识, 实体服务>>
12242
12243
  */
12243
12244
  this.cache = /* @__PURE__ */ new Map();
12245
+ /**
12246
+ * 创建中缓存
12247
+ *
12248
+ * @author tony001
12249
+ * @date 2024-07-24 22:07:21
12250
+ * @protected
12251
+ * @type {Map<string, Promise<IAppDEService>>}
12252
+ */
12253
+ this.creatingCache = /* @__PURE__ */ new Map();
12244
12254
  }
12245
12255
  /**
12246
12256
  * 注册服务工厂方法
@@ -12277,24 +12287,46 @@ var _DEServiceUtil = class _DEServiceUtil {
12277
12287
  }
12278
12288
  const map = this.cache.get(sandboxId);
12279
12289
  if (!map.has(id)) {
12280
- const entityModel = await ibiz.hub.getAppDataEntity(
12281
- id,
12282
- this.appModel.appId
12283
- );
12284
- if (!entityModel) {
12285
- throw new RuntimeError23(ibiz.i18n.t("runtime.service.noFound", { id }));
12286
- }
12287
- const constructor = _DEServiceUtil.constructorCache.get(id.toUpperCase());
12288
- let service;
12289
- if (constructor) {
12290
- service = await constructor(sandboxId, entityModel);
12290
+ const cacheKey = "".concat(sandboxId, "@").concat(id);
12291
+ let result;
12292
+ if (this.creatingCache.has(cacheKey)) {
12293
+ result = await this.creatingCache.get(cacheKey);
12291
12294
  } else {
12292
- service = new DEService(sandboxId, entityModel);
12295
+ const service = this.createServiceInstance(sandboxId, id);
12296
+ this.creatingCache.set(cacheKey, service);
12297
+ result = await service;
12298
+ this.creatingCache.delete(cacheKey);
12293
12299
  }
12294
- map.set(id, service);
12300
+ map.set(id, result);
12295
12301
  }
12296
12302
  return map.get(id);
12297
12303
  }
12304
+ /**
12305
+ * 创建实体服务实例
12306
+ *
12307
+ * @author tony001
12308
+ * @date 2024-07-24 22:07:28
12309
+ * @param {string} sandboxId
12310
+ * @param {string} id
12311
+ * @return {*} {Promise<IAppDEService>}
12312
+ */
12313
+ async createServiceInstance(sandboxId, id) {
12314
+ const entityModel = await ibiz.hub.getAppDataEntity(
12315
+ id,
12316
+ this.appModel.appId
12317
+ );
12318
+ if (!entityModel) {
12319
+ throw new RuntimeError23(ibiz.i18n.t("runtime.service.noFound", { id }));
12320
+ }
12321
+ const constructor = _DEServiceUtil.constructorCache.get(id.toUpperCase());
12322
+ let service;
12323
+ if (constructor) {
12324
+ service = await constructor(sandboxId, entityModel);
12325
+ } else {
12326
+ service = new DEService(sandboxId, entityModel);
12327
+ }
12328
+ return service;
12329
+ }
12298
12330
  /**
12299
12331
  * 重置服务, 删除指定域下的所有服务缓存
12300
12332
  *
@@ -15888,6 +15920,274 @@ var RecordNavUtil = class {
15888
15920
  }
15889
15921
  };
15890
15922
 
15923
+ // src/utils/jsonschema-util/jsonschema-util.ts
15924
+ import qs3 from "qs";
15925
+ var JsonSchemaUtil = class {
15926
+ constructor() {
15927
+ /**
15928
+ * 值操作数组
15929
+ *
15930
+ * @author tony001
15931
+ * @date 2024-07-25 00:07:57
15932
+ * @private
15933
+ */
15934
+ this.valueOPArray = [
15935
+ { valueOP: "EQ" /* EQ */, label: "\u7B49\u4E8E", sqlOP: "=" },
15936
+ { valueOP: "NOTEQ" /* NOT_EQ */, label: "\u4E0D\u7B49\u4E8E", sqlOP: "<>" },
15937
+ { valueOP: "GT" /* GT */, label: "\u5927\u4E8E", sqlOP: ">" },
15938
+ { valueOP: "GTANDEQ" /* GT_AND_EQ */, label: "\u5927\u4E8E\u7B49\u4E8E", sqlOP: ">=" },
15939
+ { valueOP: "LT" /* LT */, label: "\u5C0F\u4E8E", sqlOP: "<" },
15940
+ { valueOP: "LTANDEQ" /* LT_AND_EQ */, label: "\u5C0F\u4E8E\u7B49\u4E8E", sqlOP: "<=" },
15941
+ { valueOP: "ISNULL" /* IS_NULL */, label: "\u4E3A\u7A7A", sqlOP: "IS NULL" },
15942
+ { valueOP: "ISNOTNULL" /* IS_NOT_NULL */, label: "\u975E\u7A7A", sqlOP: "IS NOT NULL" },
15943
+ { valueOP: "IN" /* IN */, label: "\u5C5E\u4E8E", sqlOP: "IN" },
15944
+ { valueOP: "NOTIN" /* NOT_IN */, label: "\u4E0D\u5C5E\u4E8E", sqlOP: "NOT IN" },
15945
+ { valueOP: "LIKE" /* LIKE */, label: "\u6587\u672C\u5305\u542B", sqlOP: "LIKE" },
15946
+ { valueOP: "LIFTLIKE" /* LIFT_LIKE */, label: "\u6587\u672C\u5DE6\u5305\u542B", sqlOP: "" },
15947
+ { valueOP: "RIGHT_LIKE" /* RIGHT_LIKE */, label: "\u6587\u672C\u53F3\u5305\u542B", sqlOP: "" },
15948
+ { valueOP: "EXISTS" /* EXISTS */, label: "\u5B58\u5728", sqlOP: "" },
15949
+ { valueOP: "NOTEXISTS" /* NOT_EXISTS */, label: "\u4E0D\u5B58\u5728", sqlOP: "" }
15950
+ ];
15951
+ /**
15952
+ * 数据类型映射操作符
15953
+ *
15954
+ * @author tony001
15955
+ * @date 2024-07-25 00:07:31
15956
+ * @private
15957
+ * @type {{
15958
+ * [p: string]: ValueOP[];
15959
+ * }}
15960
+ */
15961
+ this.DataTypeToOPs = {
15962
+ ["STRING" /* STRING */]: [
15963
+ "EQ" /* EQ */,
15964
+ "NOTEQ" /* NOT_EQ */,
15965
+ "ISNULL" /* IS_NULL */,
15966
+ "ISNOTNULL" /* IS_NOT_NULL */,
15967
+ "USERLIKE" /* USER_LIKE */,
15968
+ "LIKE" /* LIKE */,
15969
+ "LIFTLIKE" /* LIFT_LIKE */,
15970
+ "RIGHT_LIKE" /* RIGHT_LIKE */
15971
+ ],
15972
+ ["NUMBER" /* NUMBER */]: [
15973
+ "EQ" /* EQ */,
15974
+ "GT" /* GT */,
15975
+ "GTANDEQ" /* GT_AND_EQ */,
15976
+ "LT" /* LT */,
15977
+ "LTANDEQ" /* LT_AND_EQ */,
15978
+ "NOTEQ" /* NOT_EQ */,
15979
+ "ISNULL" /* IS_NULL */,
15980
+ "ISNOTNULL" /* IS_NOT_NULL */,
15981
+ "IN" /* IN */,
15982
+ "NOTIN" /* NOT_IN */
15983
+ ],
15984
+ ["DATE" /* DATE */]: [
15985
+ "EQ" /* EQ */,
15986
+ "GT" /* GT */,
15987
+ "GTANDEQ" /* GT_AND_EQ */,
15988
+ "LT" /* LT */,
15989
+ "LTANDEQ" /* LT_AND_EQ */,
15990
+ "NOTEQ" /* NOT_EQ */,
15991
+ "ISNULL" /* IS_NULL */,
15992
+ "ISNOTNULL" /* IS_NOT_NULL */,
15993
+ "IN" /* IN */,
15994
+ "NOTIN" /* NOT_IN */
15995
+ ],
15996
+ ["CODELIST" /* CODELIST */]: [
15997
+ "EQ" /* EQ */,
15998
+ "NOTEQ" /* NOT_EQ */,
15999
+ "ISNULL" /* IS_NULL */,
16000
+ "ISNOTNULL" /* IS_NOT_NULL */,
16001
+ "IN" /* IN */,
16002
+ "NOTIN" /* NOT_IN */
16003
+ ],
16004
+ ["FOREIGNKEY" /* FOREIGNKEY */]: [
16005
+ "EQ" /* EQ */,
16006
+ "NOTEQ" /* NOT_EQ */,
16007
+ "ISNULL" /* IS_NULL */,
16008
+ "ISNOTNULL" /* IS_NOT_NULL */,
16009
+ "IN" /* IN */,
16010
+ "NOTIN" /* NOT_IN */
16011
+ ],
16012
+ ["CHILD" /* CHILD */]: ["EXISTS" /* EXISTS */, "NOTEXISTS" /* NOT_EXISTS */]
16013
+ };
16014
+ /**
16015
+ * 排除操作符
16016
+ *
16017
+ * @author tony001
16018
+ * @date 2024-07-25 17:07:51
16019
+ * @private
16020
+ * @type {string[]}
16021
+ */
16022
+ this.excludeOPs = [
16023
+ "ISNULL" /* IS_NULL */,
16024
+ "ISNOTNULL" /* IS_NOT_NULL */,
16025
+ "EXISTS" /* EXISTS */,
16026
+ "NOTEXISTS" /* NOT_EXISTS */
16027
+ ];
16028
+ /**
16029
+ * 数据类型映射编辑器
16030
+ *
16031
+ * @author tony001
16032
+ * @date 2024-07-25 00:07:07
16033
+ * @private
16034
+ * @type {({
16035
+ * [p: string]: IData| undefined;
16036
+ * })}
16037
+ */
16038
+ this.DataTypeToEditor = {
16039
+ ["STRING" /* STRING */]: {
16040
+ appId: "",
16041
+ editorType: "TEXTBOX"
16042
+ },
16043
+ ["NUMBER" /* NUMBER */]: {
16044
+ appId: "",
16045
+ editorType: "NUMBER"
16046
+ },
16047
+ ["DATE" /* DATE */]: {
16048
+ appId: "",
16049
+ editorType: "DATEPICKEREX",
16050
+ dateTimeFormat: "YYYY-MM-DD"
16051
+ },
16052
+ ["CODELIST" /* CODELIST */]: {
16053
+ appId: "",
16054
+ valueType: "SIMPLE",
16055
+ editorType: "MDROPDOWNLIST",
16056
+ appCodeListId: "",
16057
+ editorParams: {
16058
+ overflowMode: "ellipsis"
16059
+ }
16060
+ },
16061
+ ["FOREIGNKEY" /* FOREIGNKEY */]: {
16062
+ appId: "",
16063
+ editorType: "ADDRESSPICKUP",
16064
+ appDEDataSetId: "fetchdefault",
16065
+ objectIdField: "srfkey",
16066
+ objectNameField: "srfmajortext",
16067
+ valueType: "OBJECTS",
16068
+ editorParams: {
16069
+ overflowMode: "ellipsis"
16070
+ }
16071
+ },
16072
+ ["CHILD" /* CHILD */]: void 0
16073
+ };
16074
+ }
16075
+ /**
16076
+ * 获取jsonschema属性数据
16077
+ *
16078
+ * @author tony001
16079
+ * @date 2024-07-25 00:07:49
16080
+ * @param {string} entityId
16081
+ * @param {IContext} context
16082
+ * @param {IParams} [params={}]
16083
+ * @return {*} {Promise<IData[]>}
16084
+ */
16085
+ async getEntitySchemaFields(entityId, context, params = {}) {
16086
+ var _a;
16087
+ const result = [];
16088
+ const strParams = qs3.stringify(params);
16089
+ const app = ibiz.hub.getApp(context.srfappid);
16090
+ const entity = await ibiz.hub.getAppDataEntity(entityId, context.srfappid);
16091
+ let url = "/jsonschema/".concat(entity.name);
16092
+ if (entity.dynaSysMode === 0 && ibiz.appData) {
16093
+ url += "?dynamodeltag=".concat(ibiz.appData.dynamodeltag).concat(strParams ? "&".concat(strParams) : "");
16094
+ } else {
16095
+ url += "".concat(strParams ? "?".concat(strParams) : "");
16096
+ }
16097
+ const res = await app.net.get(url);
16098
+ const { data } = res;
16099
+ if (!data.properties) {
16100
+ return result;
16101
+ }
16102
+ const { properties } = data;
16103
+ if (!(Object.keys(properties).length > 0)) {
16104
+ return result;
16105
+ }
16106
+ for (let i = 0; i < Object.keys(properties).length; i++) {
16107
+ const key = Object.keys(properties)[i];
16108
+ const item = properties[key];
16109
+ let type = "STRING" /* STRING */;
16110
+ const originalType = item.type;
16111
+ if (originalType === "array" || item.extension) {
16112
+ break;
16113
+ }
16114
+ switch (originalType) {
16115
+ case "string":
16116
+ if (item.$ref) {
16117
+ type = "FOREIGNKEY" /* FOREIGNKEY */;
16118
+ }
16119
+ if (item.enumSource) {
16120
+ type = "CODELIST" /* CODELIST */;
16121
+ }
16122
+ if (item.format === "date-time") {
16123
+ type = "DATE" /* DATE */;
16124
+ }
16125
+ break;
16126
+ case "integer":
16127
+ case "number":
16128
+ type = "NUMBER" /* NUMBER */;
16129
+ if (item.enumSource) {
16130
+ type = "CODELIST" /* CODELIST */;
16131
+ }
16132
+ break;
16133
+ default:
16134
+ if (item.$ref) {
16135
+ type = "FOREIGNKEY" /* FOREIGNKEY */;
16136
+ }
16137
+ break;
16138
+ }
16139
+ result.push({
16140
+ type,
16141
+ originalType,
16142
+ appDEFieldId: key,
16143
+ caption: item.description,
16144
+ appCodeListId: item.enumSource,
16145
+ appDataEntityId: (_a = item.$ref) == null ? void 0 : _a.split(".")[0]
16146
+ });
16147
+ }
16148
+ return result;
16149
+ }
16150
+ /**
16151
+ * 通过数据类型获取可使用操作标识集合
16152
+ *
16153
+ * @author tony001
16154
+ * @date 2024-07-25 16:07:24
16155
+ * @param {string} dataType
16156
+ * @return {*} {IData[]}
16157
+ */
16158
+ getValueOPsByDataType(dataType) {
16159
+ let result = [];
16160
+ result = this.valueOPArray.filter(
16161
+ (mode) => this.DataTypeToOPs[dataType].includes(mode.valueOP)
16162
+ );
16163
+ return result;
16164
+ }
16165
+ /**
16166
+ * 获取仿真编辑器
16167
+ *
16168
+ * @author tony001
16169
+ * @date 2024-07-25 17:07:11
16170
+ * @param {IContext} context
16171
+ * @param {IData} item
16172
+ * @return {*} {Promise<IData>}
16173
+ */
16174
+ getMockEditor(context, item, valueOP) {
16175
+ if (valueOP && this.excludeOPs.includes(valueOP))
16176
+ return;
16177
+ const baseMockEditor = this.DataTypeToEditor[item.type];
16178
+ if (!baseMockEditor)
16179
+ return;
16180
+ baseMockEditor.appId = context.srfappid;
16181
+ if (item.type === "CODELIST" /* CODELIST */) {
16182
+ baseMockEditor.appCodeListId = item.appCodeListId;
16183
+ }
16184
+ if (item.type === "FOREIGNKEY" /* FOREIGNKEY */) {
16185
+ baseMockEditor.appDataEntityId = item.appDataEntityId;
16186
+ }
16187
+ return baseMockEditor;
16188
+ }
16189
+ };
16190
+
15891
16191
  // src/utils/dr-ctrl-util/index.ts
15892
16192
  function calcItemVisibleByCounter(item, counter) {
15893
16193
  const { enableMode, counterId } = item;
@@ -17931,9 +18231,9 @@ async function fetchImportSchemas(opts) {
17931
18231
  }
17932
18232
 
17933
18233
  // src/controller/utils/jsonschema/entity.ts
17934
- import qs3 from "qs";
18234
+ import qs4 from "qs";
17935
18235
  async function getEntitySchema(entityId, context, params = {}) {
17936
- const strParams = qs3.stringify(params);
18236
+ const strParams = qs4.stringify(params);
17937
18237
  const app = ibiz.hub.getApp(context.srfappid);
17938
18238
  const entity = await ibiz.hub.getAppDataEntity(entityId, context.srfappid);
17939
18239
  let url = "/jsonschema/".concat(entity.name);
@@ -21546,7 +21846,13 @@ var BaseSeriesGenerator = class {
21546
21846
  deData["".concat(this.catalogField, "_value")] = deData[this.catalogField];
21547
21847
  Object.assign(deData, { [this.catalogField]: catalog });
21548
21848
  }
21549
- const tempChartData = new ChartData(deData, this.model, catalog, group);
21849
+ const tempChartData = new ChartData(
21850
+ deData,
21851
+ this.model,
21852
+ catalog,
21853
+ group,
21854
+ this.chartGenerator.extraArgs.chartId
21855
+ );
21550
21856
  groupData[group].get(catalog).chartData = tempChartData;
21551
21857
  (_a = this.chartDataArr) == null ? void 0 : _a.push(tempChartData);
21552
21858
  }
@@ -21616,8 +21922,13 @@ var BaseSeriesGenerator = class {
21616
21922
  this.chartDataArr = [];
21617
21923
  const groupData = this.groupData;
21618
21924
  const { seriesCodeListId, catalogCodeListId } = this.model;
21925
+ const getOrigin = (origin) => {
21926
+ if (origin && origin.$origin) {
21927
+ return getOrigin(origin.$origin);
21928
+ }
21929
+ return origin;
21930
+ };
21619
21931
  data.forEach((item) => {
21620
- var _a, _b;
21621
21932
  let group = DEFAULT_GROUP;
21622
21933
  if (this.groupField) {
21623
21934
  const groupVal = this.translateVal(
@@ -21627,6 +21938,15 @@ var BaseSeriesGenerator = class {
21627
21938
  if (isNil25(groupVal)) {
21628
21939
  return;
21629
21940
  }
21941
+ const tempOrigin = getOrigin(item.$origin);
21942
+ if (seriesCodeListId) {
21943
+ this.catalogMap.set(groupVal, tempOrigin[this.groupField]);
21944
+ } else {
21945
+ this.catalogMap.set(
21946
+ item[this.groupField],
21947
+ tempOrigin[this.groupField]
21948
+ );
21949
+ }
21630
21950
  group = groupVal;
21631
21951
  }
21632
21952
  if (!groupData[group]) {
@@ -21641,12 +21961,10 @@ var BaseSeriesGenerator = class {
21641
21961
  tempCodeLists.push({ codename, codelist: clone22(codeListItems) });
21642
21962
  } else if (mode === "field") {
21643
21963
  const tempdata = data.map((_data) => {
21644
- var _a2, _b2;
21645
21964
  let tempValue;
21646
- if ((_a2 = _data.$origin) == null ? void 0 : _a2.$origin) {
21647
- tempValue = _data.$origin.$origin[codename];
21648
- } else {
21649
- tempValue = (_b2 = _data.$origin) == null ? void 0 : _b2[codename];
21965
+ const tempOrigin = getOrigin(_data.$origin);
21966
+ if (tempOrigin) {
21967
+ tempValue = tempOrigin[codename];
21650
21968
  }
21651
21969
  return {
21652
21970
  text: _data[codename],
@@ -21721,10 +22039,9 @@ var BaseSeriesGenerator = class {
21721
22039
  }
21722
22040
  if (!catalogCodeListId) {
21723
22041
  let tempValue;
21724
- if ((_a = item.$origin) == null ? void 0 : _a.$origin) {
21725
- tempValue = item.$origin.$origin[this.catalogField];
21726
- } else {
21727
- tempValue = (_b = item.$origin) == null ? void 0 : _b[this.catalogField];
22042
+ const tempOrigin = getOrigin(item.$origin);
22043
+ if (tempOrigin) {
22044
+ tempValue = tempOrigin[this.catalogField];
21728
22045
  }
21729
22046
  this.catalogMap.set(item[this.catalogField], {
21730
22047
  [this.catalogField]: tempValue
@@ -22320,8 +22637,9 @@ function parseUserParams2(userParams) {
22320
22637
  return convertStringFunc(option);
22321
22638
  }
22322
22639
  var ChartOptionsGenerator2 = class {
22323
- constructor(model) {
22640
+ constructor(model, extraArgs = {}) {
22324
22641
  this.model = model;
22642
+ this.extraArgs = extraArgs;
22325
22643
  /**
22326
22644
  * 根据模型配置算出来的静态echarts配置
22327
22645
  * @author lxm
@@ -23059,7 +23377,9 @@ var ChartController = class extends MDControlController {
23059
23377
  await super.onCreated();
23060
23378
  this.service = new ChartService(this.model);
23061
23379
  await this.service.init(this.context);
23062
- this.generator = new ChartOptionsGenerator2(this.model);
23380
+ this.generator = new ChartOptionsGenerator2(this.model, {
23381
+ chartId: this.controlParams.chartid
23382
+ });
23063
23383
  await this.generator.init(this.context, this.params);
23064
23384
  this.parseGridParam();
23065
23385
  this.resizeChart = this.resizeChart.bind(this);
@@ -23143,7 +23463,7 @@ var ChartController = class extends MDControlController {
23143
23463
  * @memberof ChartController
23144
23464
  */
23145
23465
  computedDrillDetailParam(arg) {
23146
- var _a, _b;
23466
+ var _a, _b, _c;
23147
23467
  const { seriesType } = arg;
23148
23468
  const targetSerie = this.computedClickSerieModel(arg);
23149
23469
  let measureId = "";
@@ -23178,6 +23498,28 @@ var ChartController = class extends MDControlController {
23178
23498
  });
23179
23499
  }
23180
23500
  }
23501
+ if (targetSerie.seriesField) {
23502
+ const group = arg.data[2];
23503
+ let tempValue;
23504
+ const getOrigin = (origin) => {
23505
+ if (origin && origin.$origin) {
23506
+ return getOrigin(origin.$origin);
23507
+ }
23508
+ return origin;
23509
+ };
23510
+ const tempOrigin = getOrigin(group.$origin);
23511
+ if (tempOrigin) {
23512
+ tempValue = tempOrigin[targetSerie.seriesField];
23513
+ } else {
23514
+ tempValue = (_c = this.generator.seriesGenerators) == null ? void 0 : _c[0].catalogMap.get(
23515
+ group[targetSerie.seriesField]
23516
+ );
23517
+ }
23518
+ dimension.push({
23519
+ name: targetSerie.seriesField,
23520
+ value: tempValue
23521
+ });
23522
+ }
23181
23523
  }
23182
23524
  return {
23183
23525
  measure: {
@@ -26434,7 +26776,6 @@ var DashboardController = class extends ControlController {
26434
26776
  super.initState();
26435
26777
  }
26436
26778
  async onCreated() {
26437
- this.model.enableCustomized = true;
26438
26779
  await super.onCreated();
26439
26780
  await this.initPortlets(this.model.controls);
26440
26781
  const { appDataEntityId } = this.view.model;
@@ -26999,12 +27340,13 @@ var PortletPartController = class {
26999
27340
  return new PortletPartState();
27000
27341
  }
27001
27342
  /**
27002
- * 刷新门户部件
27343
+ * 刷新
27003
27344
  *
27004
- * @author zzq
27005
- * @date 2024-04-25 10:03:33
27345
+ * @author tony001
27346
+ * @date 2024-07-23 22:07:02
27347
+ * @return {*} {Promise<void>}
27006
27348
  */
27007
- refresh() {
27349
+ async refresh() {
27008
27350
  }
27009
27351
  /**
27010
27352
  * 设置配置数据
@@ -27205,12 +27547,12 @@ var ViewPortletController = class extends PortletPartController {
27205
27547
  return null;
27206
27548
  }
27207
27549
  /**
27208
- * 刷新门户部件
27550
+ * 刷新
27209
27551
  *
27210
- * @author zzq
27211
- * @date 2024-04-25 10:03:33
27552
+ * @author tony001
27553
+ * @date 2024-07-23 22:07:30
27212
27554
  */
27213
- refresh() {
27555
+ async refresh() {
27214
27556
  if (this.contentController) {
27215
27557
  this.contentController.callUIAction(
27216
27558
  "Refresh" /* REFRESH */
@@ -27226,12 +27568,13 @@ var MenuPortletController = class extends PortletPartController {
27226
27568
  // src/controller/control/dashboard/portlet/chart-portlet/chart-portlet.controller.ts
27227
27569
  var ChartPortletController = class extends PortletPartController {
27228
27570
  /**
27229
- * 刷新门户部件
27571
+ * 刷新
27230
27572
  *
27231
- * @author zzq
27232
- * @date 2024-04-25 10:03:33
27573
+ * @author tony001
27574
+ * @date 2024-07-23 22:07:01
27575
+ * @return {*} {Promise<void>}
27233
27576
  */
27234
- refresh() {
27577
+ async refresh() {
27235
27578
  if (this.contentController) {
27236
27579
  this.contentController.refresh();
27237
27580
  }
@@ -27249,12 +27592,13 @@ var HtmlPortletController = class extends PortletPartController {
27249
27592
  // src/controller/control/dashboard/portlet/list-portlet/list-portlet.controller.ts
27250
27593
  var ListPortletController = class extends PortletPartController {
27251
27594
  /**
27252
- * 刷新门户部件
27595
+ * 刷新
27253
27596
  *
27254
- * @author zzq
27255
- * @date 2024-04-25 10:03:33
27597
+ * @author tony001
27598
+ * @date 2024-07-23 22:07:41
27599
+ * @return {*} {Promise<void>}
27256
27600
  */
27257
- refresh() {
27601
+ async refresh() {
27258
27602
  if (this.contentController) {
27259
27603
  this.contentController.refresh();
27260
27604
  }
@@ -27286,11 +27630,18 @@ var ReportPortletController = class extends PortletPartController {
27286
27630
  * 刷新报表部件
27287
27631
  *
27288
27632
  * @author tony001
27289
- * @date 2024-06-19 18:06:14
27633
+ * @date 2024-07-23 22:07:16
27634
+ * @return {*} {Promise<void>}
27290
27635
  */
27291
- refresh() {
27636
+ async refresh() {
27292
27637
  if (this.contentController) {
27293
- this.contentController.refresh();
27638
+ if (this.dashboard.controlParams.multimode === "true") {
27639
+ this.dashboard.evt.emit("onItemModelReset", {
27640
+ name: this.model.id
27641
+ });
27642
+ } else {
27643
+ this.contentController.refresh();
27644
+ }
27294
27645
  }
27295
27646
  }
27296
27647
  };
@@ -32891,8 +33242,11 @@ var GridController = class extends MDControlController {
32891
33242
  }
32892
33243
  });
32893
33244
  const { degridColumns = [] } = this.model;
32894
- this.dataExportParam.fields = degridColumns.map((item) => item.id);
32895
- this.dataExportParam.header = degridColumns.map((item) => item.caption);
33245
+ const exportColumns = degridColumns.filter(
33246
+ (x) => !x.hiddenDataItem && !x.hideDefault && x.hideMode !== 2
33247
+ );
33248
+ this.dataExportParam.fields = exportColumns.map((item) => item.id);
33249
+ this.dataExportParam.header = exportColumns.map((item) => item.caption);
32896
33250
  }
32897
33251
  }
32898
33252
  /**
@@ -32947,14 +33301,6 @@ var GridController = class extends MDControlController {
32947
33301
  );
32948
33302
  }
32949
33303
  const groupFieldName = this.groupFieldColumn.model.id;
32950
- if (!this.groupFieldColumn.model.appCodeListId) {
32951
- throw new RuntimeModelError63(
32952
- this.groupFieldColumn.model,
32953
- ibiz.i18n.t("runtime.controller.control.grid.noCodeTable", {
32954
- groupFieldName
32955
- })
32956
- );
32957
- }
32958
33304
  const index = this.state.columnStates.findIndex(
32959
33305
  (item) => item.key === this.groupFieldColumn.model.codeName
32960
33306
  );
@@ -33096,7 +33442,8 @@ var GridController = class extends MDControlController {
33096
33442
  });
33097
33443
  this.state.groups = [];
33098
33444
  groupMap.forEach((value, key) => {
33099
- const codeListItem = this.groupCodeListItems.find(
33445
+ var _a;
33446
+ const codeListItem = (_a = this.groupCodeListItems) == null ? void 0 : _a.find(
33100
33447
  (item) => item.value === key
33101
33448
  );
33102
33449
  this.state.groups.push({
@@ -36682,6 +37029,13 @@ var SearchBarController = class extends ControlController {
36682
37029
  * @type {IParams}
36683
37030
  */
36684
37031
  this.jsonSchemaParams = {};
37032
+ /**
37033
+ * schema实体映射map
37034
+ *
37035
+ * @author zhanghengfeng
37036
+ * @date 2024-07-22 16:07:55
37037
+ */
37038
+ this.schemaEntityMap = /* @__PURE__ */ new Map();
36685
37039
  /**
36686
37040
  * 是否启用存储
36687
37041
  *
@@ -36775,6 +37129,29 @@ var SearchBarController = class extends ControlController {
36775
37129
  await this.initSearchBarFilters();
36776
37130
  await this.initSearBarGroups(true);
36777
37131
  }
37132
+ /**
37133
+ * 初始化schema实体映射map
37134
+ *
37135
+ * @author zhanghengfeng
37136
+ * @date 2024-07-22 16:07:14
37137
+ * @param {IData} json
37138
+ * @return {*}
37139
+ */
37140
+ async initSchemaEntityMap(json) {
37141
+ if (!json.properties) {
37142
+ return;
37143
+ }
37144
+ const { properties } = json;
37145
+ if (!(Object.keys(properties).length > 0)) {
37146
+ return;
37147
+ }
37148
+ const map = /* @__PURE__ */ new Map();
37149
+ Object.keys(properties).forEach((key) => {
37150
+ var _a, _b;
37151
+ map.set(key, (_b = (_a = properties[key]) == null ? void 0 : _a.$ref) == null ? void 0 : _b.split(".")[0]);
37152
+ });
37153
+ this.schemaEntityMap = map;
37154
+ }
36778
37155
  /**
36779
37156
  * 根据实体jsonschema初始化
36780
37157
  * @author lxm
@@ -36796,6 +37173,7 @@ var SearchBarController = class extends ControlController {
36796
37173
  if (!json) {
36797
37174
  return;
36798
37175
  }
37176
+ await this.initSchemaEntityMap(json);
36799
37177
  const addSearchBarFilters = await calcFilterModelBySchema(
36800
37178
  json,
36801
37179
  this.model.appDataEntityId,
@@ -44924,6 +45302,13 @@ var GlobalUtil = class {
44924
45302
  * @date 2024-07-15 13:07:51
44925
45303
  */
44926
45304
  this.record = new RecordNavUtil();
45305
+ /**
45306
+ * JsonSchema工具类
45307
+ *
45308
+ * @author tony001
45309
+ * @date 2024-07-25 00:07:31
45310
+ */
45311
+ this.jsonSchema = new JsonSchemaUtil();
44927
45312
  this.error.register(new DefaultErrorHandler());
44928
45313
  }
44929
45314
  /**
@@ -46313,7 +46698,6 @@ var en = {
46313
46698
  grid: {
46314
46699
  unsupported: "Unsupported types {type}",
46315
46700
  attributeColumns: "Attribute columns with no grouping attributes configured",
46316
- noCodeTable: "The attribute column {groupFieldName} of the grouping attribute does not have a configuration code table",
46317
46701
  configureFirstColumn: "Please configure the grouping attribute column {groupFieldName} as the first column",
46318
46702
  requiresCodeTable: "Code table grouping mode requires code table configuration",
46319
46703
  noMatchCodeTable: "The grouping code table does not match the code table for the attribute column {groupFieldName}",
@@ -46903,7 +47287,6 @@ var zhCn = {
46903
47287
  grid: {
46904
47288
  unsupported: "\u672A\u652F\u6301\u7684\u7C7B\u578B{type}",
46905
47289
  attributeColumns: "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217",
46906
- noCodeTable: "\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217{groupFieldName}\u6CA1\u6709\u914D\u7F6E\u4EE3\u7801\u8868",
46907
47290
  configureFirstColumn: "\u8BF7\u5C06\u5206\u7EC4\u5C5E\u6027\u5217{groupFieldName}\u914D\u7F6E\u4E3A\u7B2C\u4E00\u5217",
46908
47291
  requiresCodeTable: "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868",
46909
47292
  noMatchCodeTable: "\u5206\u7EC4\u4EE3\u7801\u8868\u4E0E\u5C5E\u6027\u5217{groupFieldName}\u7684\u4EE3\u7801\u8868\u4E0D\u4E00\u81F4",
@@ -47501,6 +47884,7 @@ export {
47501
47884
  INTERNAL_MESSAGE_PROVIDER_PREFIX,
47502
47885
  InternalMessageService,
47503
47886
  ItemsValueOPs,
47887
+ JsonSchemaUtil,
47504
47888
  KanbanController,
47505
47889
  KanbanService,
47506
47890
  LayoutPanelUtil,