@ibiz-template/runtime 0.6.11 → 0.6.13
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 +289 -119
- package/dist/index.system.min.js +1 -1
- package/out/command/app/open-app-view/open-app-view.js +2 -2
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.controller.js +9 -3
- package/out/controller/control/grid/grid/grid-row.state.d.ts +2 -0
- package/out/controller/control/grid/grid/grid-row.state.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid-row.state.js +15 -0
- package/out/controller/control/grid/grid/grid.controller.d.ts +46 -3
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +161 -110
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
- package/out/controller/control/kanban/kanban.controller.js +32 -1
- package/out/controller/control/search-bar/use-searchcond.d.ts.map +1 -1
- package/out/controller/control/search-bar/use-searchcond.js +4 -1
- package/out/engine/md-view.engine.js +1 -1
- package/out/interface/controller/controller/control/i-control.controller.d.ts +8 -1
- package/out/interface/controller/controller/control/i-control.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/panel-item/i-panel-item.controller.d.ts +7 -0
- package/out/interface/controller/controller/control/panel-item/i-panel-item.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-grid.state.d.ts +14 -0
- package/out/interface/controller/state/control/i-grid.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-kanban.state.d.ts +11 -0
- package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
- package/out/interface/util/i-message-util/i-message-util.d.ts +51 -0
- package/out/interface/util/i-message-util/i-message-util.d.ts.map +1 -1
- package/out/interface/util/index.d.ts +1 -1
- package/out/interface/util/index.d.ts.map +1 -1
- package/out/ui-action/provider/front-ui-action-provider.d.ts +10 -0
- package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
- package/out/ui-action/provider/front-ui-action-provider.js +43 -1
- package/out/ui-action/provider/loginout-ui-action-provider.js +1 -1
- package/package.json +5 -5
|
@@ -28,8 +28,8 @@ export class OpenAppViewCommand {
|
|
|
28
28
|
*/
|
|
29
29
|
async exec(appViewId, _context, params = {}, opts = {}) {
|
|
30
30
|
const context = clone(_context);
|
|
31
|
-
if (context.srfsimple
|
|
32
|
-
context.srfsimple
|
|
31
|
+
if (context.srfsimple) {
|
|
32
|
+
delete context.srfsimple;
|
|
33
33
|
}
|
|
34
34
|
const appView = await ibiz.hub.config.view.get(appViewId);
|
|
35
35
|
if (!appView) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,kBACX,SAAQ,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAClE,YAAW,mBAAmB;IAE9B;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAM1E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,KAAK,CAAmB;IAE3C;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;OAKG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA2B1D;;;;;;OAMG;cACa,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IA+CtC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA8CrD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAuEjD;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CzD;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAe9B;;;;;;;OAOG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7D;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,IAAI,KAAK;IAiB9B;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;CAqBjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { awaitTimeout, mergeInLeft, RuntimeError, } from '@ibiz-template/core';
|
|
1
|
+
import { awaitTimeout, IBizContext, isElementSame, mergeInLeft, RuntimeError, } from '@ibiz-template/core';
|
|
2
2
|
import { debounce } from 'lodash-es';
|
|
3
3
|
import { createUUID } from 'qx-util';
|
|
4
4
|
import { clone } from 'ramda';
|
|
@@ -149,7 +149,7 @@ export class EditFormController extends FormController {
|
|
|
149
149
|
if (copyMode) {
|
|
150
150
|
return this.copy();
|
|
151
151
|
}
|
|
152
|
-
const isLoadDraft = !hasDeCodeName(this.context, this.model.appDataEntityId);
|
|
152
|
+
const isLoadDraft = !hasDeCodeName(this.context, calcDeCodeNameById(this.model.appDataEntityId));
|
|
153
153
|
// 加载草稿单独走一个方法
|
|
154
154
|
if (isLoadDraft) {
|
|
155
155
|
return this.loadDraft();
|
|
@@ -451,6 +451,7 @@ export class EditFormController extends FormController {
|
|
|
451
451
|
switch (autoSaveMode) {
|
|
452
452
|
case 3:
|
|
453
453
|
saveParam.data = this.getDiffData();
|
|
454
|
+
saveParam.context = IBizContext.create({ srfsimple: true });
|
|
454
455
|
break;
|
|
455
456
|
default:
|
|
456
457
|
}
|
|
@@ -475,7 +476,12 @@ export class EditFormController extends FormController {
|
|
|
475
476
|
const diffData = {};
|
|
476
477
|
Object.keys(data).forEach(key => {
|
|
477
478
|
// 值不一致 || 属性为主键
|
|
478
|
-
if (data[key]
|
|
479
|
+
if (Array.isArray(data[key])) {
|
|
480
|
+
if (!isElementSame(data[key], this.oldData[key])) {
|
|
481
|
+
diffData[key] = data[key];
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
else if (data[key] !== this.oldData[key] || key === data.srfkeyfield) {
|
|
479
485
|
diffData[key] = data[key];
|
|
480
486
|
}
|
|
481
487
|
});
|
|
@@ -11,6 +11,7 @@ import { GridController } from './grid.controller';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class GridRowState implements IGridRowState {
|
|
13
13
|
data: ControlVO;
|
|
14
|
+
oldData: ControlVO;
|
|
14
15
|
cacheData?: ControlVO;
|
|
15
16
|
/**
|
|
16
17
|
* 错误信息集合,p是对应属性名称
|
|
@@ -82,6 +83,7 @@ export declare class GridRowState implements IGridRowState {
|
|
|
82
83
|
* @memberof GridRowState
|
|
83
84
|
*/
|
|
84
85
|
processing: boolean;
|
|
86
|
+
getDiffData(): ControlVO;
|
|
85
87
|
constructor(data: ControlVO, grid: GridController);
|
|
86
88
|
}
|
|
87
89
|
//# sourceMappingURL=grid-row.state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-row.state.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid-row.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,SAAS,CAAC;IAEhB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IAE5C;;;;;;OAMG;IACH,WAAW,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAEzD;;;;;;OAMG;IACH,aAAa,EAAE;QACb,CAAC,CAAC,EAAE,MAAM,GAAG;YACX,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAM;IAEP;;;;;;;OAOG;IACH,mBAAmB,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAEjE;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAS;IAE7B;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAS;IAE1B;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"grid-row.state.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid-row.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,SAAS,CAAC;IAEhB,OAAO,EAAE,SAAS,CAAC;IAEnB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IAE5C;;;;;;OAMG;IACH,WAAW,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAEzD;;;;;;OAMG;IACH,aAAa,EAAE;QACb,CAAC,CAAC,EAAE,MAAM,GAAG;YACX,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAM;IAEP;;;;;;;OAOG;IACH,mBAAmB,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAEjE;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAS;IAE7B;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAS;IAE1B;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAS;IAE5B,WAAW,IAAI,SAAS;gBAgBZ,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc;CA+BlD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ControlVO } from '../../../../service';
|
|
1
2
|
/**
|
|
2
3
|
* 表格行数据状态管理控制器
|
|
3
4
|
*
|
|
@@ -7,6 +8,19 @@
|
|
|
7
8
|
* @class GridRowState
|
|
8
9
|
*/
|
|
9
10
|
export class GridRowState {
|
|
11
|
+
getDiffData() {
|
|
12
|
+
const diffData = {};
|
|
13
|
+
Object.keys(this.data).forEach(key => {
|
|
14
|
+
// 值不一致 || 属性为主键
|
|
15
|
+
if (this.data[key] !== this.oldData[key] ||
|
|
16
|
+
key === this.data.srfkeyfield) {
|
|
17
|
+
diffData[key] = this.data[key];
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
diffData.srfuf = this.data.srfuf;
|
|
21
|
+
diffData.srfkey = this.data.srfkey;
|
|
22
|
+
return new ControlVO(diffData, this.oldData.$dataUIMap);
|
|
23
|
+
}
|
|
10
24
|
constructor(data, grid) {
|
|
11
25
|
/**
|
|
12
26
|
* 错误信息集合,p是对应属性名称
|
|
@@ -66,6 +80,7 @@ export class GridRowState {
|
|
|
66
80
|
*/
|
|
67
81
|
this.processing = false;
|
|
68
82
|
this.data = data;
|
|
83
|
+
this.oldData = data.clone();
|
|
69
84
|
// vue监控没有空值没法自动响应式更新
|
|
70
85
|
Object.keys(this.data).forEach(key => {
|
|
71
86
|
if (this.errors[key] === undefined) {
|
|
@@ -120,13 +120,27 @@ export declare class GridController<T extends IDEGrid = IDEGrid, S extends IGrid
|
|
|
120
120
|
* @type {IDEDataExport}
|
|
121
121
|
*/
|
|
122
122
|
dataExport: IDEDataExport | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* 数据导出参数
|
|
125
|
+
* @author zzq
|
|
126
|
+
* @date 2024-03-20 16:11:00
|
|
127
|
+
* @type {IData}
|
|
128
|
+
*/
|
|
129
|
+
dataExportParam: IData;
|
|
123
130
|
/**
|
|
124
131
|
* 数据导出列
|
|
125
132
|
* @author lxm
|
|
126
133
|
* @date 2023-08-07 04:11:00
|
|
127
134
|
* @type {IDEDataExport}
|
|
128
135
|
*/
|
|
129
|
-
allExportColumns: IExportColumn[]
|
|
136
|
+
allExportColumns: IExportColumn[];
|
|
137
|
+
/**
|
|
138
|
+
* 数据导出代码表
|
|
139
|
+
* @author zzq
|
|
140
|
+
* @date 2024-03-20 16:11:00
|
|
141
|
+
* @type {Map<string, readonly CodeListItem[]>}
|
|
142
|
+
*/
|
|
143
|
+
allExportCodelistMap: Map<string, readonly CodeListItem[]>;
|
|
130
144
|
/**
|
|
131
145
|
* 分组代码表项集合
|
|
132
146
|
* @author lxm
|
|
@@ -175,6 +189,14 @@ export declare class GridController<T extends IDEGrid = IDEGrid, S extends IGrid
|
|
|
175
189
|
* @return {*} {Promise<void>}
|
|
176
190
|
*/
|
|
177
191
|
initByEntitySchema(): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* 初始化数据导出对象
|
|
194
|
+
* @author zzq
|
|
195
|
+
* @date 2024-03-20 16:10:17
|
|
196
|
+
* @protected
|
|
197
|
+
* @return {*} {Promise<void>}
|
|
198
|
+
*/
|
|
199
|
+
protected initExportData(): Promise<void>;
|
|
178
200
|
/**
|
|
179
201
|
* 初始化表格分组
|
|
180
202
|
* @author lxm
|
|
@@ -353,7 +375,28 @@ export declare class GridController<T extends IDEGrid = IDEGrid, S extends IGrid
|
|
|
353
375
|
* @author: zhujiamin
|
|
354
376
|
* @Date: 2023-11-21 18:54:16
|
|
355
377
|
*/
|
|
356
|
-
findAllExportColumns(dataExport: IDEDataExport): Promise<IExportColumn[]
|
|
378
|
+
findAllExportColumns(dataExport: IDEDataExport): Promise<IExportColumn[]>;
|
|
379
|
+
/**
|
|
380
|
+
* 值格式化
|
|
381
|
+
* @return {string}
|
|
382
|
+
* @author: zzq
|
|
383
|
+
* @Date: 2024-03-20 17:54:16
|
|
384
|
+
*/
|
|
385
|
+
formatValue: (valueFormat?: string, value?: unknown) => string;
|
|
386
|
+
/**
|
|
387
|
+
* 格式化导出数据
|
|
388
|
+
* @return {string}
|
|
389
|
+
* @author: zzq
|
|
390
|
+
* @Date: 2024-03-20 17:54:16
|
|
391
|
+
*/
|
|
392
|
+
formatExcelData(data: IData[]): IData[];
|
|
393
|
+
/**
|
|
394
|
+
* 获取导出数据
|
|
395
|
+
* @return {Promise<IData[]>}
|
|
396
|
+
* @author: zzq
|
|
397
|
+
* @Date: 2024-03-20 17:54:16
|
|
398
|
+
*/
|
|
399
|
+
getExportData(params: IData): Promise<IData[]>;
|
|
357
400
|
/**
|
|
358
401
|
* 数据导出
|
|
359
402
|
*
|
|
@@ -361,7 +404,7 @@ export declare class GridController<T extends IDEGrid = IDEGrid, S extends IGrid
|
|
|
361
404
|
* @returns {*} {Promise<void>}
|
|
362
405
|
* @memberof MDControlController
|
|
363
406
|
*/
|
|
364
|
-
exportData(
|
|
407
|
+
exportData(args: {
|
|
365
408
|
event: MouseEvent;
|
|
366
409
|
params: IData;
|
|
367
410
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,OAAO,EAEP,aAAa,EACb,aAAa,EACd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"grid.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
2
|
import { awaitTimeout, debounceAndAsyncMerge, mergeDefaultInLeft, recursiveIterate, RuntimeError, RuntimeModelError, } from '@ibiz-template/core';
|
|
3
3
|
import { clone } from 'ramda';
|
|
4
|
+
import dayjs from 'dayjs';
|
|
4
5
|
import { GridRowState } from './grid-row.state';
|
|
5
6
|
import { GridService } from './grid.service';
|
|
6
7
|
import { calcDeCodeNameById } from '../../../../model';
|
|
@@ -91,6 +92,45 @@ export class GridController extends MDControlController {
|
|
|
91
92
|
* @type {string}
|
|
92
93
|
*/
|
|
93
94
|
this.aggTitle = '合计';
|
|
95
|
+
/**
|
|
96
|
+
* 数据导出参数
|
|
97
|
+
* @author zzq
|
|
98
|
+
* @date 2024-03-20 16:11:00
|
|
99
|
+
* @type {IData}
|
|
100
|
+
*/
|
|
101
|
+
this.dataExportParam = {};
|
|
102
|
+
/**
|
|
103
|
+
* 数据导出列
|
|
104
|
+
* @author lxm
|
|
105
|
+
* @date 2023-08-07 04:11:00
|
|
106
|
+
* @type {IDEDataExport}
|
|
107
|
+
*/
|
|
108
|
+
this.allExportColumns = [];
|
|
109
|
+
/**
|
|
110
|
+
* 数据导出代码表
|
|
111
|
+
* @author zzq
|
|
112
|
+
* @date 2024-03-20 16:11:00
|
|
113
|
+
* @type {Map<string, readonly CodeListItem[]>}
|
|
114
|
+
*/
|
|
115
|
+
this.allExportCodelistMap = new Map();
|
|
116
|
+
/**
|
|
117
|
+
* 值格式化
|
|
118
|
+
* @return {string}
|
|
119
|
+
* @author: zzq
|
|
120
|
+
* @Date: 2024-03-20 17:54:16
|
|
121
|
+
*/
|
|
122
|
+
this.formatValue = (valueFormat, value = '') => {
|
|
123
|
+
// 根据格式化配置格式化显示
|
|
124
|
+
const strVal = `${value}`;
|
|
125
|
+
if (!valueFormat) {
|
|
126
|
+
return strVal;
|
|
127
|
+
}
|
|
128
|
+
if (dayjs(strVal, valueFormat, true).isValid()) {
|
|
129
|
+
const formatVal = dayjs(strVal).format(valueFormat);
|
|
130
|
+
return formatVal;
|
|
131
|
+
}
|
|
132
|
+
return ibiz.util.text.format(strVal, valueFormat);
|
|
133
|
+
};
|
|
94
134
|
}
|
|
95
135
|
get _evt() {
|
|
96
136
|
return this.evt;
|
|
@@ -166,6 +206,8 @@ export class GridController extends MDControlController {
|
|
|
166
206
|
}, 200);
|
|
167
207
|
// 初始化表格分组
|
|
168
208
|
await this.initGroup();
|
|
209
|
+
// 初始化数据导出对象
|
|
210
|
+
await this.initExportData();
|
|
169
211
|
}
|
|
170
212
|
/**
|
|
171
213
|
* 根据jsonschema初始化自定义表格列
|
|
@@ -200,6 +242,43 @@ export class GridController extends MDControlController {
|
|
|
200
242
|
];
|
|
201
243
|
}
|
|
202
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* 初始化数据导出对象
|
|
247
|
+
* @author zzq
|
|
248
|
+
* @date 2024-03-20 16:10:17
|
|
249
|
+
* @protected
|
|
250
|
+
* @return {*} {Promise<void>}
|
|
251
|
+
*/
|
|
252
|
+
async initExportData() {
|
|
253
|
+
var _a;
|
|
254
|
+
if (this.model.dedataExportId) {
|
|
255
|
+
this.dataExport = (_a = this.dataEntity.appDEDataExports) === null || _a === void 0 ? void 0 : _a.find(dataExport => {
|
|
256
|
+
return dataExport.id === this.model.dedataExportId;
|
|
257
|
+
});
|
|
258
|
+
if (this.dataExport) {
|
|
259
|
+
this.allExportColumns = await this.findAllExportColumns(this.dataExport);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (this.allExportColumns.length > 0) {
|
|
263
|
+
this.allExportColumns.forEach((exportColumn) => {
|
|
264
|
+
if (exportColumn.codeListItems) {
|
|
265
|
+
this.allExportCodelistMap.set(exportColumn.appDEFieldId, exportColumn.codeListItems);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
this.dataExportParam.fields = this.allExportColumns.map(x => x.appDEFieldId);
|
|
269
|
+
this.dataExportParam.header = this.allExportColumns.map(x => x.caption);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
Object.keys(this.fieldColumns).forEach((key) => {
|
|
273
|
+
if (this.fieldColumns[key].codeList) {
|
|
274
|
+
this.allExportCodelistMap.set(key, this.fieldColumns[key].codeListItems);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
const { degridColumns = [] } = this.model;
|
|
278
|
+
this.dataExportParam.fields = degridColumns.map(item => item.id);
|
|
279
|
+
this.dataExportParam.header = degridColumns.map(item => item.caption);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
203
282
|
/**
|
|
204
283
|
* 初始化表格分组
|
|
205
284
|
* @author lxm
|
|
@@ -450,6 +529,9 @@ export class GridController extends MDControlController {
|
|
|
450
529
|
if (!isValid) {
|
|
451
530
|
throw new RuntimeError('行数据校验不通过,保存取消');
|
|
452
531
|
}
|
|
532
|
+
if (this.model.enableRowEditChangedOnly) {
|
|
533
|
+
data = rowState.getDiffData();
|
|
534
|
+
}
|
|
453
535
|
let res;
|
|
454
536
|
const deName = calcDeCodeNameById(this.model.appDataEntityId);
|
|
455
537
|
const tempContext = this.context.clone();
|
|
@@ -471,6 +553,8 @@ export class GridController extends MDControlController {
|
|
|
471
553
|
const index = this.findRowStateIndex(data);
|
|
472
554
|
this.state.items.splice(index, 1, res.data);
|
|
473
555
|
rowState.data = res.data;
|
|
556
|
+
// 保存结束后更新旧数据
|
|
557
|
+
rowState.oldData = res.data.clone();
|
|
474
558
|
rowState.modified = false;
|
|
475
559
|
this.gridStateNotify(rowState, GridNotifyState.SAVE);
|
|
476
560
|
await this._evt.emit('onSaveSuccess', undefined);
|
|
@@ -840,7 +924,75 @@ export class GridController extends MDControlController {
|
|
|
840
924
|
if (exportColumnsPromises) {
|
|
841
925
|
return Promise.all(exportColumnsPromises);
|
|
842
926
|
}
|
|
843
|
-
return
|
|
927
|
+
return [];
|
|
928
|
+
}
|
|
929
|
+
/**
|
|
930
|
+
* 格式化导出数据
|
|
931
|
+
* @return {string}
|
|
932
|
+
* @author: zzq
|
|
933
|
+
* @Date: 2024-03-20 17:54:16
|
|
934
|
+
*/
|
|
935
|
+
formatExcelData(data) {
|
|
936
|
+
const { fields = [] } = this.dataExportParam;
|
|
937
|
+
const cloneData = clone(data.map(item => {
|
|
938
|
+
return fields.reduce((obj, key) => {
|
|
939
|
+
obj[key] = item[key];
|
|
940
|
+
return obj;
|
|
941
|
+
}, {});
|
|
942
|
+
}));
|
|
943
|
+
cloneData.forEach(item => {
|
|
944
|
+
Object.keys(item).forEach((key) => {
|
|
945
|
+
var _a;
|
|
946
|
+
let value = item[key];
|
|
947
|
+
const exportColumn = this.allExportColumns.find(c => c.appDEFieldId === key);
|
|
948
|
+
const fieldColumnC = this.fieldColumns[key];
|
|
949
|
+
const format = (exportColumn === null || exportColumn === void 0 ? void 0 : exportColumn.format) || (fieldColumnC === null || fieldColumnC === void 0 ? void 0 : fieldColumnC.valueFormat);
|
|
950
|
+
const unitName = (fieldColumnC === null || fieldColumnC === void 0 ? void 0 : fieldColumnC.model.unitName) || '';
|
|
951
|
+
if (this.allExportCodelistMap.get(key)) {
|
|
952
|
+
value =
|
|
953
|
+
((_a = this.allExportCodelistMap.get(key).find(x => x.value === item[key])) === null || _a === void 0 ? void 0 : _a.text) || value;
|
|
954
|
+
}
|
|
955
|
+
else {
|
|
956
|
+
value = this.formatValue(format, value) + unitName;
|
|
957
|
+
}
|
|
958
|
+
item[key] = value;
|
|
959
|
+
});
|
|
960
|
+
});
|
|
961
|
+
return cloneData;
|
|
962
|
+
}
|
|
963
|
+
/**
|
|
964
|
+
* 获取导出数据
|
|
965
|
+
* @return {Promise<IData[]>}
|
|
966
|
+
* @author: zzq
|
|
967
|
+
* @Date: 2024-03-20 17:54:16
|
|
968
|
+
*/
|
|
969
|
+
async getExportData(params) {
|
|
970
|
+
var _a;
|
|
971
|
+
const { type } = params;
|
|
972
|
+
let data = [];
|
|
973
|
+
// 未指定类型时,默认导出当前页
|
|
974
|
+
if (!type || type === 'activatedPage') {
|
|
975
|
+
data = this.state.rows.map(row => row.data);
|
|
976
|
+
}
|
|
977
|
+
else if (type === 'maxRowCount' || type === 'customPage') {
|
|
978
|
+
const { size } = this.state;
|
|
979
|
+
const { startPage, endPage } = params;
|
|
980
|
+
const viewParam = type === 'customPage'
|
|
981
|
+
? {
|
|
982
|
+
page: 0,
|
|
983
|
+
offset: (startPage - 1) * size,
|
|
984
|
+
size: (endPage - startPage + 1) * size,
|
|
985
|
+
}
|
|
986
|
+
: { size: ((_a = this.dataExport) === null || _a === void 0 ? void 0 : _a.maxRowCount) || 1000, page: 0 };
|
|
987
|
+
data = await this.loadData({ viewParam });
|
|
988
|
+
}
|
|
989
|
+
else if (type === 'selectedRows') {
|
|
990
|
+
data = this.getData();
|
|
991
|
+
}
|
|
992
|
+
if (data.length === 0) {
|
|
993
|
+
throw new RuntimeError('无导出数据');
|
|
994
|
+
}
|
|
995
|
+
return data;
|
|
844
996
|
}
|
|
845
997
|
/**
|
|
846
998
|
* 数据导出
|
|
@@ -849,116 +1001,15 @@ export class GridController extends MDControlController {
|
|
|
849
1001
|
* @returns {*} {Promise<void>}
|
|
850
1002
|
* @memberof MDControlController
|
|
851
1003
|
*/
|
|
852
|
-
async exportData(
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
this.dataExport = (_a = this.dataEntity.appDEDataExports) === null || _a === void 0 ? void 0 : _a.find(dataExport => {
|
|
857
|
-
return dataExport.id === this.model.dedataExportId;
|
|
858
|
-
});
|
|
859
|
-
if (this.dataExport) {
|
|
860
|
-
this.allExportColumns = await this.findAllExportColumns(this.dataExport);
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
|
-
// 数据格式化
|
|
864
|
-
const formatExcelData = (data) => {
|
|
865
|
-
var _a;
|
|
866
|
-
const codeListMap = new Map();
|
|
867
|
-
if (this.allExportColumns && this.allExportColumns.length > 0) {
|
|
868
|
-
(_a = this.allExportColumns) === null || _a === void 0 ? void 0 : _a.forEach((exportColumn) => {
|
|
869
|
-
if (exportColumn.codeListItems) {
|
|
870
|
-
codeListMap.set(exportColumn.appDEFieldId, exportColumn.codeListItems);
|
|
871
|
-
}
|
|
872
|
-
});
|
|
873
|
-
}
|
|
874
|
-
else {
|
|
875
|
-
Object.keys(this.fieldColumns).forEach((key) => {
|
|
876
|
-
if (this.fieldColumns[key].codeList) {
|
|
877
|
-
codeListMap.set(key, this.fieldColumns[key].codeListItems);
|
|
878
|
-
}
|
|
879
|
-
});
|
|
880
|
-
}
|
|
881
|
-
const cloneData = clone(data.map(item => {
|
|
882
|
-
return item.getOrigin();
|
|
883
|
-
}));
|
|
884
|
-
cloneData.forEach(item => {
|
|
885
|
-
const fields = Object.keys(item);
|
|
886
|
-
fields.forEach((key) => {
|
|
887
|
-
var _a;
|
|
888
|
-
let value = item[key];
|
|
889
|
-
const fieldColumnC = this.fieldColumns[key];
|
|
890
|
-
if (codeListMap.get(key)) {
|
|
891
|
-
value =
|
|
892
|
-
((_a = codeListMap.get(key).find(_item => {
|
|
893
|
-
return _item.value === item[key];
|
|
894
|
-
})) === null || _a === void 0 ? void 0 : _a.text) || value;
|
|
895
|
-
}
|
|
896
|
-
else if (fieldColumnC) {
|
|
897
|
-
value =
|
|
898
|
-
fieldColumnC.formatValue(value) +
|
|
899
|
-
(fieldColumnC.model.unitName || '');
|
|
900
|
-
}
|
|
901
|
-
item[key] = value;
|
|
902
|
-
});
|
|
903
|
-
});
|
|
904
|
-
return cloneData;
|
|
905
|
-
};
|
|
906
|
-
// 获取导出数据
|
|
907
|
-
const getExportData = async () => {
|
|
908
|
-
var _a;
|
|
909
|
-
const type = (_a = _args.params) === null || _a === void 0 ? void 0 : _a.type;
|
|
910
|
-
let data = [];
|
|
911
|
-
// 未指定类型时,默认导出当前页
|
|
912
|
-
if (!type || type === 'activatedPage') {
|
|
913
|
-
data = this.state.rows.map(row => row.data);
|
|
914
|
-
}
|
|
915
|
-
else if (type === 'maxRowCount' || type === 'customPage') {
|
|
916
|
-
const { size } = this.state;
|
|
917
|
-
const { startPage, endPage } = _args.params;
|
|
918
|
-
const params = type === 'customPage'
|
|
919
|
-
? {
|
|
920
|
-
page: 0,
|
|
921
|
-
offset: (startPage - 1) * size,
|
|
922
|
-
size: (endPage - startPage + 1) * size,
|
|
923
|
-
}
|
|
924
|
-
: { size: 1000, page: 0 };
|
|
925
|
-
data = await this.loadData({ viewParam: params });
|
|
926
|
-
}
|
|
927
|
-
else if (type === 'selectedRows') {
|
|
928
|
-
data = this.getData();
|
|
929
|
-
}
|
|
930
|
-
if (data.length === 0) {
|
|
931
|
-
throw new RuntimeError('无导出数据');
|
|
932
|
-
}
|
|
933
|
-
return formatExcelData(data);
|
|
934
|
-
};
|
|
935
|
-
// 一维数组转成二维数组
|
|
936
|
-
const formatArrayData = (filterVal, tableData) => {
|
|
937
|
-
return tableData.map(v => {
|
|
938
|
-
return filterVal.map(j => {
|
|
939
|
-
return v[j];
|
|
940
|
-
});
|
|
941
|
-
});
|
|
942
|
-
};
|
|
943
|
-
// 头部id数组
|
|
944
|
-
let filterVal = [];
|
|
945
|
-
// 表头数组
|
|
946
|
-
let header = [];
|
|
947
|
-
if (this.allExportColumns && this.allExportColumns.length > 0) {
|
|
948
|
-
filterVal = this.allExportColumns.map((column) => column.appDEFieldId);
|
|
949
|
-
header = this.allExportColumns.map((column) => column.caption);
|
|
950
|
-
}
|
|
951
|
-
else {
|
|
952
|
-
const { degridColumns } = this.model;
|
|
953
|
-
if (!degridColumns) {
|
|
954
|
-
throw new RuntimeError('无表格列');
|
|
955
|
-
}
|
|
956
|
-
filterVal = degridColumns.map(item => item.id);
|
|
957
|
-
header = degridColumns.map(item => item.caption);
|
|
1004
|
+
async exportData(args) {
|
|
1005
|
+
const { header } = this.dataExportParam;
|
|
1006
|
+
if (!header) {
|
|
1007
|
+
throw new RuntimeError('无表格列');
|
|
958
1008
|
}
|
|
959
|
-
|
|
960
|
-
const
|
|
961
|
-
|
|
1009
|
+
const data = await this.getExportData(args.params);
|
|
1010
|
+
const formatData = this.formatExcelData(data);
|
|
1011
|
+
const table = formatData.map(v => Object.values(v));
|
|
1012
|
+
await exportData(header, table, this.model.logicName);
|
|
962
1013
|
}
|
|
963
1014
|
/**
|
|
964
1015
|
* 计算默认值并返回一个对象,对象里的属性就是要填充的默认值
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/kanban/kanban.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"kanban.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/kanban/kanban.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { calcDeCodeNameById } from '../../../model';
|
|
|
4
4
|
import { DataViewControlController } from '../data-view';
|
|
5
5
|
import { KanbanService } from './kanban.service';
|
|
6
6
|
import { UIActionUtil } from '../../../ui-action';
|
|
7
|
+
import { ButtonContainerState, UIActionButtonState } from '../../utils';
|
|
7
8
|
export class KanbanController extends DataViewControlController {
|
|
8
9
|
/**
|
|
9
10
|
* 允许调整顺序
|
|
@@ -37,6 +38,7 @@ export class KanbanController extends DataViewControlController {
|
|
|
37
38
|
this.state.selectGroupKey = '';
|
|
38
39
|
// 支持调整顺序和分组时
|
|
39
40
|
this.state.draggable = this.enableEditOrder || this.enableEditGroup;
|
|
41
|
+
this.state.uaState = {};
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* 初始化
|
|
@@ -82,9 +84,38 @@ export class KanbanController extends DataViewControlController {
|
|
|
82
84
|
items.sort((a, b) => isAsc ? a[sortField] - b[sortField] : b[sortField] - a[sortField]);
|
|
83
85
|
}
|
|
84
86
|
async afterLoad(args, items) {
|
|
87
|
+
var _a;
|
|
85
88
|
// 每次加载回来先本地排序,把数据的排序属性规范一下
|
|
86
89
|
this.sortItems(this.state.items);
|
|
87
|
-
|
|
90
|
+
super.afterLoad(args, items);
|
|
91
|
+
const actions = [];
|
|
92
|
+
(_a = this.model.dedataViewItems) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
|
|
93
|
+
if (item.itemType === 'ACTIONITEM') {
|
|
94
|
+
if (item.deuiactionGroup && item.deuiactionGroup.uiactionGroupDetails) {
|
|
95
|
+
actions.push(...item.deuiactionGroup.uiactionGroupDetails);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
if (actions && actions.length > 0) {
|
|
100
|
+
items.forEach((item) => {
|
|
101
|
+
const containerState = new ButtonContainerState();
|
|
102
|
+
actions.forEach((action) => {
|
|
103
|
+
const actionid = action.uiactionId;
|
|
104
|
+
if (actionid) {
|
|
105
|
+
const buttonState = new UIActionButtonState(action.id, this.context.srfappid, actionid);
|
|
106
|
+
containerState.addState(action.id, buttonState);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
this.state.uaState[item.srfkey] = containerState;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
items.forEach((item) => {
|
|
113
|
+
if (this.state.uaState[item.srfkey] &&
|
|
114
|
+
Object.keys(this.state.uaState[item.srfkey]).length > 0) {
|
|
115
|
+
this.state.uaState[item.srfkey].update(this.context, item.getOrigin(), this.model.appDataEntityId);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return items;
|
|
88
119
|
}
|
|
89
120
|
/**
|
|
90
121
|
* 当展开批操作工具栏时需进行行点击拦截
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-searchcond.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/use-searchcond.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-searchcond.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/use-searchcond.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKlE;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,EAAE,CAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,CA+BtD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,CA+BrD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EAAE,GACzB,KAAK,EAAE,GAAG,SAAS,CAoBrB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { RuntimeError, recursiveIterate } from '@ibiz-template/core';
|
|
2
2
|
import { isNil } from 'ramda';
|
|
3
|
+
import { ValueOP } from '../../../constant';
|
|
4
|
+
const ExcludeOPs = [ValueOP.IS_NULL, ValueOP.IS_NOT_NULL];
|
|
3
5
|
/**
|
|
4
6
|
* 获取初始过滤项树节点数据集合
|
|
5
7
|
* @return {*}
|
|
@@ -98,7 +100,8 @@ export function calcSearchConds(filterNodes) {
|
|
|
98
100
|
let hasError = false; // 是否有过滤项格式不正确
|
|
99
101
|
recursiveIterate(filterNodes[0], (node) => {
|
|
100
102
|
if (node.leaf) {
|
|
101
|
-
if (node.field && node.valueOP && !isNil(node.value))
|
|
103
|
+
if ((node.field && node.valueOP && !isNil(node.value)) ||
|
|
104
|
+
(node.field && node.valueOP && ExcludeOPs.includes(node.valueOP))) {
|
|
102
105
|
hasFilter = true;
|
|
103
106
|
}
|
|
104
107
|
else {
|
|
@@ -126,7 +126,7 @@ export class MDViewEngine extends ViewEngineBase {
|
|
|
126
126
|
handleContextParams() {
|
|
127
127
|
super.handleContextParams();
|
|
128
128
|
// 若上下文未指定,多数据视图默认开启简单模式
|
|
129
|
-
if (this.view.context.srfsimple
|
|
129
|
+
if (!this.view.context.srfsimple) {
|
|
130
130
|
this.view.context.srfsimple = true;
|
|
131
131
|
}
|
|
132
132
|
}
|