@ibiz-template/runtime 0.7.41-alpha.115 → 0.7.41-alpha.117

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 (62) hide show
  1. package/dist/index.esm.js +98 -25
  2. package/dist/index.system.min.js +1 -1
  3. package/out/config/global-config.d.ts.map +1 -1
  4. package/out/config/global-config.js +1 -0
  5. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  6. package/out/controller/common/control/md-control.controller.js +3 -2
  7. package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
  8. package/out/controller/control/data-view/data-view.controller.js +1 -1
  9. package/out/controller/control/grid/grid/grid.controller.d.ts +2 -1
  10. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  11. package/out/controller/control/grid/grid/grid.controller.js +8 -4
  12. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  13. package/out/controller/control/kanban/kanban.controller.js +2 -0
  14. package/out/controller/control/list/list.controller.d.ts.map +1 -1
  15. package/out/controller/control/list/list.controller.js +1 -1
  16. package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +2 -1
  17. package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -1
  18. package/out/controller/control/md-ctrl/md-ctrl.controller.js +8 -4
  19. package/out/controller/control/toolbar/toolbar.controller.d.ts.map +1 -1
  20. package/out/controller/control/toolbar/toolbar.controller.js +18 -3
  21. package/out/controller/utils/button-state/button-container.state.d.ts +1 -1
  22. package/out/controller/utils/button-state/button-container.state.d.ts.map +1 -1
  23. package/out/controller/utils/button-state/button-container.state.js +2 -2
  24. package/out/controller/utils/button-state/ui-action-button.state.d.ts +1 -1
  25. package/out/controller/utils/button-state/ui-action-button.state.d.ts.map +1 -1
  26. package/out/controller/utils/button-state/ui-action-button.state.js +9 -3
  27. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts +9 -0
  28. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts.map +1 -1
  29. package/out/interface/api/state/common/i-api-button-container.state.d.ts +2 -1
  30. package/out/interface/api/state/common/i-api-button-container.state.d.ts.map +1 -1
  31. package/out/interface/api/state/common/i-api-button.state.d.ts +2 -1
  32. package/out/interface/api/state/common/i-api-button.state.d.ts.map +1 -1
  33. package/out/interface/api/state/control/i-api-md-control.state.d.ts +7 -0
  34. package/out/interface/api/state/control/i-api-md-control.state.d.ts.map +1 -1
  35. package/out/platform/provider/platform-provider-base.d.ts.map +1 -1
  36. package/out/platform/provider/platform-provider-base.js +9 -0
  37. package/out/service/service/control/md-control.service.d.ts +2 -1
  38. package/out/service/service/control/md-control.service.d.ts.map +1 -1
  39. package/out/service/service/control/md-control.service.js +14 -4
  40. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  41. package/out/ui-action/provider/front-ui-action-provider.js +18 -0
  42. package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
  43. package/out/ui-action/provider/ui-action-provider-base.js +5 -0
  44. package/package.json +5 -5
  45. package/src/config/global-config.ts +1 -0
  46. package/src/controller/common/control/md-control.controller.ts +3 -2
  47. package/src/controller/control/data-view/data-view.controller.ts +1 -1
  48. package/src/controller/control/grid/grid/grid.controller.ts +14 -4
  49. package/src/controller/control/kanban/kanban.controller.ts +2 -0
  50. package/src/controller/control/list/list.controller.ts +1 -0
  51. package/src/controller/control/md-ctrl/md-ctrl.controller.ts +14 -4
  52. package/src/controller/control/toolbar/toolbar.controller.ts +26 -1
  53. package/src/controller/utils/button-state/button-container.state.ts +2 -1
  54. package/src/controller/utils/button-state/ui-action-button.state.ts +11 -1
  55. package/src/interface/api/common/global-config/i-api-global-common-config.ts +10 -0
  56. package/src/interface/api/state/common/i-api-button-container.state.ts +2 -0
  57. package/src/interface/api/state/common/i-api-button.state.ts +2 -0
  58. package/src/interface/api/state/control/i-api-md-control.state.ts +8 -0
  59. package/src/platform/provider/platform-provider-base.ts +15 -0
  60. package/src/service/service/control/md-control.service.ts +15 -3
  61. package/src/ui-action/provider/front-ui-action-provider.ts +22 -0
  62. package/src/ui-action/provider/ui-action-provider-base.ts +6 -0
