@ibiz-template/runtime 0.4.14 → 0.4.16
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 +364 -7
- package/dist/index.system.min.js +2 -2
- package/out/app-hub.js +1 -1
- package/out/controller/control/gantt/gantt.controller.d.ts +34 -1
- package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
- package/out/controller/control/gantt/gantt.controller.js +74 -0
- package/out/controller/control/gantt/gantt.service.d.ts +13 -0
- package/out/controller/control/gantt/gantt.service.d.ts.map +1 -1
- package/out/controller/control/gantt/gantt.service.js +14 -0
- package/out/controller/control/kanban/kanban.controller.d.ts +104 -2
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
- package/out/controller/control/kanban/kanban.controller.js +220 -0
- package/out/hub/config/app-config-service.d.ts +1 -0
- package/out/hub/config/app-config-service.d.ts.map +1 -1
- package/out/hub/config/app-config-service.js +1 -0
- package/out/hub/config/app-view-config-service.d.ts +20 -1
- package/out/hub/config/app-view-config-service.d.ts.map +1 -1
- package/out/hub/config/app-view-config-service.js +39 -6
- package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts +8 -0
- package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts +27 -0
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-gantt.state.d.ts +23 -0
- package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-kanban.state.d.ts +29 -0
- package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
- package/out/interface/provider/i-grid-column.provider.d.ts +2 -3
- package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
- package/out/service/service/control/md-control.service.d.ts +10 -0
- package/out/service/service/control/md-control.service.d.ts.map +1 -1
- package/out/service/service/control/md-control.service.js +16 -0
- package/package.json +4 -4
- package/src/app-hub.ts +1 -1
- package/src/controller/control/gantt/gantt.controller.ts +91 -0
- package/src/controller/control/gantt/gantt.service.ts +26 -1
- package/src/controller/control/kanban/kanban.controller.ts +258 -1
- package/src/hub/config/app-config-service.ts +1 -0
- package/src/hub/config/app-view-config-service.ts +39 -6
- package/src/interface/common/i-app-view-config-service/i-app-view-config-service.ts +8 -0
- package/src/interface/controller/controller/control/i-kanban.controller.ts +31 -1
- package/src/interface/controller/state/control/i-gantt.state.ts +26 -0
- package/src/interface/controller/state/control/i-kanban.state.ts +33 -0
- package/src/interface/provider/i-grid-column.provider.ts +7 -3
- package/src/service/service/control/md-control.service.ts +24 -0
package/out/app-hub.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDEGantt, IDETreeColumn, IDETreeNode } from '@ibiz/model-core';
|
|
2
|
-
import { IGanttController, IGanttEvent, IGanttNodeData, IGanttState, IGridColumnProvider, MDCtrlLoadParams } from '../../../interface';
|
|
2
|
+
import { IGanttController, IGanttEvent, IGanttNodeData, IGanttState, IGanttStyle, IGridColumnProvider, MDCtrlLoadParams } from '../../../interface';
|
|
3
3
|
import { MDControlController } from '../../common';
|
|
4
4
|
import { GanttService } from './gantt.service';
|
|
5
5
|
import { ContextMenuController } from '../context-menu';
|
|
@@ -78,6 +78,14 @@ export declare class GanttController extends MDControlController<IDEGantt, IGant
|
|
|
78
78
|
* @protected
|
|
79
79
|
*/
|
|
80
80
|
protected initState(): void;
|
|
81
|
+
/**
|
|
82
|
+
* 当数据放生变更时,若为当前应用实体数据。则多数据部件进行刷新
|
|
83
|
+
* 临时重写 防止错误刷新整个甘特图
|
|
84
|
+
* @protected
|
|
85
|
+
* @param {IData} msg
|
|
86
|
+
* @memberof GanttController
|
|
87
|
+
*/
|
|
88
|
+
protected onDataChange(msg: IData): void;
|
|
81
89
|
protected onCreated(): Promise<void>;
|
|
82
90
|
/**
|
|
83
91
|
* 初始化表格列
|
|
@@ -110,6 +118,13 @@ export declare class GanttController extends MDControlController<IDEGantt, IGant
|
|
|
110
118
|
* @memberof GanttController
|
|
111
119
|
*/
|
|
112
120
|
protected calcColumnFixed(): void;
|
|
121
|
+
/**
|
|
122
|
+
* 设置甘特图样式
|
|
123
|
+
*
|
|
124
|
+
* @param {IGanttStyle} style
|
|
125
|
+
* @memberof GanttController
|
|
126
|
+
*/
|
|
127
|
+
setGanttStyle(style: IGanttStyle): void;
|
|
113
128
|
/**
|
|
114
129
|
* 加载
|
|
115
130
|
*
|
|
@@ -204,6 +219,24 @@ export declare class GanttController extends MDControlController<IDEGantt, IGant
|
|
|
204
219
|
context: IContext;
|
|
205
220
|
params: IParams;
|
|
206
221
|
};
|
|
222
|
+
/**
|
|
223
|
+
* 转化节点数据项
|
|
224
|
+
* vo -> do
|
|
225
|
+
* @param {IDETreeNode} nodeModel 节点模型
|
|
226
|
+
* @param {IData} data 数据
|
|
227
|
+
* @memberof GanttController
|
|
228
|
+
*/
|
|
229
|
+
transformNodeDataItem(nodeModel: IDETreeNode, data: IData): IData;
|
|
230
|
+
/**
|
|
231
|
+
* 更新节点数据
|
|
232
|
+
*
|
|
233
|
+
* @param {(IGanttNodeData | IData)} nodeData 节点数据
|
|
234
|
+
* @param {IData} data 更新数据
|
|
235
|
+
* @param {boolean} [isTransformData=false] 是否转化数据项
|
|
236
|
+
* @return {*}
|
|
237
|
+
* @memberof GanttController
|
|
238
|
+
*/
|
|
239
|
+
updateNodeData(nodeData: IGanttNodeData | IData, data: IData, isTransformData?: boolean): Promise<void>;
|
|
207
240
|
/**
|
|
208
241
|
* 刷新指定树节点的子节点数据
|
|
209
242
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
|
+
/* eslint-disable no-prototype-builtins */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
4
|
import { recursiveIterate } from '@ibiz-template/core';
|
|
3
5
|
import { MDControlController } from '../../common';
|
|
4
6
|
import { GanttService } from './gantt.service';
|
|
@@ -76,7 +78,16 @@ export class GanttController extends MDControlController {
|
|
|
76
78
|
this.state.query = '';
|
|
77
79
|
this.state.columnStates = [];
|
|
78
80
|
this.state.rootNodes = [];
|
|
81
|
+
this.state.ganttStyle = {};
|
|
79
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* 当数据放生变更时,若为当前应用实体数据。则多数据部件进行刷新
|
|
85
|
+
* 临时重写 防止错误刷新整个甘特图
|
|
86
|
+
* @protected
|
|
87
|
+
* @param {IData} msg
|
|
88
|
+
* @memberof GanttController
|
|
89
|
+
*/
|
|
90
|
+
onDataChange(msg) { }
|
|
80
91
|
async onCreated() {
|
|
81
92
|
var _a, _b;
|
|
82
93
|
await super.onCreated();
|
|
@@ -192,6 +203,15 @@ export class GanttController extends MDControlController {
|
|
|
192
203
|
}
|
|
193
204
|
});
|
|
194
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* 设置甘特图样式
|
|
208
|
+
*
|
|
209
|
+
* @param {IGanttStyle} style
|
|
210
|
+
* @memberof GanttController
|
|
211
|
+
*/
|
|
212
|
+
setGanttStyle(style) {
|
|
213
|
+
this.state.ganttStyle = style;
|
|
214
|
+
}
|
|
195
215
|
/**
|
|
196
216
|
* 加载
|
|
197
217
|
*
|
|
@@ -404,6 +424,60 @@ export class GanttController extends MDControlController {
|
|
|
404
424
|
params: Object.assign(Object.assign({}, this.params), (nodeData.params || {})),
|
|
405
425
|
};
|
|
406
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* 转化节点数据项
|
|
429
|
+
* vo -> do
|
|
430
|
+
* @param {IDETreeNode} nodeModel 节点模型
|
|
431
|
+
* @param {IData} data 数据
|
|
432
|
+
* @memberof GanttController
|
|
433
|
+
*/
|
|
434
|
+
transformNodeDataItem(nodeModel, data) {
|
|
435
|
+
var _a;
|
|
436
|
+
const dataItem = {};
|
|
437
|
+
(_a = nodeModel.detreeNodeDataItems) === null || _a === void 0 ? void 0 : _a.forEach(item => {
|
|
438
|
+
if (item.id &&
|
|
439
|
+
item.appDEFieldId &&
|
|
440
|
+
data.hasOwnProperty(item.id.toLowerCase())) {
|
|
441
|
+
Object.assign(dataItem, {
|
|
442
|
+
[item.appDEFieldId.toLowerCase()]: data[item.id.toLowerCase()],
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
return dataItem;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* 更新节点数据
|
|
450
|
+
*
|
|
451
|
+
* @param {(IGanttNodeData | IData)} nodeData 节点数据
|
|
452
|
+
* @param {IData} data 更新数据
|
|
453
|
+
* @param {boolean} [isTransformData=false] 是否转化数据项
|
|
454
|
+
* @return {*}
|
|
455
|
+
* @memberof GanttController
|
|
456
|
+
*/
|
|
457
|
+
async updateNodeData(nodeData, data, isTransformData = false) {
|
|
458
|
+
const key = nodeData.srfkey ? 'srfkey' : 'id';
|
|
459
|
+
const currentNode = this.state.items.find(item => item[key] === nodeData[key]);
|
|
460
|
+
if (!currentNode || !currentNode.srfkey) {
|
|
461
|
+
ibiz.log.error('找不到对应的动态实体树节点数据', nodeData);
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
const nodeModel = this.getNodeModel(currentNode.nodeId);
|
|
465
|
+
if (nodeModel) {
|
|
466
|
+
const newData = isTransformData
|
|
467
|
+
? this.transformNodeDataItem(nodeModel, data)
|
|
468
|
+
: data;
|
|
469
|
+
if (Object.keys(newData).length > 0) {
|
|
470
|
+
const [, entityCodename] = nodeModel.appDataEntityId.split('.');
|
|
471
|
+
const tempContext = Object.assign(this.context.clone(), {
|
|
472
|
+
[entityCodename]: currentNode.srfkey,
|
|
473
|
+
});
|
|
474
|
+
const response = await this.service.execDeService(nodeModel.appDataEntityId, 'update', tempContext, newData);
|
|
475
|
+
if (response.status === 200) {
|
|
476
|
+
this.refreshNodeChildren(nodeData, true);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
407
481
|
/**
|
|
408
482
|
* 刷新指定树节点的子节点数据
|
|
409
483
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IDETreeCodeListNode, IDETreeDataSetNode, IDETreeNode, IDETreeNodeRS } from '@ibiz/model-core';
|
|
2
|
+
import { IHttpResponse } from '@ibiz-template/core';
|
|
2
3
|
import { IGanttNodeData } from '../../../interface';
|
|
3
4
|
import { TreeFetchOpts, TreeService } from '../tree';
|
|
4
5
|
/**
|
|
@@ -11,6 +12,18 @@ import { TreeFetchOpts, TreeService } from '../tree';
|
|
|
11
12
|
* @extends {TreeService}
|
|
12
13
|
*/
|
|
13
14
|
export declare class GanttService extends TreeService {
|
|
15
|
+
/**
|
|
16
|
+
* 执行实体服务
|
|
17
|
+
*
|
|
18
|
+
* @protected
|
|
19
|
+
* @param {string} appDataEntityId 实体标识
|
|
20
|
+
* @param {string} actionName 行为标识
|
|
21
|
+
* @param {IContext} context 上下文
|
|
22
|
+
* @param {IParams} params 参数
|
|
23
|
+
* @return {*} {Promise<IHttpResponse<IData>>}
|
|
24
|
+
* @memberof GanttService
|
|
25
|
+
*/
|
|
26
|
+
execDeService(appDataEntityId: string, actionName: string, context: IContext, params: IParams): Promise<IHttpResponse<IData>>;
|
|
14
27
|
/**
|
|
15
28
|
* 获取子节点数据
|
|
16
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gantt.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gantt.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAc,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOrD;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C;;;;;;;;;;OAUG;IACH,aAAa,CACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAShC;;;;;;;;OAQG;IACG,oBAAoB,CACxB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;IA8CxC;;;;;;;;;;;OAWG;cACa,yBAAyB,CACvC,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;IAoE5B;;;;;;;;;;;OAWG;cACa,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,CAAC;IAU1B;;;;;;;;;;;OAWG;cACa,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;IA6C5B;;;;;;;;;;;OAWG;cACa,yBAAyB,CACvC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;CAmC7B"}
|
|
@@ -13,6 +13,20 @@ import { GanttCodeListNodeData, GanttDataSetNodeData, GanttStaticNodeData, } fro
|
|
|
13
13
|
* @extends {TreeService}
|
|
14
14
|
*/
|
|
15
15
|
export class GanttService extends TreeService {
|
|
16
|
+
/**
|
|
17
|
+
* 执行实体服务
|
|
18
|
+
*
|
|
19
|
+
* @protected
|
|
20
|
+
* @param {string} appDataEntityId 实体标识
|
|
21
|
+
* @param {string} actionName 行为标识
|
|
22
|
+
* @param {IContext} context 上下文
|
|
23
|
+
* @param {IParams} params 参数
|
|
24
|
+
* @return {*} {Promise<IHttpResponse<IData>>}
|
|
25
|
+
* @memberof GanttService
|
|
26
|
+
*/
|
|
27
|
+
execDeService(appDataEntityId, actionName, context, params) {
|
|
28
|
+
return this.app.deService.exec(appDataEntityId, actionName, context, params);
|
|
29
|
+
}
|
|
16
30
|
/**
|
|
17
31
|
* 获取子节点数据
|
|
18
32
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IDEKanban } from '@ibiz/model-core';
|
|
2
|
-
import { IDragChangeInfo, IKanbanController, IKanbanEvent, IKanbanState, MDCtrlLoadParams } from '../../../interface';
|
|
1
|
+
import { IDEKanban, IUIActionGroupDetail } from '@ibiz/model-core';
|
|
2
|
+
import { IDragChangeInfo, IKanbanController, IKanbanEvent, IKanbanGroupState, IKanbanState, IToolbarController, MDCtrlLoadParams } from '../../../interface';
|
|
3
3
|
import { ControlVO } from '../../../service';
|
|
4
4
|
import { DataViewControlController } from '../data-view';
|
|
5
5
|
import { KanbanService } from './kanban.service';
|
|
@@ -45,6 +45,43 @@ export declare class KanbanController extends DataViewControlController<IDEKanba
|
|
|
45
45
|
*/
|
|
46
46
|
sortItems(items: IData[]): void;
|
|
47
47
|
afterLoad(args: MDCtrlLoadParams, items: IData[]): Promise<IData[]>;
|
|
48
|
+
/**
|
|
49
|
+
* 当展开批操作工具栏时需进行行点击拦截
|
|
50
|
+
*
|
|
51
|
+
* @param {IData} data
|
|
52
|
+
* @return {*} {Promise<void>}
|
|
53
|
+
* @memberof KanbanController
|
|
54
|
+
*/
|
|
55
|
+
onRowClick(data: IData): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* 点击新建时设置选中分组
|
|
58
|
+
*
|
|
59
|
+
* @param {MouseEvent} event
|
|
60
|
+
* @param {(string | number)} group
|
|
61
|
+
* @memberof KanbanController
|
|
62
|
+
*/
|
|
63
|
+
onClickNew(event: MouseEvent, group: string | number): void;
|
|
64
|
+
/**
|
|
65
|
+
* 分组工具栏需设置选中分组
|
|
66
|
+
*
|
|
67
|
+
* @param {IUIActionGroupDetail} detail
|
|
68
|
+
* @param {MouseEvent} event
|
|
69
|
+
* @param {IKanbanGroupState} group
|
|
70
|
+
* @return {*} {Promise<void>}
|
|
71
|
+
* @memberof KanbanController
|
|
72
|
+
*/
|
|
73
|
+
onGroupToolbarClick(detail: IUIActionGroupDetail, event: MouseEvent, group: IKanbanGroupState): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* 分组行为项点击,需携带分组标识
|
|
76
|
+
*
|
|
77
|
+
* @param {IUIActionGroupDetail} detail
|
|
78
|
+
* @param {IData} item
|
|
79
|
+
* @param {MouseEvent} event
|
|
80
|
+
* @param {IKanbanGroupState} group
|
|
81
|
+
* @return {*} {Promise<void>}
|
|
82
|
+
* @memberof KanbanController
|
|
83
|
+
*/
|
|
84
|
+
onGroupActionClick(detail: IUIActionGroupDetail, item: IData, event: MouseEvent, group: IKanbanGroupState): Promise<void>;
|
|
48
85
|
handleDataGroup(): Promise<void>;
|
|
49
86
|
/**
|
|
50
87
|
* 处理自动分组
|
|
@@ -75,5 +112,70 @@ export declare class KanbanController extends DataViewControlController<IDEKanba
|
|
|
75
112
|
* @return {*} {Promise<void>}
|
|
76
113
|
*/
|
|
77
114
|
updateChangedItems(changedItems: ControlVO[]): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* 获取是否全屏
|
|
117
|
+
*
|
|
118
|
+
* @return {*} {boolean}
|
|
119
|
+
* @memberof KanbanController
|
|
120
|
+
*/
|
|
121
|
+
getFullscreen(): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* 触发全屏
|
|
124
|
+
*
|
|
125
|
+
* @param {IData} container
|
|
126
|
+
* @memberof KanbanController
|
|
127
|
+
*/
|
|
128
|
+
onFullScreen(container: IData): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 设置选中分组标识
|
|
131
|
+
*
|
|
132
|
+
* @param {(string | number)} key
|
|
133
|
+
* @memberof KanbanController
|
|
134
|
+
*/
|
|
135
|
+
setSelectGroup(key: string | number): void;
|
|
136
|
+
/**
|
|
137
|
+
* 设置分组控制器
|
|
138
|
+
*
|
|
139
|
+
* @param {string} groupKey
|
|
140
|
+
* @param {('quickToolbarController' | 'batchToolbarController')} name
|
|
141
|
+
* @param {IToolbarController} c
|
|
142
|
+
* @memberof KanbanController
|
|
143
|
+
*/
|
|
144
|
+
setGroupController(groupKey: string | number, name: 'quickToolbarController' | 'batchToolbarController', c: IToolbarController): void;
|
|
145
|
+
/**
|
|
146
|
+
* 设置工具栏hook
|
|
147
|
+
*
|
|
148
|
+
* @memberof KanbanController
|
|
149
|
+
*/
|
|
150
|
+
setToolbarHooks(): void;
|
|
151
|
+
/**
|
|
152
|
+
* 设置快捷工具栏点击事件hook
|
|
153
|
+
*
|
|
154
|
+
* @param {string} name
|
|
155
|
+
* @param {IToolbarController} c
|
|
156
|
+
* @memberof KanbanController
|
|
157
|
+
*/
|
|
158
|
+
setQuickToolbarClickHook(name: string, c: IToolbarController): void;
|
|
159
|
+
/**
|
|
160
|
+
* 设置批工具栏点击事件hook
|
|
161
|
+
*
|
|
162
|
+
* @param {string} name
|
|
163
|
+
* @param {IToolbarController} c
|
|
164
|
+
* @memberof KanbanController
|
|
165
|
+
*/
|
|
166
|
+
setBatchToolbarClickHook(name: string, c: IToolbarController): void;
|
|
167
|
+
/**
|
|
168
|
+
* 打开批操作工具栏
|
|
169
|
+
*
|
|
170
|
+
* @param {string} groupKey
|
|
171
|
+
* @memberof KanbanController
|
|
172
|
+
*/
|
|
173
|
+
openBatch(groupKey: string): void;
|
|
174
|
+
/**
|
|
175
|
+
* 关闭批操作工具栏
|
|
176
|
+
*
|
|
177
|
+
* @memberof KanbanController
|
|
178
|
+
*/
|
|
179
|
+
closeBatch(): void;
|
|
78
180
|
}
|
|
79
181
|
//# sourceMappingURL=kanban.controller.d.ts.map
|
|
@@ -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,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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"}
|
|
@@ -3,6 +3,7 @@ import { isNil } from 'ramda';
|
|
|
3
3
|
import { calcDeCodeNameById } from '../../../model';
|
|
4
4
|
import { DataViewControlController } from '../data-view';
|
|
5
5
|
import { KanbanService } from './kanban.service';
|
|
6
|
+
import { UIActionUtil } from '../../../ui-action';
|
|
6
7
|
export class KanbanController extends DataViewControlController {
|
|
7
8
|
/**
|
|
8
9
|
* 允许调整顺序
|
|
@@ -32,6 +33,8 @@ export class KanbanController extends DataViewControlController {
|
|
|
32
33
|
super.initState();
|
|
33
34
|
this.state.size = this.model.pagingSize || 1000;
|
|
34
35
|
this.state.updating = false;
|
|
36
|
+
this.state.batching = false;
|
|
37
|
+
this.state.selectGroupKey = '';
|
|
35
38
|
// 支持调整顺序和分组时
|
|
36
39
|
this.state.draggable = this.enableEditOrder || this.enableEditGroup;
|
|
37
40
|
}
|
|
@@ -44,6 +47,7 @@ export class KanbanController extends DataViewControlController {
|
|
|
44
47
|
*/
|
|
45
48
|
async onCreated() {
|
|
46
49
|
await super.onCreated();
|
|
50
|
+
this.setToolbarHooks();
|
|
47
51
|
}
|
|
48
52
|
/**
|
|
49
53
|
* 本地排序items
|
|
@@ -82,6 +86,73 @@ export class KanbanController extends DataViewControlController {
|
|
|
82
86
|
this.sortItems(this.state.items);
|
|
83
87
|
return super.afterLoad(args, items);
|
|
84
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* 当展开批操作工具栏时需进行行点击拦截
|
|
91
|
+
*
|
|
92
|
+
* @param {IData} data
|
|
93
|
+
* @return {*} {Promise<void>}
|
|
94
|
+
* @memberof KanbanController
|
|
95
|
+
*/
|
|
96
|
+
async onRowClick(data) {
|
|
97
|
+
const { groupAppDEFieldId } = this.model;
|
|
98
|
+
if (this.state.batching && groupAppDEFieldId) {
|
|
99
|
+
const groupVal = data[groupAppDEFieldId];
|
|
100
|
+
if (groupVal !== this.state.selectGroupKey) {
|
|
101
|
+
// 激活事件
|
|
102
|
+
if (this.state.mdctrlActiveMode === 1) {
|
|
103
|
+
await this.setActive(data);
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
super.onRowClick(data);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* 点击新建时设置选中分组
|
|
112
|
+
*
|
|
113
|
+
* @param {MouseEvent} event
|
|
114
|
+
* @param {(string | number)} group
|
|
115
|
+
* @memberof KanbanController
|
|
116
|
+
*/
|
|
117
|
+
onClickNew(event, group) {
|
|
118
|
+
this.setSelectGroup(group);
|
|
119
|
+
super.onClickNew(event, group);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 分组工具栏需设置选中分组
|
|
123
|
+
*
|
|
124
|
+
* @param {IUIActionGroupDetail} detail
|
|
125
|
+
* @param {MouseEvent} event
|
|
126
|
+
* @param {IKanbanGroupState} group
|
|
127
|
+
* @return {*} {Promise<void>}
|
|
128
|
+
* @memberof KanbanController
|
|
129
|
+
*/
|
|
130
|
+
async onGroupToolbarClick(detail, event, group) {
|
|
131
|
+
this.setSelectGroup(group.key);
|
|
132
|
+
super.onGroupToolbarClick(detail, event, group);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 分组行为项点击,需携带分组标识
|
|
136
|
+
*
|
|
137
|
+
* @param {IUIActionGroupDetail} detail
|
|
138
|
+
* @param {IData} item
|
|
139
|
+
* @param {MouseEvent} event
|
|
140
|
+
* @param {IKanbanGroupState} group
|
|
141
|
+
* @return {*} {Promise<void>}
|
|
142
|
+
* @memberof KanbanController
|
|
143
|
+
*/
|
|
144
|
+
async onGroupActionClick(detail, item, event, group) {
|
|
145
|
+
this.setSelectGroup(group.key);
|
|
146
|
+
const params = Object.assign(Object.assign({}, this.params), { srfgroup: group });
|
|
147
|
+
const actionId = detail.uiactionId;
|
|
148
|
+
await UIActionUtil.execAndResolved(actionId, {
|
|
149
|
+
context: this.context,
|
|
150
|
+
params,
|
|
151
|
+
data: [item],
|
|
152
|
+
view: this.view,
|
|
153
|
+
event,
|
|
154
|
+
}, detail.appId);
|
|
155
|
+
}
|
|
85
156
|
handleDataGroup() {
|
|
86
157
|
if (!this.model.enableGroup || this.model.groupMode === 'NONE') {
|
|
87
158
|
throw new RuntimeError('看板部件必须开启分组');
|
|
@@ -296,4 +367,153 @@ export class KanbanController extends DataViewControlController {
|
|
|
296
367
|
await this.afterLoad({}, this.state.items);
|
|
297
368
|
}
|
|
298
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* 获取是否全屏
|
|
372
|
+
*
|
|
373
|
+
* @return {*} {boolean}
|
|
374
|
+
* @memberof KanbanController
|
|
375
|
+
*/
|
|
376
|
+
getFullscreen() {
|
|
377
|
+
const value = document.isFullScreen ||
|
|
378
|
+
document.mozIsFullScreen ||
|
|
379
|
+
document.webkitIsFullScreen;
|
|
380
|
+
return value;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* 触发全屏
|
|
384
|
+
*
|
|
385
|
+
* @param {IData} container
|
|
386
|
+
* @memberof KanbanController
|
|
387
|
+
*/
|
|
388
|
+
onFullScreen(container) {
|
|
389
|
+
const isFull = this.getFullscreen();
|
|
390
|
+
if (!isFull) {
|
|
391
|
+
if (container) {
|
|
392
|
+
if (container.webkitRequestFullscreen) {
|
|
393
|
+
container.webkitRequestFullscreen();
|
|
394
|
+
}
|
|
395
|
+
else if (container.mozRequestFullScreen) {
|
|
396
|
+
container.mozRequestFullScreen();
|
|
397
|
+
}
|
|
398
|
+
else if (container.msRequestFullscreen) {
|
|
399
|
+
container.msRequestFullscreen();
|
|
400
|
+
}
|
|
401
|
+
else if (container.requestFullscreen) {
|
|
402
|
+
container.requestFullscreen();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else if (document.documentElement.requestFullScreen) {
|
|
407
|
+
document.exitFullScreen();
|
|
408
|
+
}
|
|
409
|
+
else if (document.documentElement.webkitRequestFullScreen) {
|
|
410
|
+
document.webkitCancelFullScreen();
|
|
411
|
+
}
|
|
412
|
+
else if (document.documentElement.mozRequestFullScreen) {
|
|
413
|
+
document.mozCancelFullScreen();
|
|
414
|
+
}
|
|
415
|
+
return !isFull;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* 设置选中分组标识
|
|
419
|
+
*
|
|
420
|
+
* @param {(string | number)} key
|
|
421
|
+
* @memberof KanbanController
|
|
422
|
+
*/
|
|
423
|
+
setSelectGroup(key) {
|
|
424
|
+
if (!this.state.batching) {
|
|
425
|
+
this.state.selectGroupKey = key;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* 设置分组控制器
|
|
430
|
+
*
|
|
431
|
+
* @param {string} groupKey
|
|
432
|
+
* @param {('quickToolbarController' | 'batchToolbarController')} name
|
|
433
|
+
* @param {IToolbarController} c
|
|
434
|
+
* @memberof KanbanController
|
|
435
|
+
*/
|
|
436
|
+
setGroupController(groupKey, name, c) {
|
|
437
|
+
const group = this.state.groups.find(x => x.key === groupKey);
|
|
438
|
+
if (group) {
|
|
439
|
+
group[name] = c;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* 设置工具栏hook
|
|
444
|
+
*
|
|
445
|
+
* @memberof KanbanController
|
|
446
|
+
*/
|
|
447
|
+
setToolbarHooks() {
|
|
448
|
+
this.listenNewController((name, c) => {
|
|
449
|
+
if (name.startsWith(`${this.model.name}_quicktoolbar`) ||
|
|
450
|
+
name.startsWith(`${this.model.name}_groupquicktoolbar`)) {
|
|
451
|
+
this.setQuickToolbarClickHook(name, c);
|
|
452
|
+
}
|
|
453
|
+
if (name.startsWith(`${this.model.name}_batchtoolbar`)) {
|
|
454
|
+
this.setBatchToolbarClickHook(name, c);
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* 设置快捷工具栏点击事件hook
|
|
460
|
+
*
|
|
461
|
+
* @param {string} name
|
|
462
|
+
* @param {IToolbarController} c
|
|
463
|
+
* @memberof KanbanController
|
|
464
|
+
*/
|
|
465
|
+
setQuickToolbarClickHook(name, c) {
|
|
466
|
+
const key = name.split('quicktoolbar_')[1];
|
|
467
|
+
this.setGroupController(key, 'quickToolbarController', c);
|
|
468
|
+
c.evt.on('onClick', (event) => {
|
|
469
|
+
const groupKey = event.targetName.split('quicktoolbar_')[1];
|
|
470
|
+
this.setSelectGroup(groupKey);
|
|
471
|
+
Object.assign(event.params, { srfgroup: groupKey });
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* 设置批工具栏点击事件hook
|
|
476
|
+
*
|
|
477
|
+
* @param {string} name
|
|
478
|
+
* @param {IToolbarController} c
|
|
479
|
+
* @memberof KanbanController
|
|
480
|
+
*/
|
|
481
|
+
setBatchToolbarClickHook(name, c) {
|
|
482
|
+
const key = name.split('batchtoolbar_')[1];
|
|
483
|
+
this.setGroupController(key, 'batchToolbarController', c);
|
|
484
|
+
c.evt.on('onClick', (event) => {
|
|
485
|
+
const groupKey = event.targetName.split('batchtoolbar_')[1];
|
|
486
|
+
this.setSelectGroup(groupKey);
|
|
487
|
+
Object.assign(event.params, { srfgroup: groupKey });
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* 打开批操作工具栏
|
|
492
|
+
*
|
|
493
|
+
* @param {string} groupKey
|
|
494
|
+
* @memberof KanbanController
|
|
495
|
+
*/
|
|
496
|
+
openBatch(groupKey) {
|
|
497
|
+
this.state.selectGroupKey = groupKey;
|
|
498
|
+
this.state.batching = true;
|
|
499
|
+
this.state.selectedData = [];
|
|
500
|
+
// 清空分组选中数据
|
|
501
|
+
this.state.groups.forEach(group => {
|
|
502
|
+
group.selectedData = [];
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* 关闭批操作工具栏
|
|
507
|
+
*
|
|
508
|
+
* @memberof KanbanController
|
|
509
|
+
*/
|
|
510
|
+
closeBatch() {
|
|
511
|
+
this.state.selectGroupKey = '';
|
|
512
|
+
this.state.batching = false;
|
|
513
|
+
this.state.selectedData = [];
|
|
514
|
+
// 清空分组选中数据
|
|
515
|
+
this.state.groups.forEach(group => {
|
|
516
|
+
group.selectedData = [];
|
|
517
|
+
});
|
|
518
|
+
}
|
|
299
519
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config-service.d.ts","sourceRoot":"","sources":["../../../src/hub/config/app-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE
|
|
1
|
+
{"version":3,"file":"app-config-service.d.ts","sourceRoot":"","sources":["../../../src/hub/config/app-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;GAOG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,IAAI,uBAA8B;CACnC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { IAppViewConfigService, IViewConfig } from '../../interface';
|
|
2
|
+
/**
|
|
3
|
+
* 应用视图配置服务
|
|
4
|
+
*
|
|
5
|
+
* @author chitanda
|
|
6
|
+
* @date 2023-12-21 16:12:06
|
|
7
|
+
* @export
|
|
8
|
+
* @class AppViewConfigService
|
|
9
|
+
* @implements {IAppViewConfigService}
|
|
10
|
+
*/
|
|
2
11
|
export declare class AppViewConfigService implements IAppViewConfigService {
|
|
3
12
|
/**
|
|
4
13
|
* 视图配置信息集合
|
|
@@ -6,8 +15,18 @@ export declare class AppViewConfigService implements IAppViewConfigService {
|
|
|
6
15
|
* @date 2023-07-03 07:08:33
|
|
7
16
|
*/
|
|
8
17
|
protected viewConfigs: Map<string, IViewConfig>;
|
|
18
|
+
/**
|
|
19
|
+
* 计算应用视图 标识
|
|
20
|
+
*
|
|
21
|
+
* @author chitanda
|
|
22
|
+
* @date 2023-04-20 18:04:48
|
|
23
|
+
* @protected
|
|
24
|
+
* @param {string} tag
|
|
25
|
+
* @return {*} {string}
|
|
26
|
+
*/
|
|
27
|
+
protected calcAppViewId(tag: string): string;
|
|
9
28
|
has(key: string): boolean;
|
|
10
|
-
set(
|
|
29
|
+
set(key: string, viewConfig: IViewConfig): void;
|
|
11
30
|
get(key: string): Promise<IViewConfig>;
|
|
12
31
|
getSync(key: string): IViewConfig | null;
|
|
13
32
|
}
|