@ibiz-template/runtime 0.7.17-alpha.0 → 0.7.17

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 (26) hide show
  1. package/dist/index.esm.js +245 -147
  2. package/dist/index.system.min.js +1 -1
  3. package/out/controller/control/app-menu/app-menu.controller.d.ts +23 -0
  4. package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
  5. package/out/controller/control/app-menu/app-menu.controller.js +38 -0
  6. package/out/controller/control/app-menu/custom-app-menu.controller.d.ts +1 -1
  7. package/out/controller/control/app-menu/custom-app-menu.controller.d.ts.map +1 -1
  8. package/out/controller/control/app-menu/custom-app-menu.controller.js +11 -4
  9. package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
  10. package/out/controller/control/data-view/data-view.controller.js +1 -1
  11. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  12. package/out/controller/control/kanban/kanban.controller.js +1 -0
  13. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -1
  14. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +21 -0
  15. package/out/interface/controller/state/control/i-kanban.state.d.ts +4 -0
  16. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
  17. package/out/service/dto/method.dto.d.ts.map +1 -1
  18. package/out/service/dto/method.dto.js +11 -4
  19. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  20. package/out/service/service/entity/method/fetch.js +4 -0
  21. package/out/service/service/entity/method/method-input.d.ts +1 -1
  22. package/out/service/service/entity/method/method-input.js +1 -1
  23. package/out/service/service/entity/method/method-renturn.d.ts +10 -0
  24. package/out/service/service/entity/method/method-renturn.d.ts.map +1 -1
  25. package/out/service/service/entity/method/method-renturn.js +15 -0
  26. package/package.json +4 -3