package/dist/index.esm.js CHANGED
@@ -20005,7 +20005,8 @@ var GlobalConfig = class {
20005
20005
  aiChunkEntity: "",
20006
20006
  counterMaxValue: 99,
20007
20007
  enhancedUI: false,
20008
- maxExportRowsDefault: 1e3
20008
+ maxExportRowsDefault: 1e3,
20009
+ uiActionPermissionMode: "default"
20009
20010
  };
20010
20011
  // 全局分页流布局配置
20011
20012
  this.drtab = {
@@ -25426,7 +25427,7 @@ var UIActionButtonState = class {
25426
25427
  );
25427
25428
  }
25428
25429
  }
25429
- async update(context, data, appDeId) {
25430
+ async update(context, data, appDeId, selections = []) {
25430
25431
  if (!this.isInit) {
25431
25432
  await this.init();
25432
25433
  }
@@ -25436,7 +25437,11 @@ var UIActionButtonState = class {
25436
25437
  this.visible = !this.noPermissionHidden;
25437
25438
  } else {
25438
25439
  this.visible = true;
25439
- this.disabled = this.noDataDisabled && (!data || this.noKeyDisabled && !data.srfkey);
25440
+ let disabled = this.noDataDisabled && (!data || this.noKeyDisabled && !data.srfkey);
25441
+ if (ibiz.config.common.uiActionPermissionMode === "strict" && (this.actionTarget === "SINGLEDATA" || this.actionTarget === "SINGLEKEY")) {
25442
+ disabled = disabled || selections.length > 1;
25443
+ }
25444
+ this.disabled = disabled;
25440
25445
  }
25441
25446
  await this.calcEnableScript(context, data);
25442
25447
  await this.calcVisibleScript(context, data);
@@ -25506,10 +25511,10 @@ var ButtonContainerState = class {
25506
25511
  }
25507
25512
  });
25508
25513
  }
