@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.
- package/dist/index.esm.js +98 -25
- package/dist/index.system.min.js +1 -1
- package/out/config/global-config.d.ts.map +1 -1
- package/out/config/global-config.js +1 -0
- package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
- package/out/controller/common/control/md-control.controller.js +3 -2
- package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
- package/out/controller/control/data-view/data-view.controller.js +1 -1
- package/out/controller/control/grid/grid/grid.controller.d.ts +2 -1
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +8 -4
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
- package/out/controller/control/kanban/kanban.controller.js +2 -0
- package/out/controller/control/list/list.controller.d.ts.map +1 -1
- package/out/controller/control/list/list.controller.js +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +2 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.js +8 -4
- package/out/controller/control/toolbar/toolbar.controller.d.ts.map +1 -1
- package/out/controller/control/toolbar/toolbar.controller.js +18 -3
- package/out/controller/utils/button-state/button-container.state.d.ts +1 -1
- package/out/controller/utils/button-state/button-container.state.d.ts.map +1 -1
- package/out/controller/utils/button-state/button-container.state.js +2 -2
- package/out/controller/utils/button-state/ui-action-button.state.d.ts +1 -1
- package/out/controller/utils/button-state/ui-action-button.state.d.ts.map +1 -1
- package/out/controller/utils/button-state/ui-action-button.state.js +9 -3
- package/out/interface/api/common/global-config/i-api-global-common-config.d.ts +9 -0
- package/out/interface/api/common/global-config/i-api-global-common-config.d.ts.map +1 -1
- package/out/interface/api/state/common/i-api-button-container.state.d.ts +2 -1
- package/out/interface/api/state/common/i-api-button-container.state.d.ts.map +1 -1
- package/out/interface/api/state/common/i-api-button.state.d.ts +2 -1
- package/out/interface/api/state/common/i-api-button.state.d.ts.map +1 -1
- package/out/interface/api/state/control/i-api-md-control.state.d.ts +7 -0
- package/out/interface/api/state/control/i-api-md-control.state.d.ts.map +1 -1
- package/out/platform/provider/platform-provider-base.d.ts.map +1 -1
- package/out/platform/provider/platform-provider-base.js +9 -0
- package/out/service/service/control/md-control.service.d.ts +2 -1
- package/out/service/service/control/md-control.service.d.ts.map +1 -1
- package/out/service/service/control/md-control.service.js +14 -4
- package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
- package/out/ui-action/provider/front-ui-action-provider.js +18 -0
- package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
- package/out/ui-action/provider/ui-action-provider-base.js +5 -0
- package/package.json +5 -5
- package/src/config/global-config.ts +1 -0
- package/src/controller/common/control/md-control.controller.ts +3 -2
- package/src/controller/control/data-view/data-view.controller.ts +1 -1
- package/src/controller/control/grid/grid/grid.controller.ts +14 -4
- package/src/controller/control/kanban/kanban.controller.ts +2 -0
- package/src/controller/control/list/list.controller.ts +1 -0
- package/src/controller/control/md-ctrl/md-ctrl.controller.ts +14 -4
- package/src/controller/control/toolbar/toolbar.controller.ts +26 -1
- package/src/controller/utils/button-state/button-container.state.ts +2 -1
- package/src/controller/utils/button-state/ui-action-button.state.ts +11 -1
- package/src/interface/api/common/global-config/i-api-global-common-config.ts +10 -0
- package/src/interface/api/state/common/i-api-button-container.state.ts +2 -0
- package/src/interface/api/state/common/i-api-button.state.ts +2 -0
- package/src/interface/api/state/control/i-api-md-control.state.ts +8 -0
- package/src/platform/provider/platform-provider-base.ts +15 -0
- package/src/service/service/control/md-control.service.ts +15 -3
- package/src/ui-action/provider/front-ui-action-provider.ts +22 -0
- package/src/ui-action/provider/ui-action-provider-base.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md-control.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/control/md-control.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,cAAc,CAAC,CAAC,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"md-control.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/control/md-control.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,SAAQ,cAAc,CAAC,CAAC,CAAC;IACzB;;;;;;;;;OASG;IACG,KAAK,CACT,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,EACpB,IAAI,GAAE,OAAY,GACjB,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAYtC;;;;;;;;OAQG;IACG,GAAG,CACP,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAOpC;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,WAAW,CACf,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,SAAS,EAAE,GAChB,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAYtC;;;;;;;OAOG;IACG,UAAU,CACd,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,OAAO,CAAC;IAoBnB;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;CA8BvD"}
|
|
@@ -8,11 +8,16 @@ export class MDControlService extends ControlService {
|
|
|
8
8
|
* @date 2022-08-31 17:08:41
|
|
9
9
|
* @param {IContext} context 上下文
|
|
10
10
|
* @param {IParams} [params={}] 视图参数
|
|
11
|
+
* @param {IParams} [args={}] 额外参数
|
|
11
12
|
* @returns {*} {Promise<IHttpResponse>}
|
|
12
13
|
*/
|
|
13
|
-
async fetch(context, params = {}) {
|
|
14
|
+
async fetch(context, params = {}, args = {}) {
|
|
14
15
|
var _a;
|
|
15
|
-
|
|
16
|
+
let fetchAction = ((_a = this.model.fetchControlAction) === null || _a === void 0 ? void 0 : _a.appDEMethodId) || 'fetchdefault';
|
|
17
|
+
// 识别用户定义参数导出数据集合
|
|
18
|
+
if (args.srfexportdataset) {
|
|
19
|
+
fetchAction = args.srfexportdataset;
|
|
20
|
+
}
|
|
16
21
|
let res = await this.exec(fetchAction, context, params);
|
|
17
22
|
res = this.handleResponse(res);
|
|
18
23
|
return res;
|
|
@@ -122,8 +127,13 @@ export class MDControlService extends ControlService {
|
|
|
122
127
|
*/
|
|
123
128
|
async exportData(dataExport, context, params = {}) {
|
|
124
129
|
const entityService = await this.app.deService.getService(context, this.model.appDataEntityId);
|
|
125
|
-
|
|
126
|
-
this.model.fetchControlAction.appDEMethodId
|
|
130
|
+
let tempFetchAction = dataExport.appDEDataSetId ||
|
|
131
|
+
this.model.fetchControlAction.appDEMethodId;
|
|
132
|
+
// 识别用户定义的视图参数导出数据集合
|
|
133
|
+
if (params.srfexportdataset) {
|
|
134
|
+
tempFetchAction = params.srfexportdataset;
|
|
135
|
+
}
|
|
136
|
+
return entityService.file.export(dataExport, tempFetchAction, context, params);
|
|
127
137
|
}
|
|
128
138
|
/**
|
|
129
139
|
* 处理响应
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,WAAW,EAEX,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAIL,cAAc,EACd,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAgG3B;;;;;;;;OAQG;cACa,OAAO,CACrB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAkC3B;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAkEhB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA6B3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,WAAW,EAEX,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAIL,cAAc,EACd,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAgG3B;;;;;;;;OAQG;cACa,OAAO,CACrB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAkC3B;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAkEhB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA6B3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAkGhB;;;;;;;;OAQG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;cACa,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IAuD3B;;;;;;;;OAQG;IACH,SAAS,CAAC,kBAAkB,CAC1B,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,WAAW,CAAC,EAAE,aAAa,GAC1B,WAAW,GAAG,SAAS;IAc1B;;;;;;;;OAQG;cACa,UAAU,CACxB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;CA0B5B"}
|
|
@@ -243,6 +243,24 @@ export class FrontUIActionProvider extends UIActionProviderBase {
|
|
|
243
243
|
const params = Object.assign(Object.assign({ page: 0, size: appDEDataExport.maxRowCount
|
|
244
244
|
? appDEDataExport.maxRowCount
|
|
245
245
|
: ibiz.config.common.maxExportRowsDefault }, args.params), resultParams);
|
|
246
|
+
// 多项数据和多项数据主键如果没有选择全部界面参数则认为导出选中行
|
|
247
|
+
const { actionTarget } = action;
|
|
248
|
+
if ((actionTarget === 'MULTIDATA' || actionTarget === 'MULTIKEY') &&
|
|
249
|
+
!args.params.srfallselected) {
|
|
250
|
+
const srfexportdatakey = presetParams.srfexportdatakey || 'srfkey';
|
|
251
|
+
const tempParams = {};
|
|
252
|
+
if (args && args.data && args.data.length > 0) {
|
|
253
|
+
Object.assign(tempParams, {
|
|
254
|
+
srfkeys: args.data.map(data => data[srfexportdatakey]).join(','),
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
Object.assign(params, tempParams);
|
|
258
|
+
}
|
|
259
|
+
// 如果srfallselected存在需要删除,规范化参数
|
|
260
|
+
if (params &&
|
|
261
|
+
Object.prototype.hasOwnProperty.call(params, 'srfallselected')) {
|
|
262
|
+
delete params.srfallselected;
|
|
263
|
+
}
|
|
246
264
|
// 异步导出时只发消息不下载
|
|
247
265
|
if (isAsyncAction) {
|
|
248
266
|
const app = await ibiz.hub.getAppAsync(action.appId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-action-provider-base.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/ui-action-provider-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAgC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;GAOG;AACH,8BAAsB,oBAAqB,YAAW,iBAAiB;IACrE;;;;;;;OAOG;IACG,IAAI,CACR,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+H3B;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,eAAe,GACtB,cAAc;IASjB;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,CACnB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,eAAe,GACpB,eAAe;IAUlB;;;;;;;OAOG;IACG,SAAS,CACb,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CACjB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC;IAE3B;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAOvC;;;;;;;;;;;;;;;;OAgBG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EAAE,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QACT,aAAa,EAAE,QAAQ,CAAC;QACxB,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-action-provider-base.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/ui-action-provider-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAgC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;GAOG;AACH,8BAAsB,oBAAqB,YAAW,iBAAiB;IACrE;;;;;;;OAOG;IACG,IAAI,CACR,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+H3B;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,eAAe,GACtB,cAAc;IASjB;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,CACnB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,eAAe,GACpB,eAAe;IAUlB;;;;;;;OAOG;IACG,SAAS,CACb,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CACjB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC;IAE3B;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAOvC;;;;;;;;;;;;;;;;OAgBG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EAAE,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QACT,aAAa,EAAE,QAAQ,CAAC;QACxB,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IAwIF;;;;;;;;;OASG;IACH,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,MAAM,GAAG,SAAS;IA4CrB;;;;;;;;OAQG;IACH,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;CAc5C"}
|
|
@@ -276,6 +276,11 @@ export class UIActionProviderBase {
|
|
|
276
276
|
presetParams.srfexportdataset = resultParams.srfexportdataset;
|
|
277
277
|
delete resultParams.srfexportdataset;
|
|
278
278
|
}
|
|
279
|
+
// srfexportdatakey(指定数据导出传入数据主键属性)
|
|
280
|
+
if (resultParams.hasOwnProperty('srfexportdatakey')) {
|
|
281
|
+
presetParams.srfexportdatakey = resultParams.srfexportdatakey;
|
|
282
|
+
delete resultParams.srfexportdatakey;
|
|
283
|
+
}
|
|
279
284
|
// srfasyncaction(指定当前界面行为是否异步(目前仅数据导出使用))
|
|
280
285
|
if (resultParams.hasOwnProperty('srfasyncaction')) {
|
|
281
286
|
presetParams.srfasyncaction = resultParams.srfasyncaction;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.7.41-alpha.
|
|
3
|
+
"version": "0.7.41-alpha.117",
|
|
4
4
|
"description": "运行时逻辑库",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"jsencrypt": "^3.3.2"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@ibiz-template/core": "^0.7.41-alpha.
|
|
43
|
-
"@ibiz/model-core": "^0.1.
|
|
42
|
+
"@ibiz-template/core": "^0.7.41-alpha.117",
|
|
43
|
+
"@ibiz/model-core": "^0.1.89",
|
|
44
44
|
"@types/animejs": "^3.1.12",
|
|
45
45
|
"@types/path-browserify": "^1.0.2",
|
|
46
46
|
"@types/qs": "^6.9.11",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@ibiz-template/core": "^0.6.0",
|
|
61
|
-
"@ibiz/model-core": "^0.1.
|
|
61
|
+
"@ibiz/model-core": "^0.1.89",
|
|
62
62
|
"async-validator": "^4.2.5",
|
|
63
63
|
"dayjs": "^1.11.7",
|
|
64
64
|
"echarts": "^5.4.3",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"qx-util": "^0.4.8",
|
|
71
71
|
"ramda": "^0.29.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "d78a9099a5f4b8820786c9e58372ef68d8e30c4c"
|
|
74
74
|
}
|
|
@@ -187,6 +187,7 @@ export class MDControlController<
|
|
|
187
187
|
this.state.groups = [];
|
|
188
188
|
this.state.hideNoDataImage = false;
|
|
189
189
|
this.state.enableGroup = !!(this.model as IData).enableGroup;
|
|
190
|
+
this.state.isSelectedAll = false;
|
|
190
191
|
}
|
|
191
192
|
|
|
192
193
|
/**
|
|
@@ -792,12 +793,12 @@ export class MDControlController<
|
|
|
792
793
|
this.batchToolbarController?.calcButtonState(
|
|
793
794
|
data,
|
|
794
795
|
this.model.appDataEntityId,
|
|
795
|
-
{ view: this.view, ctrl: this },
|
|
796
|
+
{ view: this.view, ctrl: this, data: selection },
|
|
796
797
|
);
|
|
797
798
|
this.quickToolbarController?.calcButtonState(
|
|
798
799
|
data,
|
|
799
800
|
this.model.appDataEntityId,
|
|
800
|
-
{ view: this.view, ctrl: this },
|
|
801
|
+
{ view: this.view, ctrl: this, data: selection },
|
|
801
802
|
);
|
|
802
803
|
}
|
|
803
804
|
|
|
@@ -323,6 +323,7 @@ export class DataViewControlController<
|
|
|
323
323
|
this.context,
|
|
324
324
|
actionGroup.selectedData![0],
|
|
325
325
|
this.model.appDataEntityId!,
|
|
326
|
+
actionGroup.selectedData,
|
|
326
327
|
);
|
|
327
328
|
}
|
|
328
329
|
}
|
|
@@ -335,7 +336,6 @@ export class DataViewControlController<
|
|
|
335
336
|
* @date 2024-05-29 19:18:42
|
|
336
337
|
* @return {*} {void}
|
|
337
338
|
*/
|
|
338
|
-
|
|
339
339
|
calcShowMode(items: IData): void {
|
|
340
340
|
const { enablePagingBar } = this.model;
|
|
341
341
|
this.state.hideNoDataImage = false;
|
|
@@ -1571,10 +1571,14 @@ export class GridController<
|
|
|
1571
1571
|
* @author zk
|
|
1572
1572
|
* @date 2023-07-20 04:07:49
|
|
1573
1573
|
* @param {MDCtrlLoadParams} args
|
|
1574
|
+
* @param {IParams} [fetchArgs={}] 透传给 service.fetch 的额外参数,如 srfexportdataset
|
|
1574
1575
|
* @return {*}
|
|
1575
1576
|
* @memberof GridController
|
|
1576
1577
|
*/
|
|
1577
|
-
async loadData(
|
|
1578
|
+
async loadData(
|
|
1579
|
+
args: MDCtrlLoadParams,
|
|
1580
|
+
fetchArgs: IParams = {},
|
|
1581
|
+
): Promise<ControlVO[]> {
|
|
1578
1582
|
// *查询参数处理
|
|
1579
1583
|
const { context } = this.handlerAbilityParams(args);
|
|
1580
1584
|
const params = await this.getFetchParams(args?.viewParam);
|
|
@@ -1582,7 +1586,7 @@ export class GridController<
|
|
|
1582
1586
|
// *发起请求
|
|
1583
1587
|
await this.startLoading();
|
|
1584
1588
|
try {
|
|
1585
|
-
res = await this.service.fetch(context, params);
|
|
1589
|
+
res = await this.service.fetch(context, params, fetchArgs);
|
|
1586
1590
|
} finally {
|
|
1587
1591
|
await this.endLoading();
|
|
1588
1592
|
}
|
|
@@ -1786,7 +1790,11 @@ export class GridController<
|
|
|
1786
1790
|
ibiz.config.common.maxExportRowsDefault,
|
|
1787
1791
|
page: 0,
|
|
1788
1792
|
};
|
|
1789
|
-
|
|
1793
|
+
// 识别用户定义的视图参数导出数据集合
|
|
1794
|
+
data = await this.loadData(
|
|
1795
|
+
{ viewParam },
|
|
1796
|
+
{ srfexportdataset: this.params.srfexportdataset },
|
|
1797
|
+
);
|
|
1790
1798
|
} else if (type === 'selectedRows') {
|
|
1791
1799
|
data = this.getData();
|
|
1792
1800
|
}
|
|
@@ -1820,9 +1828,11 @@ export class GridController<
|
|
|
1820
1828
|
ibiz.i18n.t('runtime.controller.control.grid.exported'),
|
|
1821
1829
|
);
|
|
1822
1830
|
}
|
|
1831
|
+
// 用户通过视图参数srfexportdatakey指定导出选中数据的数据主键属性
|
|
1832
|
+
const srfexportdatakey = this.params.srfexportdatakey || 'srfkey';
|
|
1823
1833
|
tempParams = {
|
|
1824
1834
|
page: 0,
|
|
1825
|
-
srfkeys: selectedData.map(data => data
|
|
1835
|
+
srfkeys: selectedData.map(data => data[srfexportdatakey]).join(','),
|
|
1826
1836
|
};
|
|
1827
1837
|
} else if (type === 'maxRowCount' || type === 'customPage') {
|
|
1828
1838
|
const { size } = this.state;
|
|
@@ -645,10 +645,12 @@ export class KanbanController
|
|
|
645
645
|
batchtoolbar?.calcButtonState(data, this.model.appDataEntityId, {
|
|
646
646
|
view: this.view,
|
|
647
647
|
ctrl: this,
|
|
648
|
+
data: selection,
|
|
648
649
|
});
|
|
649
650
|
quicktoolbar?.calcButtonState(data, this.model.appDataEntityId, {
|
|
650
651
|
view: this.view,
|
|
651
652
|
ctrl: this,
|
|
653
|
+
data: selection,
|
|
652
654
|
});
|
|
653
655
|
}
|
|
654
656
|
}
|
|
@@ -645,10 +645,14 @@ export class MDCtrlController
|
|
|
645
645
|
/**
|
|
646
646
|
* @description 加载数据(只加载数据 不做其他操作)
|
|
647
647
|
* @param {MDCtrlLoadParams} args
|
|
648
|
+
* @param {IParams} [fetchArgs={}] 透传给 service.fetch 的额外参数,如 srfexportdataset
|
|
648
649
|
* @returns {*} {Promise<IData[]>}
|
|
649
650
|
* @memberof MDCtrlController
|
|
650
651
|
*/
|
|
651
|
-
async loadData(
|
|
652
|
+
async loadData(
|
|
653
|
+
args: MDCtrlLoadParams,
|
|
654
|
+
fetchArgs: IParams = {},
|
|
655
|
+
): Promise<IData[]> {
|
|
652
656
|
// *查询参数处理
|
|
653
657
|
const { context } = this.handlerAbilityParams(args);
|
|
654
658
|
const params = await this.getFetchParams(args?.viewParam);
|
|
@@ -656,7 +660,7 @@ export class MDCtrlController
|
|
|
656
660
|
// *发起请求
|
|
657
661
|
await this.startLoading();
|
|
658
662
|
try {
|
|
659
|
-
res = await this.service.fetch(context, params);
|
|
663
|
+
res = await this.service.fetch(context, params, fetchArgs);
|
|
660
664
|
} finally {
|
|
661
665
|
await this.endLoading();
|
|
662
666
|
}
|
|
@@ -691,7 +695,11 @@ export class MDCtrlController
|
|
|
691
695
|
ibiz.config.common.maxExportRowsDefault,
|
|
692
696
|
page: 0,
|
|
693
697
|
};
|
|
694
|
-
|
|
698
|
+
// 识别用户定义的视图参数导出数据集合
|
|
699
|
+
data = await this.loadData(
|
|
700
|
+
{ viewParam },
|
|
701
|
+
{ srfexportdataset: this.params.srfexportdataset },
|
|
702
|
+
);
|
|
695
703
|
} else if (type === 'selectedRows') {
|
|
696
704
|
data = this.getData();
|
|
697
705
|
}
|
|
@@ -777,9 +785,11 @@ export class MDCtrlController
|
|
|
777
785
|
ibiz.i18n.t('runtime.controller.common.md.exported'),
|
|
778
786
|
);
|
|
779
787
|
}
|
|
788
|
+
// 用户通过视图参数srfexportdatakey指定导出选中数据的数据主键属性
|
|
789
|
+
const srfexportdatakey = this.params.srfexportdatakey || 'srfkey';
|
|
780
790
|
tempParams = {
|
|
781
791
|
page: 0,
|
|
782
|
-
srfkeys: selectedData.map(data => data
|
|
792
|
+
srfkeys: selectedData.map(data => data[srfexportdatakey]).join(','),
|
|
783
793
|
};
|
|
784
794
|
} else if (type === 'maxRowCount' || type === 'customPage') {
|
|
785
795
|
const { size } = this.state;
|
|
@@ -228,9 +228,18 @@ export class ToolbarController<
|
|
|
228
228
|
*/
|
|
229
229
|
async getToolbarEventArgs(): Promise<Omit<EventBase, 'eventName'>> {
|
|
230
230
|
const result = this.getEventArgs();
|
|
231
|
+
const newParams = {
|
|
232
|
+
...result.params,
|
|
233
|
+
};
|
|
231
234
|
let data: IData[] = [];
|
|
232
235
|
if (this.xdataControl) {
|
|
233
236
|
data = this.xdataControl?.getData() || [];
|
|
237
|
+
// 数据导出界面行为需要界面是否选择全部状态,选择全部则导出全部,否则按选中数据导出
|
|
238
|
+
if ((this.xdataControl as IData).state?.isSelectedAll) {
|
|
239
|
+
Object.assign(newParams, {
|
|
240
|
+
srfallselected: true,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
234
243
|
} else {
|
|
235
244
|
data = (await this.ctx.view.call(ViewCallTag.GET_DATA)) || [];
|
|
236
245
|
}
|
|
@@ -238,6 +247,7 @@ export class ToolbarController<
|
|
|
238
247
|
...result,
|
|
239
248
|
data,
|
|
240
249
|
ctrl: this,
|
|
250
|
+
params: newParams,
|
|
241
251
|
};
|
|
242
252
|
}
|
|
243
253
|
|
|
@@ -460,11 +470,18 @@ export class ToolbarController<
|
|
|
460
470
|
appDeId?: string,
|
|
461
471
|
_params: IParams = {},
|
|
462
472
|
): Promise<void> {
|
|
473
|
+
const app = await ibiz.hub.getApp(this.context.srfappid);
|
|
474
|
+
|
|
463
475
|
let _data = data;
|
|
464
476
|
if (data && data instanceof ControlVO) {
|
|
465
477
|
_data = data.getOrigin();
|
|
466
478
|
}
|
|
467
|
-
await this.state.buttonsState.update(
|
|
479
|
+
await this.state.buttonsState.update(
|
|
480
|
+
this.context,
|
|
481
|
+
_data,
|
|
482
|
+
appDeId,
|
|
483
|
+
_params.data,
|
|
484
|
+
);
|
|
468
485
|
// 配置是否隐藏 isHiddenItem
|
|
469
486
|
this.allToolbarItems.forEach(item => {
|
|
470
487
|
const itemState = this.state.buttonsState[item.id!] as IButtonState;
|
|
@@ -510,6 +527,14 @@ export class ToolbarController<
|
|
|
510
527
|
itemState.disabled = !dynaEnable;
|
|
511
528
|
}
|
|
512
529
|
}
|
|
530
|
+
|
|
531
|
+
// 如果有统一资源且当前项显示,无权限则隐藏
|
|
532
|
+
if (item.accessKey && itemState.visible) {
|
|
533
|
+
const permitted = app.authority.calcByResCode(item.accessKey);
|
|
534
|
+
if (!permitted) {
|
|
535
|
+
itemState.visible = false;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
513
538
|
},
|
|
514
539
|
{ childrenFields: ['detoolbarItems'] },
|
|
515
540
|
);
|
|
@@ -90,10 +90,11 @@ export class ButtonContainerState implements IButtonContainerState {
|
|
|
90
90
|
context: IContext,
|
|
91
91
|
data?: IData,
|
|
92
92
|
appDeId?: string,
|
|
93
|
+
selections?: IData[],
|
|
93
94
|
): Promise<void> {
|
|
94
95
|
await Promise.all(
|
|
95
96
|
this.children.map(child => {
|
|
96
|
-
return child.update(context, data, appDeId);
|
|
97
|
+
return child.update(context, data, appDeId, selections);
|
|
97
98
|
}),
|
|
98
99
|
);
|
|
99
100
|
this.visible = this.computeVisable();
|
|
@@ -242,6 +242,7 @@ export class UIActionButtonState implements IButtonState {
|
|
|
242
242
|
context: IContext,
|
|
243
243
|
data?: IData,
|
|
244
244
|
appDeId?: string,
|
|
245
|
+
selections: IData[] = [],
|
|
245
246
|
): Promise<void> {
|
|
246
247
|
if (!this.isInit) {
|
|
247
248
|
await this.init();
|
|
@@ -255,8 +256,17 @@ export class UIActionButtonState implements IButtonState {
|
|
|
255
256
|
// 有权限时显示
|
|
256
257
|
this.visible = true;
|
|
257
258
|
// 有权限时没数据有些要禁用,有数据没主见时(单项数据)需要禁用
|
|
258
|
-
|
|
259
|
+
let disabled =
|
|
259
260
|
this.noDataDisabled && (!data || (this.noKeyDisabled && !data.srfkey));
|
|
261
|
+
// 严格模式(单数据目标行为在多选时禁用)
|
|
262
|
+
if (
|
|
263
|
+
ibiz.config.common.uiActionPermissionMode === 'strict' &&
|
|
264
|
+
(this.actionTarget === 'SINGLEDATA' ||
|
|
265
|
+
this.actionTarget === 'SINGLEKEY')
|
|
266
|
+
) {
|
|
267
|
+
disabled = disabled || selections.length > 1;
|
|
268
|
+
}
|
|
269
|
+
this.disabled = disabled;
|
|
260
270
|
}
|
|
261
271
|
await this.calcEnableScript(context, data);
|
|
262
272
|
await this.calcVisibleScript(context, data);
|
|
@@ -77,6 +77,16 @@ export interface IApiGlobalCommonConfig {
|
|
|
77
77
|
*/
|
|
78
78
|
mergeAppMenu: 'default' | 'disable';
|
|
79
79
|
|
|
80
|
+
/**
|
|
81
|
+
* @description 界面行为权限校验模式,值为 'default' 时表示默认模式(单数据目标行为在多选时不禁用),值为 'strict' 时表示严格模式(单数据目标行为在多选时禁用)
|
|
82
|
+
* @type {('default' | 'strict')}
|
|
83
|
+
* @default default
|
|
84
|
+
* @platform web
|
|
85
|
+
* @platform mob
|
|
86
|
+
* @memberof IApiGlobalCommonConfig
|
|
87
|
+
*/
|
|
88
|
+
uiActionPermissionMode: 'default' | 'strict';
|
|
89
|
+
|
|
80
90
|
/**
|
|
81
91
|
* @description 是否启用AI聊天最小化
|
|
82
92
|
* @type {boolean}
|
|
@@ -34,6 +34,7 @@ export interface IApiButtonContainerState {
|
|
|
34
34
|
* @param {IApiContext} context 上下文
|
|
35
35
|
* @param {IApiData} [data] 实体数据
|
|
36
36
|
* @param {string} [appDeId] 实体标识
|
|
37
|
+
* @param {IData[]} [selections] 选中数据集合
|
|
37
38
|
* @returns {*} {Promise<void>}
|
|
38
39
|
* @memberof IApiButtonContainerState
|
|
39
40
|
*/
|
|
@@ -41,6 +42,7 @@ export interface IApiButtonContainerState {
|
|
|
41
42
|
context: IApiContext,
|
|
42
43
|
data?: IApiData,
|
|
43
44
|
appDeId?: string,
|
|
45
|
+
selections?: IData[],
|
|
44
46
|
): Promise<void>;
|
|
45
47
|
|
|
46
48
|
[p: string]: any;
|
|
@@ -41,6 +41,7 @@ export interface IApiButtonState {
|
|
|
41
41
|
* @param {IApiContext} context 上下文
|
|
42
42
|
* @param {IApiData} [data] 实体数据
|
|
43
43
|
* @param {string} [appDeId] 实体标识
|
|
44
|
+
* @param {IData[]} [selections] 选中数据集合
|
|
44
45
|
* @returns {*} {Promise<void>}
|
|
45
46
|
* @memberof IApiButtonState
|
|
46
47
|
*/
|
|
@@ -48,5 +49,6 @@ export interface IApiButtonState {
|
|
|
48
49
|
context: IApiContext,
|
|
49
50
|
data?: IApiData,
|
|
50
51
|
appDeId?: string,
|
|
52
|
+
selections?: IData[],
|
|
51
53
|
): Promise<void>;
|
|
52
54
|
}
|
|
@@ -175,6 +175,14 @@ export interface IApiMDControlState extends IApiControlState {
|
|
|
175
175
|
* @memberof IApiMDControlState
|
|
176
176
|
*/
|
|
177
177
|
enableGroup: boolean;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* @description 是否全选,该状态目前仅PC端表格使用。
|
|
181
|
+
* @type {boolean}
|
|
182
|
+
* @default false
|
|
183
|
+
* @memberof IApiMDControlState
|
|
184
|
+
*/
|
|
185
|
+
isSelectedAll: boolean;
|
|
178
186
|
}
|
|
179
187
|
|
|
180
188
|
/**
|
|
@@ -80,6 +80,21 @@ export abstract class PlatformProviderBase implements IPlatformProvider {
|
|
|
80
80
|
*/
|
|
81
81
|
async backendExport(args: IBackendExportParams): Promise<boolean> {
|
|
82
82
|
const { baseURL, url, method, params, data, newWindow } = args;
|
|
83
|
+
|
|
84
|
+
// 规范化参数
|
|
85
|
+
if (
|
|
86
|
+
data &&
|
|
87
|
+
Object.prototype.hasOwnProperty.call(data, 'srfexportdataset')
|
|
88
|
+
) {
|
|
89
|
+
delete data.srfexportdataset;
|
|
90
|
+
}
|
|
91
|
+
if (
|
|
92
|
+
data &&
|
|
93
|
+
Object.prototype.hasOwnProperty.call(data, 'srfexportdatakey')
|
|
94
|
+
) {
|
|
95
|
+
delete data.srfexportdatakey;
|
|
96
|
+
}
|
|
97
|
+
|
|
83
98
|
const response = await (ibiz.net.request(url, {
|
|
84
99
|
data,
|
|
85
100
|
method,
|
|
@@ -14,14 +14,20 @@ export class MDControlService<
|
|
|
14
14
|
* @date 2022-08-31 17:08:41
|
|
15
15
|
* @param {IContext} context 上下文
|
|
16
16
|
* @param {IParams} [params={}] 视图参数
|
|
17
|
+
* @param {IParams} [args={}] 额外参数
|
|
17
18
|
* @returns {*} {Promise<IHttpResponse>}
|
|
18
19
|
*/
|
|
19
20
|
async fetch(
|
|
20
21
|
context: IContext,
|
|
21
22
|
params: IParams = {},
|
|
23
|
+
args: IParams = {},
|
|
22
24
|
): Promise<IHttpResponse<ControlVO[]>> {
|
|
23
|
-
|
|
25
|
+
let fetchAction =
|
|
24
26
|
this.model.fetchControlAction?.appDEMethodId || 'fetchdefault';
|
|
27
|
+
// 识别用户定义参数导出数据集合
|
|
28
|
+
if (args.srfexportdataset) {
|
|
29
|
+
fetchAction = args.srfexportdataset;
|
|
30
|
+
}
|
|
25
31
|
let res = await this.exec(fetchAction, context, params);
|
|
26
32
|
res = this.handleResponse(res);
|
|
27
33
|
return res as IHttpResponse<ControlVO[]>;
|
|
@@ -166,10 +172,16 @@ export class MDControlService<
|
|
|
166
172
|
context,
|
|
167
173
|
this.model.appDataEntityId!,
|
|
168
174
|
);
|
|
175
|
+
let tempFetchAction =
|
|
176
|
+
dataExport.appDEDataSetId ||
|
|
177
|
+
this.model.fetchControlAction!.appDEMethodId!;
|
|
178
|
+
// 识别用户定义的视图参数导出数据集合
|
|
179
|
+
if (params.srfexportdataset) {
|
|
180
|
+
tempFetchAction = params.srfexportdataset;
|
|
181
|
+
}
|
|
169
182
|
return entityService.file.export(
|
|
170
183
|
dataExport,
|
|
171
|
-
|
|
172
|
-
this.model.fetchControlAction!.appDEMethodId!,
|
|
184
|
+
tempFetchAction,
|
|
173
185
|
context,
|
|
174
186
|
params,
|
|
175
187
|
);
|
|
@@ -357,6 +357,28 @@ export class FrontUIActionProvider extends UIActionProviderBase {
|
|
|
357
357
|
...args.params,
|
|
358
358
|
...resultParams,
|
|
359
359
|
};
|
|
360
|
+
// 多项数据和多项数据主键如果没有选择全部界面参数则认为导出选中行
|
|
361
|
+
const { actionTarget } = action;
|
|
362
|
+
if (
|
|
363
|
+
(actionTarget === 'MULTIDATA' || actionTarget === 'MULTIKEY') &&
|
|
364
|
+
!args.params.srfallselected
|
|
365
|
+
) {
|
|
366
|
+
const srfexportdatakey = presetParams.srfexportdatakey || 'srfkey';
|
|
367
|
+
const tempParams = {};
|
|
368
|
+
if (args && args.data && args.data.length > 0) {
|
|
369
|
+
Object.assign(tempParams, {
|
|
370
|
+
srfkeys: args.data.map(data => data[srfexportdatakey]).join(','),
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
Object.assign(params, tempParams);
|
|
374
|
+
}
|
|
375
|
+
// 如果srfallselected存在需要删除,规范化参数
|
|
376
|
+
if (
|
|
377
|
+
params &&
|
|
378
|
+
Object.prototype.hasOwnProperty.call(params, 'srfallselected')
|
|
379
|
+
) {
|
|
380
|
+
delete params.srfallselected;
|
|
381
|
+
}
|
|
360
382
|
|
|
361
383
|
// 异步导出时只发消息不下载
|
|
362
384
|
if (isAsyncAction) {
|
|
@@ -406,6 +406,12 @@ export abstract class UIActionProviderBase implements IUIActionProvider {
|
|
|
406
406
|
delete resultParams.srfexportdataset;
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
+
// srfexportdatakey(指定数据导出传入数据主键属性)
|
|
410
|
+
if (resultParams.hasOwnProperty('srfexportdatakey')) {
|
|
411
|
+
presetParams.srfexportdatakey = resultParams.srfexportdatakey;
|
|
412
|
+
delete resultParams.srfexportdatakey;
|
|
413
|
+
}
|
|
414
|
+
|
|
409
415
|
// srfasyncaction(指定当前界面行为是否异步(目前仅数据导出使用))
|
|
410
416
|
if (resultParams.hasOwnProperty('srfasyncaction')) {
|
|
411
417
|
presetParams.srfasyncaction = resultParams.srfasyncaction;
|