package/dist/index.esm.js CHANGED
@@ -10620,6 +10620,7 @@ var MethodDto = class {
10620
10620
  */
10621
10621
  async get(context, data, ignore = false) {
10622
10622
  if (context.srfsimple === true && this.isLocalMode === false) {
10623
+ data = this.format(context, data);
10623
10624
  return data;
10624
10625
  }
10625
10626
  const params = {};
@@ -10710,6 +10711,9 @@ var MethodDto = class {
10710
10711
  async sets(context, data) {
10711
10712
  if (context.srfsimple === true && this.isLocalMode === false) {
10712
10713
  if (data && data.length > 0) {
10714
+ for (let i = 0; i < data.length; i++) {
10715
+ data[i] = this.format(context, data[i]);
10716
+ }
10713
10717
  return data.map((item) => {
10714
10718
  return this.service.createEntity(item);
10715
10719
  });
@@ -10808,8 +10812,13 @@ var MethodDto = class {
10808
10812
  for (let i = 0; i < this.fields.length; i++) {
10809
10813
  const field = this.fields[i];
10810
10814
  const key = field.codeName.toLowerCase();
10811
- if (field.type === "DTOS" && field.listMap && typeof data[key] === "object") {
10812
- params[key] = convertListMapToArray(data[key]);
10815
+ if (field.type === "DTOS" && field.listMap) {
10816
+ if (Object.prototype.toString.call(data[key]) === "[object Object]") {
10817
+ params[key] = convertListMapToArray(data[key]);
10818
+ }
10819
+ if (Object.prototype.toString.call(data[key]) === "[object Array]") {
10820
+ params[key] = convertArrayToListMap(data[key]);
10821
+ }
10813
10822
  }
10814
10823
  }
10815
10824
  return { ...data, ...params };
@@ -12284,7 +12293,7 @@ var MethodInput = class {
12284
12293
  return data;
12285
12294
  }
12286
12295
  /**
12287
- * 格式化本地模式入参
12296
+ * 格式化
12288
12297
  *
12289
12298
  * @author tony001
12290
12299
  * @date 2024-05-21 23:05:38
@@ -12365,6 +12374,21 @@ var MethodReturn = class {
12365
12374
  }
12366
12375
  return new AppDataEntity(this.entity, data);
12367
12376
  }
12377
+ /**
12378
+ * 格式化
12379
+ *
12380
+ * @author tony001
12381
+ * @date 2024-05-23 18:05:35
12382
+ * @param {IContext} context
12383
+ * @param {IData} data
12384
+ * @return {*} {Promise<IData>}
12385
+ */
12386
+ async format(context, data) {
12387
+ if (this.dto) {
12388
+ return this.dto.format(context, data);
12389
+ }
12390
+ return data;
12391
+ }
12368
12392
  };
12369
12393
 
12370
12394
  // src/service/service/entity/method/method.ts
@@ -13068,6 +13092,9 @@ var FetchMethod = class extends Method {
13068
13092
  );
13069
13093
  }
13070
13094
  const items = res.data || [];
13095
+ for (let i = 0; i < items.length; i++) {
13096
+ items[i] = await this.result.format(context, items[i]);
13097
+ }
13071
13098
  res.data = items.map((item) => this.createEntity(item));
13072
13099
  }
13073
13100
  if (res.data) {
@@ -18916,6 +18943,158 @@ import {
18916
18943
  RuntimeError as RuntimeError37,
18917
18944
  RuntimeModelError as RuntimeModelError27
18918
18945
  } from "@ibiz-template/core";
18946
+
18947
+ // src/controller/control/app-menu/custom-app-menu.controller.ts
18948
+ var CustomAppMenuController = class {
18949
+ /**
18950
+ * Creates an instance of CustomAppMenuController.
18951
+ * @author tony001
18952
+ * @date 2024-05-09 15:05:33
18953
+ * @param {IAppMenu} model
18954
+ * @param {AppMenuController} menu
18955
+ */
18956
+ constructor(model, menu) {
18957
+ this.model = model;
18958
+ this.menu = menu;
18959
+ /**
18960
+ *自定义定制范围类型(public:公开,personal:个人,data:数据,默认是按照个人区分,配置了应用功能组件才生效)
18961
+ *
18962
+ * @author tony001
18963
+ * @date 2024-05-09 17:05:43
18964
+ * @type {('public' | 'personal' | 'data')}
18965
+ */
18966
+ this.type = "personal";
18967
+ /**
18968
+ *所属数据类型(仅限自定义定制为data类型时生效,配置了应用功能组件才生效)
18969
+ *
18970
+ * @author tony001
18971
+ * @date 2024-05-09 17:05:55
18972
+ * @type {string}
18973
+ */
18974
+ this.ownerType = "";
18975
+ /**
18976
+ *所属数据标识(仅限自定义定制为data类型时生效,配置了应用功能组件才生效)
18977
+ *
18978
+ * @author tony001
18979
+ * @date 2024-05-09 17:05:10
18980
+ * @type {string}
18981
+ */
18982
+ this.ownerId = "";
18983
+ this.context = menu.context;
18984
+ this.params = menu.params;
18985
+ this.init();
18986
+ }
18987
+ /**
18988
+ * 初始化
18989
+ *
18990
+ * @author tony001
18991
+ * @date 2024-05-09 15:05:40
18992
+ * @private
18993
+ */
18994
+ init() {
18995
+ var _a;
18996
+ this.type = "personal";
18997
+ this.ownerId = this.context.srfpersonid;
18998
+ const app = ibiz.hub.getApp(this.context.srfappid);
18999
+ const menuUtil = app.getAppUtil("DYNAMENU", "CUSTOM");
19000
+ if (menuUtil) {
19001
+ this.util = new UtilService(menuUtil);
19002
+ } else {
19003
+ this.config = new ConfigService(
19004
+ this.model.appId,
19005
+ "menu",
19006
+ "menu_".concat(this.menu.view.name.toLowerCase(), "_").concat((_a = this.model.codeName) == null ? void 0 : _a.toLowerCase())
19007
+ );
19008
+ }
19009
+ }
19010
+ /**
19011
+ * 获取资源标识(仅用于功能组件服务)
19012
+ *
19013
+ * @author tony001
19014
+ * @date 2024-05-09 16:05:48
19015
+ * @private
19016
+ * @return {*} {string}
19017
+ */
19018
+ getResourceTag() {
19019
+ var _a;
19020
+ const base = "".concat(this.context.srfappid, "_menu_").concat(this.menu.view.name.toLowerCase(), "_").concat((_a = this.model.codeName) == null ? void 0 : _a.toLowerCase());
19021
+ switch (this.type) {
19022
+ case "personal":
19023
+ return "".concat(base, "_").concat(this.context.srfpersonid);
19024
+ case "data":
19025
+ return "".concat(base, "_").concat(this.ownerType, "_").concat(this.ownerId);
19026
+ default:
19027
+ return base;
19028
+ }
19029
+ }
19030
+ /**
19031
+ * 加载自定义模型
19032
+ *
19033
+ * @author tony001
19034
+ * @date 2024-05-09 17:05:57
19035
+ * @return {*} {Promise<IData>}
19036
+ */
19037
+ async loadCustomModelData() {
19038
+ let res;
19039
+ if (this.util) {
19040
+ res = await this.util.load(
19041
+ this.getResourceTag(),
19042
+ this.context,
19043
+ this.params
19044
+ );
19045
+ } else {
19046
+ res = await this.config.load();
19047
+ }
19048
+ if (res && res.model) {
19049
+ const result = JSON.parse(res.model);
19050
+ return result;
19051
+ }
19052
+ return [];
19053
+ }
19054
+ /**
19055
+ * 重置自定义模型
19056
+ *
19057
+ * @author tony001
19058
+ * @date 2024-05-09 17:05:14
19059
+ * @return {*} {Promise<IData>}
19060
+ */
19061
+ async resetCustomModelData() {
19062
+ return this.saveCustomModelData([]);
19063
+ }
19064
+ /**
19065
+ * 保存自定义模型
19066
+ *
19067
+ * @author tony001
19068
+ * @date 2024-05-09 17:05:51
19069
+ * @param {IData[]} model
19070
+ * @param {IData} [opts={}]
19071
+ * @return {*} {Promise<IData>}
19072
+ */
19073
+ async saveCustomModelData(model, opts = {}) {
19074
+ const data = {
19075
+ model: JSON.stringify(model)
19076
+ };
19077
+ if (this.util) {
19078
+ await this.util.save(
19079
+ this.getResourceTag(),
19080
+ this.context,
19081
+ {
19082
+ ...this.params,
19083
+ type: this.type,
19084
+ ownerType: this.ownerType,
19085
+ ownerId: this.ownerId,
19086
+ modelId: this.model.id
19087
+ },
19088
+ data
19089
+ );
19090
+ } else {
19091
+ await this.config.save(data);
19092
+ }
19093
+ return model;
19094
+ }
19095
+ };
19096
+
19097
+ // src/controller/control/app-menu/app-menu.controller.ts
18919
19098
  var AppMenuController = class extends ControlController {
18920
19099
  constructor(model, context, params, ctx) {
18921
19100
  super(model, context, params, ctx);
@@ -18926,7 +19105,24 @@ var AppMenuController = class extends ControlController {
18926
19105
  * @type {{ [key: string]: IProvider }}
18927
19106
  */
18928
19107
  this.itemProviders = {};
19108
+ /**
19109
+ * 自定义菜单控制器
19110
+ *
19111
+ * @type {(CustomAppMenuController | null)}
19112
+ * @memberof AppMenuController
19113
+ */
19114
+ this.customController = null;
19115
+ /**
19116
+ * 自定义配置
19117
+ *
19118
+ * @type {IData[]}
19119
+ * @memberof AppMenuController
19120
+ */
19121
+ this.saveConfigs = [];
18929
19122
  this.flattenAllItems();
19123
+ if (model.enableCustomized) {
19124
+ this.customController = new CustomAppMenuController(model, this);
19125
+ }
18930
19126
  }
18931
19127
  initState() {
18932
19128
  super.initState();
@@ -18950,6 +19146,24 @@ var AppMenuController = class extends ControlController {
18950
19146
  (_a = this.model.appMenuItems) == null ? void 0 : _a.forEach((item) => {
18951
19147
  this.initMenuItemState(item);
18952
19148
  });
19149
+ if (this.customController) {
19150
+ await this.loadCustomMenusModel();
19151
+ }
19152
+ }
19153
+ /**
19154
+ * 加载自定义菜单模型
19155
+ *
19156
+ * @private
19157
+ * @return {*} {Promise<void>}
19158
+ * @memberof AppMenuController
19159
+ */
19160
+ async loadCustomMenusModel() {
19161
+ const customConfigs = await this.customController.loadCustomModelData();
19162
+ if (!customConfigs || customConfigs.length === 0) {
19163
+ this.saveConfigs = [];
19164
+ } else {
19165
+ this.saveConfigs = customConfigs;
19166
+ }
18953
19167
  }
18954
19168
  /**
18955
19169
  * 初始化菜单项的适配器
@@ -19114,149 +19328,6 @@ var AppMenuController = class extends ControlController {
19114
19328
  }
19115
19329
  };
19116
19330
 
19117
- // src/controller/control/app-menu/custom-app-menu.controller.ts
19118
- var CustomAppMenuController = class {
19119
- /**
19120
- * Creates an instance of CustomAppMenuController.
19121
- * @author tony001
19122
- * @date 2024-05-09 15:05:33
19123
- * @param {IAppMenu} model
19124
- * @param {AppMenuController} menu
19125
- */
19126
- constructor(model, menu) {
19127
- this.model = model;
19128
- this.menu = menu;
19129
- /**
19130
- *自定义定制范围类型(public:公开,personal:个人,data:数据,默认是按照个人区分,配置了应用功能组件才生效)
19131
- *
19132
- * @author tony001
19133
- * @date 2024-05-09 17:05:43
19134
- * @type {('public' | 'personal' | 'data')}
19135
- */
19136
- this.type = "personal";
19137
- /**
19138
- *所属数据类型(仅限自定义定制为data类型时生效,配置了应用功能组件才生效)
19139
- *
19140
- * @author tony001
19141
- * @date 2024-05-09 17:05:55
19142
- * @type {string}
19143
- */
19144
- this.ownerType = "";
19145
- /**
19146
- *所属数据标识(仅限自定义定制为data类型时生效,配置了应用功能组件才生效)
19147
- *
19148
- * @author tony001
19149
- * @date 2024-05-09 17:05:10
19150
- * @type {string}
19151
- */
19152
- this.ownerId = "";
19153
- this.context = menu.context;
19154
- this.params = menu.params;
19155
- this.init();
19156
- }
19157
- /**
19158
- * 初始化
19159
- *
19160
- * @author tony001
19161
- * @date 2024-05-09 15:05:40
19162
- * @private
19163
- */
19164
- init() {
19165
- var _a;
19166
- this.type = "personal";
19167
- this.ownerId = this.context.srfpersonid;
19168
- const app = ibiz.hub.getApp(this.context.srfappid);
19169
- const menuUtil = app.getAppUtil("DYNAMENU", "CUSTOM");
19170
- if (menuUtil) {
19171
- this.util = new UtilService(menuUtil);
19172
- } else {
19173
- this.config = new ConfigService(
19174
- this.model.appId,
19175
- "menu",
19176
- "menu_".concat(this.menu.view.name.toLowerCase(), "_").concat((_a = this.model.codeName) == null ? void 0 : _a.toLowerCase())
19177
- );
19178
- }
19179
- }
19180
- /**
19181
- * 获取资源标识(仅用于功能组件服务)
19182
- *
19183
- * @author tony001
19184
- * @date 2024-05-09 16:05:48
19185
- * @private
19186
- * @return {*} {string}
19187
- */
19188
- getResourceTag() {
19189
- var _a;
19190
- const base = "".concat(this.context.srfappid, "_menu_").concat(this.menu.view.name.toLowerCase(), "_").concat((_a = this.model.codeName) == null ? void 0 : _a.toLowerCase());
19191
- switch (this.type) {
19192
- case "personal":
19193
- return "".concat(base, "_").concat(this.context.srfpersonid);
19194
- case "data":
19195
- return "".concat(base, "_").concat(this.ownerType, "_").concat(this.ownerId);
19196
- default:
19197
- return base;
19198
- }
19199
- }
19200
- /**
19201
- * 加载自定义模型
19202
- *
19203
- * @author tony001
19204
- * @date 2024-05-09 17:05:57
19205
- * @return {*} {Promise<IData>}
19206
- */
19207
- async loadCustomModelData() {
19208
- let res;
19209
- if (this.util) {
19210
- res = await this.util.load(
19211
- this.getResourceTag(),
19212
- this.context,
19213
- this.params
19214
- );
19215
- } else {
19216
- res = await this.config.load();
19217
- }
19218
- return res;
19219
- }
19220
- /**
19221
- * 重置自定义模型
19222
- *
19223
- * @author tony001
19224
- * @date 2024-05-09 17:05:14
19225
- * @return {*} {Promise<IData>}
19226
- */
19227
- async resetCustomModelData() {
19228
- return {};
19229
- }
19230
- /**
19231
- * 保存自定义模型
19232
- *
19233
- * @author tony001
19234
- * @date 2024-05-09 17:05:51
19235
- * @param {IData[]} model
19236
- * @param {IData} [opts={}]
19237
- * @return {*} {Promise<IData>}
19238
- */
19239
- async saveCustomModelData(model, opts = {}) {
19240
- if (this.util) {
19241
- await this.util.save(
19242
- this.getResourceTag(),
19243
- this.context,
19244
- {
19245
- ...this.params,
19246
- type: this.type,
19247
- ownerType: this.ownerType,
19248
- ownerId: this.ownerId,
19249
- modelId: this.model.id
19250
- },
19251
- model
19252
- );
19253
- } else {
19254
- await this.config.save(model);
19255
- }
19256
- return model;
19257
- }
19258
- };
19259
-
19260
19331
  // src/controller/control/app-menu-icon-view/app-menu-icon-view.controller.ts
19261
19332
  import {
19262
19333
  findRecursiveChild as findRecursiveChild2,
@@ -24743,7 +24814,11 @@ var DataViewControlController = class extends MDControlController {
24743
24814
  containerState.addState(detail.id, buttonState);
24744
24815
  }
24745
24816
  });
24746
- await containerState.update(this.context);
24817
+ await containerState.update(
24818
+ this.context,
24819
+ void 0,
24820
+ this.model.appDataEntityId
24821
+ );
24747
24822
  group.groupActionGroupState = containerState;
24748
24823
  });
24749
24824
  }
@@ -36348,6 +36423,7 @@ var KanbanController = class extends DataViewControlController {
36348
36423
  this.state.updating = false;
36349
36424
  this.state.batching = false;
36350
36425
  this.state.selectGroupKey = "";
36426
+ this.state.readonly = !!(this.context.srfreadonly === true || this.context.srfreadonly === "true");
36351
36427
  this.state.draggable = this.enableEditOrder || this.enableEditGroup;
36352
36428
  this.state.uaState = {};
36353
36429
  }
@@ -36902,6 +36978,28 @@ var TreeGridExRowState = class {
36902
36978
  editable: ibiz.config.grid.editShowMode === "all",
36903
36979
  required: false
36904
36980
  };
36981
+ let $readonly;
36982
+ Object.defineProperty(
36983
+ this.editColStates[fieldColumn.name],
36984
+ "readonly",
36985
+ {
36986
+ enumerable: true,
36987
+ configurable: true,
36988
+ get() {
36989
+ if ($readonly !== void 0) {
36990
+ return $readonly;
36991
+ }
36992
+ if (treeGrid.context) {
36993
+ return !!(treeGrid.context.srfreadonly === true || treeGrid.context.srfreadonly === "true");
36994
+ }
36995
+ return false;
36996
+ },
36997
+ set(val) {
36998
+ $readonly = val;
36999
+ return true;
37000
+ }
37001
+ }
37002
+ );
36905
37003
  });
36906
37004
  }
36907
37005
  }