@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.
Files changed (44) hide show
  1. package/dist/index.esm.js +364 -7
  2. package/dist/index.system.min.js +2 -2
  3. package/out/app-hub.js +1 -1
  4. package/out/controller/control/gantt/gantt.controller.d.ts +34 -1
  5. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  6. package/out/controller/control/gantt/gantt.controller.js +74 -0
  7. package/out/controller/control/gantt/gantt.service.d.ts +13 -0
  8. package/out/controller/control/gantt/gantt.service.d.ts.map +1 -1
  9. package/out/controller/control/gantt/gantt.service.js +14 -0
  10. package/out/controller/control/kanban/kanban.controller.d.ts +104 -2
  11. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  12. package/out/controller/control/kanban/kanban.controller.js +220 -0
  13. package/out/hub/config/app-config-service.d.ts +1 -0
  14. package/out/hub/config/app-config-service.d.ts.map +1 -1
  15. package/out/hub/config/app-config-service.js +1 -0
  16. package/out/hub/config/app-view-config-service.d.ts +20 -1
  17. package/out/hub/config/app-view-config-service.d.ts.map +1 -1
  18. package/out/hub/config/app-view-config-service.js +39 -6
  19. package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts +8 -0
  20. package/out/interface/common/i-app-view-config-service/i-app-view-config-service.d.ts.map +1 -1
  21. package/out/interface/controller/controller/control/i-kanban.controller.d.ts +27 -0
  22. package/out/interface/controller/controller/control/i-kanban.controller.d.ts.map +1 -1
  23. package/out/interface/controller/state/control/i-gantt.state.d.ts +23 -0
  24. package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
  25. package/out/interface/controller/state/control/i-kanban.state.d.ts +29 -0
  26. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
  27. package/out/interface/provider/i-grid-column.provider.d.ts +2 -3
  28. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  29. package/out/service/service/control/md-control.service.d.ts +10 -0
  30. package/out/service/service/control/md-control.service.d.ts.map +1 -1
  31. package/out/service/service/control/md-control.service.js +16 -0
  32. package/package.json +4 -4
  33. package/src/app-hub.ts +1 -1
  34. package/src/controller/control/gantt/gantt.controller.ts +91 -0
  35. package/src/controller/control/gantt/gantt.service.ts +26 -1
  36. package/src/controller/control/kanban/kanban.controller.ts +258 -1
  37. package/src/hub/config/app-config-service.ts +1 -0
  38. package/src/hub/config/app-view-config-service.ts +39 -6
  39. package/src/interface/common/i-app-view-config-service/i-app-view-config-service.ts +8 -0
  40. package/src/interface/controller/controller/control/i-kanban.controller.ts +31 -1
  41. package/src/interface/controller/state/control/i-gantt.state.ts +26 -0
  42. package/src/interface/controller/state/control/i-kanban.state.ts +33 -0
  43. package/src/interface/provider/i-grid-column.provider.ts +7 -3
  44. package/src/service/service/control/md-control.service.ts +24 -0
package/out/app-hub.js CHANGED
@@ -117,7 +117,7 @@ export class AppHub {
117
117
  * @param {IAppView} model
118
118
  */
119
119
  registerAppView(model) {
120
- this.views.set(model.codeName, model);
120
+ this.views.set(model.codeName.toLowerCase(), model);
121
121
  }
122
122
  /**
123
123
  * 注册应用实体
@@ -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":"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"}
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;AAE1B,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;;;;;;;;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"}
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;AAE7C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EAEZ,YAAY,EACZ,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;AAEjD,qBAAa,gBACX,SAAQ,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CACvE,YAAW,iBAAiB;IAE5B;;;;;OAKG;IACK,OAAO,EAAE,aAAa,CAAC;IAE/B;;;;;;OAMG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;;;OAMG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;cAEe,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnD,SAAS,CAAC,SAAS,IAAI,IAAI;IAQ3B;;;;;;OAMG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;IAgCzB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAMzE,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC;;;;OAIG;IACH,eAAe,IAAI,IAAI;IAkCvB;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1C;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2GxD;;;;;;OAMG;IACG,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BnE"}
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
  }
@@ -2,6 +2,7 @@ import { IAppConfigService } from '../../interface';
2
2
  import { AppViewConfigService } from './app-view-config-service';
3
3
  /**
4
4
  * 应用设置服务
5
+ *
5
6
  * @author lxm
6
7
  * @date 2023-07-03 07:07:47
7
8
  * @export
@@ -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;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,IAAI,uBAA8B;CACnC"}
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,6 +1,7 @@
1
1
  import { AppViewConfigService } from './app-view-config-service';
2
2
  /**
3
3
  * 应用设置服务
4
+ *
4
5
  * @author lxm
5
6
  * @date 2023-07-03 07:07:47
6
7
  * @export
@@ -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(id: string, viewConfig: IViewConfig): void;
29
+ set(key: string, viewConfig: IViewConfig): void;
11
30
  get(key: string): Promise<IViewConfig>;
12
31
  getSync(key: string): IViewConfig | null;
13
32
  }