25509
- async update(context, data, appDeId) {
25514
+ async update(context, data, appDeId, selections) {
25510
25515
  await Promise.all(
25511
25516
  this.children.map((child) => {
25512
- return child.update(context, data, appDeId);
25517
+ return child.update(context, data, appDeId, selections);
25513
25518
  })
25514
25519
  );
25515
25520
  this.visible = this.computeVisable();
@@ -30516,6 +30521,7 @@ var MDControlController = class extends ControlController {
30516
30521
  this.state.groups = [];
30517
30522
  this.state.hideNoDataImage = false;
30518
30523
  this.state.enableGroup = !!this.model.enableGroup;
30524
+ this.state.isSelectedAll = false;
30519
30525
  }
30520
30526
  /**
30521
30527
  * 批操作工具栏
@@ -31012,12 +31018,12 @@ var MDControlController = class extends ControlController {
31012
31018
  (_a3 = this.batchToolbarController) == null ? void 0 : _a3.calcButtonState(
31013
31019
  data,
31014
31020
  this.model.appDataEntityId,
31015
- { view: this.view, ctrl: this }
31021
+ { view: this.view, ctrl: this, data: selection }
31016
31022
  );
31017
31023
  (_b2 = this.quickToolbarController) == null ? void 0 : _b2.calcButtonState(
31018
31024
  data,
31019
31025
  this.model.appDataEntityId,
31020
- { view: this.view, ctrl: this }
31026
+ { view: this.view, ctrl: this, data: selection }
31021
31027
  );
31022
31028
  }
31023
31029
  /**
@@ -32349,11 +32355,15 @@ var MDControlService2 = class extends ControlService {
32349
32355
  * @date 2022-08-31 17:08:41
32350
32356
  * @param {IContext} context 上下文
32351
32357
  * @param {IParams} [params={}] 视图参数
32358
+ * @param {IParams} [args={}] 额外参数
32352
32359
  * @returns {*} {Promise<IHttpResponse>}
32353
32360
  */
32354
- async fetch(context, params = {}) {
32361
+ async fetch(context, params = {}, args = {}) {
32355
32362
  var _a3;
32356
- const fetchAction = ((_a3 = this.model.fetchControlAction) == null ? void 0 : _a3.appDEMethodId) || "fetchdefault";
32363
+ let fetchAction = ((_a3 = this.model.fetchControlAction) == null ? void 0 : _a3.appDEMethodId) || "fetchdefault";
32364
+ if (args.srfexportdataset) {
32365
+ fetchAction = args.srfexportdataset;
32366
+ }
32357
32367
  let res = await this.exec(fetchAction, context, params);
32358
32368
  res = this.handleResponse(res);
32359
32369
  return res;
@@ -32470,9 +32480,13 @@ var MDControlService2 = class extends ControlService {
32470
32480
  context,
32471
32481
  this.model.appDataEntityId
32472
32482
  );
32483
+ let tempFetchAction = dataExport.appDEDataSetId || this.model.fetchControlAction.appDEMethodId;
32484
+ if (params.srfexportdataset) {
32485
+ tempFetchAction = params.srfexportdataset;
32486
+ }
32473
32487
  return entityService.file.export(
32474
32488
  dataExport,
32475
- dataExport.appDEDataSetId || this.model.fetchControlAction.appDEMethodId,
32489
+ tempFetchAction,
32476
32490
  context,
32477
32491
  params
32478
32492
  );
@@ -34972,6 +34986,10 @@ var UIActionProviderBase = class {
34972
34986
  presetParams.srfexportdataset = resultParams.srfexportdataset;
34973
34987
  delete resultParams.srfexportdataset;
34974
34988
  }
34989
+ if (resultParams.hasOwnProperty("srfexportdatakey")) {
34990
+ presetParams.srfexportdatakey = resultParams.srfexportdatakey;
34991
+ delete resultParams.srfexportdatakey;
34992
+ }
34975
34993
  if (resultParams.hasOwnProperty("srfasyncaction")) {
34976
34994
  presetParams.srfasyncaction = resultParams.srfasyncaction;
34977
34995
  delete resultParams.srfasyncaction;
@@ -35480,6 +35498,20 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
35480
35498
  ...args.params,
35481
35499
  ...resultParams
35482
35500
  };
35501
+ const { actionTarget } = action;
35502
+ if ((actionTarget === "MULTIDATA" || actionTarget === "MULTIKEY") && !args.params.srfallselected) {
35503
+ const srfexportdatakey = presetParams.srfexportdatakey || "srfkey";
35504
+ const tempParams = {};
35505
+ if (args && args.data && args.data.length > 0) {
35506
+ Object.assign(tempParams, {
35507
+ srfkeys: args.data.map((data) => data[srfexportdatakey]).join(",")
35508
+ });
35509
+ }
35510
+ Object.assign(params, tempParams);
35511
+ }
35512
+ if (params && Object.prototype.hasOwnProperty.call(params, "srfallselected")) {
35513
+ delete params.srfallselected;
35514
+ }
35483
35515
  if (isAsyncAction) {
35484
35516
  const app = await ibiz.hub.getAppAsync(action.appId);
35485
35517
  await app.net.request(url, {
@@ -35890,18 +35922,27 @@ var ToolbarController = class extends ControlController {
35890
35922
  * @memberof ToolbarController
35891
35923
  */
35892
35924
  async getToolbarEventArgs() {
35893
- var _a3;
35925
+ var _a3, _b2;
35894
35926
  const result = this.getEventArgs();
35927
+ const newParams = {
35928
+ ...result.params
35929
+ };
35895
35930
  let data = [];
35896
35931
  if (this.xdataControl) {
35897
35932
  data = ((_a3 = this.xdataControl) == null ? void 0 : _a3.getData()) || [];
35933
+ if ((_b2 = this.xdataControl.state) == null ? void 0 : _b2.isSelectedAll) {
35934
+ Object.assign(newParams, {
35935
+ srfallselected: true
35936
+ });
35937
+ }
35898
35938
  } else {
35899
35939
  data = await this.ctx.view.call("GetData" /* GET_DATA */) || [];
35900
35940
  }
35901
35941
  return {
35902
35942
  ...result,
35903
35943
  data,
35904
- ctrl: this
35944
+ ctrl: this,
35945
+ params: newParams
35905
35946
  };
35906
35947
  }
35907
35948
  /**
@@ -36087,11 +36128,17 @@ var ToolbarController = class extends ControlController {
36087
36128
  }
36088
36129
  }
36089
36130
  async calcButtonState(data, appDeId, _params = {}) {
36131
+ const app = await ibiz.hub.getApp(this.context.srfappid);
36090
36132
  let _data = data;
36091
36133
  if (data && data instanceof ControlVO) {
36092
36134
  _data = data.getOrigin();
36093
36135
  }
36094
- await this.state.buttonsState.update(this.context, _data, appDeId);
36136
+ await this.state.buttonsState.update(
36137
+ this.context,
36138
+ _data,
36139
+ appDeId,
36140
+ _params.data
36141
+ );
36095
36142
  this.allToolbarItems.forEach((item) => {
36096
36143
  const itemState = this.state.buttonsState[item.id];
36097
36144
  if (item.hiddenItem) {
@@ -36131,6 +36178,12 @@ var ToolbarController = class extends ControlController {
36131
36178
  itemState.disabled = !dynaEnable;
36132
36179
  }
36133
36180
  }
36181
+ if (item.accessKey && itemState.visible) {
36182
+ const permitted = app.authority.calcByResCode(item.accessKey);
36183
+ if (!permitted) {
36184
+ itemState.visible = false;
36185
+ }
36186
+ }
36134
36187
  },
36135
36188
  { childrenFields: ["detoolbarItems"] }
36136
36189
  );
@@ -43901,7 +43954,8 @@ var DataViewControlController = class extends MDControlController {
43901
43954
  (_a3 = actionGroup.groupActionGroupState) == null ? void 0 : _a3.update(
43902
43955
  this.context,
43903
43956
  actionGroup.selectedData[0],
43904
- this.model.appDataEntityId
43957
+ this.model.appDataEntityId,
43958
+ actionGroup.selectedData
43905
43959
  );
43906
43960
  }
43907
43961
  }
@@ -53111,16 +53165,17 @@ var GridController = class extends MDControlController {
53111
53165
  * @author zk
53112
53166
  * @date 2023-07-20 04:07:49
53113
53167
  * @param {MDCtrlLoadParams} args
53168
+ * @param {IParams} [fetchArgs={}] 透传给 service.fetch 的额外参数,如 srfexportdataset
53114
53169
  * @return {*}
53115
53170
  * @memberof GridController
53116
53171
  */
53117
- async loadData(args) {
53172
+ async loadData(args, fetchArgs = {}) {
53118
53173
  const { context } = this.handlerAbilityParams(args);
53119
53174
  const params = await this.getFetchParams(args == null ? void 0 : args.viewParam);
53120
53175
  let res;
53121
53176
  await this.startLoading();
53122
53177
  try {
53123
- res = await this.service.fetch(context, params);
53178
+ res = await this.service.fetch(context, params, fetchArgs);
53124
53179
  } finally {
53125
53180
  await this.endLoading();
53126
53181
  }
@@ -53269,7 +53324,10 @@ var GridController = class extends MDControlController {
53269
53324
  size: ((_a3 = this.dataExport) == null ? void 0 : _a3.maxRowCount) || ibiz.config.common.maxExportRowsDefault,
53270
53325
  page: 0
53271
53326
  };
53272
- data = await this.loadData({ viewParam });
53327
+ data = await this.loadData(
53328
+ { viewParam },
53329
+ { srfexportdataset: this.params.srfexportdataset }
53330
+ );
53273
53331
  } else if (type === "selectedRows") {
53274
53332
  data = this.getData();
53275
53333
  }
@@ -53302,9 +53360,10 @@ var GridController = class extends MDControlController {
53302
53360
  ibiz.i18n.t("runtime.controller.control.grid.exported")
53303
53361
  );
53304
53362
  }
53363
+ const srfexportdatakey = this.params.srfexportdatakey || "srfkey";
53305
53364
  tempParams = {
53306
53365
  page: 0,
53307
- srfkeys: selectedData.map((data) => data.srfkey).join(",")
53366
+ srfkeys: selectedData.map((data) => data[srfexportdatakey]).join(",")
53308
53367
  };
53309
53368
  } else if (type === "maxRowCount" || type === "customPage") {
53310
53369
  const { size } = this.state;
@@ -55354,7 +55413,8 @@ var ListController = class extends MDControlController {
55354
55413
  (_a3 = actionGroup.groupActionGroupState) == null ? void 0 : _a3.update(
55355
55414
  this.context,
55356
55415
  actionGroup.selectedData[0],
55357
- this.model.appDataEntityId
55416
+ this.model.appDataEntityId,
55417
+ actionGroup.selectedData
55358
55418
  );
55359
55419
  }
55360
55420
  }
@@ -61182,16 +61242,17 @@ var MDCtrlController = class extends MDControlController {
61182
61242
  /**
61183
61243
  * @description 加载数据(只加载数据 不做其他操作)
61184
61244
  * @param {MDCtrlLoadParams} args
61245
+ * @param {IParams} [fetchArgs={}] 透传给 service.fetch 的额外参数,如 srfexportdataset
61185
61246
  * @returns {*} {Promise<IData[]>}
61186
61247
  * @memberof MDCtrlController
61187
61248
  */
61188
- async loadData(args) {
61249
+ async loadData(args, fetchArgs = {}) {
61189
61250
  const { context } = this.handlerAbilityParams(args);
61190
61251
  const params = await this.getFetchParams(args == null ? void 0 : args.viewParam);
61191
61252
  let res;
61192
61253
  await this.startLoading();
61193
61254
  try {
61194
- res = await this.service.fetch(context, params);
61255
+ res = await this.service.fetch(context, params, fetchArgs);
61195
61256
  } finally {
61196
61257
  await this.endLoading();
61197
61258
  }
@@ -61220,7 +61281,10 @@ var MDCtrlController = class extends MDControlController {
61220
61281
  size: ((_a3 = this.dataExport) == null ? void 0 : _a3.maxRowCount) || ibiz.config.common.maxExportRowsDefault,
61221
61282
  page: 0
61222
61283
  };
61223
- data = await this.loadData({ viewParam });
61284
+ data = await this.loadData(
61285
+ { viewParam },
61286
+ { srfexportdataset: this.params.srfexportdataset }
61287
+ );
61224
61288
  } else if (type === "selectedRows") {
61225
61289
  data = this.getData();
61226
61290
  }
@@ -61301,9 +61365,10 @@ var MDCtrlController = class extends MDControlController {
61301
61365
  ibiz.i18n.t("runtime.controller.common.md.exported")
61302
61366
  );
61303
61367
  }
61368
+ const srfexportdatakey = this.params.srfexportdatakey || "srfkey";
61304
61369
  tempParams = {
61305
61370
  page: 0,
61306
- srfkeys: selectedData.map((data) => data.srfkey).join(",")
61371
+ srfkeys: selectedData.map((data) => data[srfexportdatakey]).join(",")
61307
61372
  };
61308
61373
  } else if (type === "maxRowCount" || type === "customPage") {
61309
61374
  const { size } = this.state;
@@ -61923,11 +61988,13 @@ var KanbanController = class extends DataViewControlController {
61923
61988
  );
61924
61989
  batchtoolbar == null ? void 0 : batchtoolbar.calcButtonState(data, this.model.appDataEntityId, {
61925
61990
  view: this.view,
61926
- ctrl: this
61991
+ ctrl: this,
61992
+ data: selection
61927
61993
  });
61928
61994
  quicktoolbar == null ? void 0 : quicktoolbar.calcButtonState(data, this.model.appDataEntityId, {
61929
61995
  view: this.view,
61930
- ctrl: this
61996
+ ctrl: this,
61997
+ data: selection
61931
61998
  });
61932
61999
  }
61933
62000
  };
@@ -68374,6 +68441,12 @@ var PlatformProviderBase = class {
68374
68441
  */
68375
68442
  async backendExport(args) {
68376
68443
  const { baseURL, url, method, params, data, newWindow } = args;
68444
+ if (data && Object.prototype.hasOwnProperty.call(data, "srfexportdataset")) {
68445
+ delete data.srfexportdataset;
68446
+ }
68447
+ if (data && Object.prototype.hasOwnProperty.call(data, "srfexportdatakey")) {
68448
+ delete data.srfexportdatakey;
68449
+ }
68377
68450
  const response = await ibiz.net.request(url, {
68378
68451
  data,
68379
68452
  method,