@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
@@ -1 +1 @@
1
- {"version":3,"file":"app-view-config-service.d.ts","sourceRoot":"","sources":["../../../src/hub/config/app-view-config-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErE,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE;;;;OAIG;IACH,SAAS,CAAC,WAAW,2BAAkC;IAEvD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;CAMzC"}
1
+ {"version":3,"file":"app-view-config-service.d.ts","sourceRoot":"","sources":["../../../src/hub/config/app-view-config-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE;;;;OAIG;IACH,SAAS,CAAC,WAAW,2BAAkC;IAEvD;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAW5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAKzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuB5C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;CAMzC"}
@@ -1,4 +1,13 @@
1
1
  import { RuntimeError } from '@ibiz-template/core';
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 class AppViewConfigService {
3
12
  constructor() {
4
13
  /**
@@ -8,21 +17,45 @@ export class AppViewConfigService {
8
17
  */
9
18
  this.viewConfigs = new Map();
10
19
  }
20
+ /**
21
+ * 计算应用视图 标识
22
+ *
23
+ * @author chitanda
24
+ * @date 2023-04-20 18:04:48
25
+ * @protected
26
+ * @param {string} tag
27
+ * @return {*} {string}
28
+ */
29
+ calcAppViewId(tag) {
30
+ let id = '';
31
+ if (tag.indexOf('.') !== -1) {
32
+ const ids = tag.split('.');
33
+ id = ids[ids.length - 1];
34
+ }
35
+ else {
36
+ id = tag.toLowerCase();
37
+ }
38
+ return id;
39
+ }
11
40
  has(key) {
12
- return this.viewConfigs.has(key);
41
+ const id = this.calcAppViewId(key);
42
+ return this.viewConfigs.has(id);
13
43
  }
14
- set(id, viewConfig) {
44
+ set(key, viewConfig) {
45
+ const id = this.calcAppViewId(key);
15
46
  this.viewConfigs.set(id, viewConfig);
16
47
  }
17
48
  async get(key) {
49
+ const id = this.calcAppViewId(key);
18
50
  // 没有的时候请求视图模型并设置
19
- if (!this.viewConfigs.has(key)) {
20
- const model = await ibiz.hub.getAppView(key);
51
+ if (!this.viewConfigs.has(id)) {
52
+ const model = await ibiz.hub.getAppView(id);
21
53
  if (!model) {
22
- throw new RuntimeError(`视图[${key}]不存在`);
54
+ throw new RuntimeError(`视图[${id}]不存在`);
23
55
  }
24
56
  this.set(model.id, {
25
57
  id: model.id,
58
+ appId: model.appId,
26
59
  codeName: model.codeName,
27
60
  openMode: model.openMode,
28
61
  viewType: model.viewType,
@@ -32,7 +65,7 @@ export class AppViewConfigService {
32
65
  redirectView: model.redirectView,
33
66
  });
34
67
  }
35
- return this.viewConfigs.get(key);
68
+ return this.viewConfigs.get(id);
36
69
  }
37
70
  getSync(key) {
38
71
  if (this.viewConfigs.has(key)) {
@@ -10,6 +10,14 @@ export interface IViewConfig {
10
10
  * 唯一标识
11
11
  */
12
12
  id: string;
13
+ /**
14
+ * 应用视图所归属的应用 id
15
+ *
16
+ * @author chitanda
17
+ * @date 2023-12-21 16:12:11
18
+ * @type {string}
19
+ */
20
+ appId: string;
13
21
  /**
14
22
  * 代码标识
15
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"i-app-view-config-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-view-config-service/i-app-view-config-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAE/C;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;CAC1C"}
1
+ {"version":3,"file":"i-app-view-config-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-view-config-service/i-app-view-config-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAE/C;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;CAC1C"}
@@ -10,5 +10,32 @@ import { IDataViewControlController } from './i-data-view-control.controller';
10
10
  * @extends {IMDControlController<IDEDataView, IDataViewControlState, IDataViewControlEvent>}
11
11
  */
12
12
  export interface IKanbanController extends IDataViewControlController<IDEKanban, IKanbanState, IKanbanEvent> {
13
+ /**
14
+ * 是否全屏
15
+ *
16
+ * @return {*} {boolean}
17
+ * @memberof IKanbanController
18
+ */
19
+ getFullscreen(): boolean;
20
+ /**
21
+ * 全屏
22
+ *
23
+ * @param {IData} container
24
+ * @memberof IKanbanController
25
+ */
26
+ onFullScreen(container: IData): boolean;
27
+ /**
28
+ * 打开对应分组批操作工具栏
29
+ *
30
+ * @param {string | number} groupKey
31
+ * @memberof IKanbanController
32
+ */
33
+ openBatch(groupKey: string | number): void;
34
+ /**
35
+ * 关闭批操作工具栏
36
+ *
37
+ * @memberof IKanbanController
38
+ */
39
+ closeBatch(): void;
13
40
  }
14
41
  //# sourceMappingURL=i-kanban.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-kanban.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-kanban.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,WAAW,iBACf,SAAQ,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;CAAG"}
1
+ {"version":3,"file":"i-kanban.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-kanban.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,WAAW,iBACf,SAAQ,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;IACzE;;;;;OAKG;IACH,aAAa,IAAI,OAAO,CAAC;IACzB;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;IAExC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,UAAU,IAAI,IAAI,CAAC;CACpB"}
@@ -42,6 +42,29 @@ export interface IGanttState extends IMDControlState {
42
42
  * @type {string}
43
43
  */
44
44
  placeHolder: string;
45
+ /**
46
+ * 甘特图样式
47
+ *
48
+ * @type {IGanttStyle}
49
+ * @memberof IGanttState
50
+ */
51
+ ganttStyle: IGanttStyle;
52
+ }
53
+ export interface IGanttStyle {
54
+ /**
55
+ * 主题色
56
+ *
57
+ * @type {string}
58
+ * @memberof IGanttStyle
59
+ */
60
+ primaryColor?: string;
61
+ /**
62
+ * 文本色
63
+ *
64
+ * @type {string}
65
+ * @memberof IGanttStyle
66
+ */
67
+ textColor?: string;
45
68
  }
46
69
  /**
47
70
  * 甘特图节点数据格式
@@ -1 +1 @@
1
- {"version":3,"file":"i-gantt.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-gantt.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB;;;;;OAKG;IACH,YAAY,EAAE,YAAY,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;;;;OAMG;IACH,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAExC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB"}
1
+ {"version":3,"file":"i-gantt.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-gantt.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB;;;;;OAKG;IACH,YAAY,EAAE,YAAY,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;;;;OAMG;IACH,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAExC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB"}
@@ -1,3 +1,4 @@
1
+ import { IToolbarController } from '../../controller';
1
2
  import { IDataViewControlState } from './i-data-view-control.state';
2
3
  import { IMDControlGroupState } from './i-md-control.state';
3
4
  /**
@@ -22,6 +23,13 @@ export interface IKanbanState extends IDataViewControlState {
22
23
  * @type {boolean}
23
24
  */
24
25
  updating: boolean;
26
+ /**
27
+ * 是否正在批操作
28
+ *
29
+ * @type {boolean}
30
+ * @memberof IKanbanState
31
+ */
32
+ batching: boolean;
25
33
  /**
26
34
  * 分组数据
27
35
  *
@@ -29,6 +37,13 @@ export interface IKanbanState extends IDataViewControlState {
29
37
  * @memberof IKanbanState
30
38
  */
31
39
  groups: IKanbanGroupState[];
40
+ /**
41
+ * 选中分组标识
42
+ *
43
+ * @type {string | number}
44
+ * @memberof IKanbanState
45
+ */
46
+ selectGroupKey: string | number;
32
47
  }
33
48
  /**
34
49
  * 看板部件分组数据
@@ -45,5 +60,19 @@ export interface IKanbanGroupState extends IMDControlGroupState {
45
60
  * @memberof IKanbanGroupState
46
61
  */
47
62
  color?: string;
63
+ /**
64
+ * 快速工具栏控制器
65
+ *
66
+ * @type {IToolbarController}
67
+ * @memberof IKanbanGroupState
68
+ */
69
+ quickToolbarController?: IToolbarController;
70
+ /**
71
+ * 批操作工具栏控制器
72
+ *
73
+ * @type {IToolbarController}
74
+ * @memberof IKanbanGroupState
75
+ */
76
+ batchToolbarController?: IToolbarController;
48
77
  }
49
78
  //# sourceMappingURL=i-kanban.state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-kanban.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-kanban.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,qBAAqB;IACzD;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"i-kanban.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-kanban.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,qBAAqB;IACzD;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;IAE5C;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;CAC7C"}
@@ -1,6 +1,5 @@
1
1
  import { IDEGridColumn } from '@ibiz/model-core';
2
- import { GanttController, TreeGridExController } from '../../controller';
3
- import { IGridColumnController, IGridController } from '../controller';
2
+ import { IGanttController, IGridColumnController, IGridController, ITreeGridExController } from '../controller';
4
3
  /**
5
4
  * 表格列适配器的接口
6
5
  *
@@ -27,6 +26,6 @@ export interface IGridColumnProvider {
27
26
  * @param {GridController} grid 表格控制器
28
27
  * @returns {*} {Promise<GridColumnController>}
29
28
  */
30
- createController(columnModel: IDEGridColumn, grid: IGridController | TreeGridExController | GanttController): Promise<IGridColumnController>;
29
+ createController(columnModel: IDEGridColumn, grid: IGridController | ITreeGridExController | IGanttController): Promise<IGridColumnController>;
31
30
  }
32
31
  //# sourceMappingURL=i-grid-column.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-grid-column.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/i-grid-column.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IAEH,SAAS,EAAE,GAAG,CAAC;IAEf;;;;;;;;OAQG;IACH,gBAAgB,CACd,WAAW,EAAE,aAAa,EAC1B,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,eAAe,GAE7D,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"i-grid-column.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/i-grid-column.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IAEH,SAAS,EAAE,GAAG,CAAC;IAEf;;;;;;;;OAQG;IACH,gBAAgB,CACd,WAAW,EAAE,aAAa,EAC1B,IAAI,EAAE,eAAe,GAAG,qBAAqB,GAAG,gBAAgB,GAE/D,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
@@ -63,6 +63,16 @@ export declare class MDControlService<T extends IMDControl = IMDControl> extends
63
63
  * @returns {*}
64
64
  */
65
65
  update(context: IParams, data: ControlVO): Promise<IHttpResponse<ControlVO>>;
66
+ /**
67
+ * 批量更新数据
68
+ *
69
+ * @author chitanda
70
+ * @date 2023-12-21 10:12:09
71
+ * @param {IContext} context
72
+ * @param {ControlVO[]} data
73
+ * @return {*} {Promise<void>}
74
+ */
75
+ updateBatch(context: IContext, data: ControlVO[]): Promise<IHttpResponse<ControlVO[]>>;
66
76
  /**
67
77
  * 导出数据
68
78
  *
@@ -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,EAAgB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,UAAU,GAAG,UAAU,CACjC,SAAQ,cAAc,CAAC,CAAC,CAAC;IACzB;;;;;;;;OAQG;IACG,KAAK,CACT,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAQtC;;;;;;;;OAQG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAOpC;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,OAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAO5E;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;;OASG;IACG,UAAU,CACd,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,OAAY,GACpB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAU/B;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;CAwBvD"}
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,EAAgB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,UAAU,GAAG,UAAU,CACjC,SAAQ,cAAc,CAAC,CAAC,CAAC;IACzB;;;;;;;;OAQG;IACG,KAAK,CACT,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAQtC;;;;;;;;OAQG;IACG,GAAG,CACP,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAOpC;;;;;;;;OAQG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,OAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAO5E;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAQpC;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,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;;;;;;;;;OASG;IACG,UAAU,CACd,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,OAAY,GACpB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAU/B;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;CAwBvD"}
@@ -97,6 +97,22 @@ export class MDControlService extends ControlService {
97
97
  res = this.handleResponse(res);
98
98
  return res;
99
99
  }
100
+ /**
101
+ * 批量更新数据
102
+ *
103
+ * @author chitanda
104
+ * @date 2023-12-21 10:12:09
105
+ * @param {IContext} context
106
+ * @param {ControlVO[]} data
107
+ * @return {*} {Promise<void>}
108
+ */
109
+ async updateBatch(context, data) {
110
+ var _a;
111
+ const updateAction = ((_a = this.model.updateControlAction) === null || _a === void 0 ? void 0 : _a.appDEMethodId) || 'update';
112
+ let res = await this.exec(updateAction, context, data.map(item => item.getOrigin()));
113
+ res = this.handleResponse(res);
114
+ return res;
115
+ }
100
116
  /**
101
117
  * 导出数据
102
118
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.4.14",
3
+ "version": "0.4.16",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
32
  "@ibiz-template/core": "^0.4.12",
33
- "@ibiz/model-core": "^0.0.27",
33
+ "@ibiz/model-core": "^0.0.28",
34
34
  "@types/path-browserify": "^1.0.2",
35
35
  "@types/qs": "^6.9.10",
36
36
  "@types/systemjs": "^6.13.5",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@ibiz-template/core": "^0.4.0",
50
- "@ibiz/model-core": "^0.0.27",
50
+ "@ibiz/model-core": "^0.0.28",
51
51
  "async-validator": "^4.2.5",
52
52
  "dayjs": "^1.11.7",
53
53
  "echarts": "^5.4.3",
@@ -59,5 +59,5 @@
59
59
  "qx-util": "^0.4.8",
60
60
  "ramda": "^0.29.0"
61
61
  },
62
- "gitHead": "91452a20d49f1b3368ad0867afe9e1b1cdf3ec0d"
62
+ "gitHead": "8f0562310f54da8e772ff6a534a6f8eaf68e71f7"
63
63
  }
package/src/app-hub.ts CHANGED
@@ -145,7 +145,7 @@ export class AppHub implements IAppHubService {
145
145
  * @param {IAppView} model
146
146
  */
147
147
  registerAppView(model: IAppView): void {
148
- this.views.set(model.codeName!, model);
148
+ this.views.set(model.codeName!.toLowerCase(), model);
149
149
  }
150
150
 
151
151
  /**
@@ -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 { IDEGantt, IDETreeColumn, IDETreeNode } from '@ibiz/model-core';
4
6
  import {
@@ -6,6 +8,7 @@ import {
6
8
  IGanttEvent,
7
9
  IGanttNodeData,
8
10
  IGanttState,
11
+ IGanttStyle,
9
12
  IGridColumnProvider,
10
13
  MDCtrlLoadParams,
11
14
  } from '../../../interface';
@@ -99,8 +102,18 @@ export class GanttController
99
102
  this.state.query = '';
100
103
  this.state.columnStates = [];
101
104
  this.state.rootNodes = [];
105
+ this.state.ganttStyle = {};
102
106
  }
103
107
 
108
+ /**
109
+ * 当数据放生变更时,若为当前应用实体数据。则多数据部件进行刷新
110
+ * 临时重写 防止错误刷新整个甘特图
111
+ * @protected
112
+ * @param {IData} msg
113
+ * @memberof GanttController
114
+ */
115
+ protected onDataChange(msg: IData): void {}
116
+
104
117
  protected async onCreated(): Promise<void> {
105
118
  await super.onCreated();
106
119
  await this.initGridColumns();
@@ -244,6 +257,16 @@ export class GanttController
244
257
  });
245
258
  }
246
259
 
260
+ /**
261
+ * 设置甘特图样式
262
+ *
263
+ * @param {IGanttStyle} style
264
+ * @memberof GanttController
265
+ */
266
+ setGanttStyle(style: IGanttStyle): void {
267
+ this.state.ganttStyle = style;
268
+ }
269
+
247
270
  /**
248
271
  * 加载
249
272
  *
@@ -490,6 +513,74 @@ export class GanttController
490
513
  };
491
514
  }
492
515
 
516
+ /**
517
+ * 转化节点数据项
518
+ * vo -> do
519
+ * @param {IDETreeNode} nodeModel 节点模型
520
+ * @param {IData} data 数据
521
+ * @memberof GanttController
522
+ */
523
+ transformNodeDataItem(nodeModel: IDETreeNode, data: IData): IData {
524
+ const dataItem: IData = {};
525
+ nodeModel.detreeNodeDataItems?.forEach(item => {
526
+ if (
527
+ item.id &&
528
+ item.appDEFieldId &&
529
+ data.hasOwnProperty(item.id.toLowerCase())
530
+ ) {
531
+ Object.assign(dataItem, {
532
+ [item.appDEFieldId.toLowerCase()]: data[item.id.toLowerCase()],
533
+ });
534
+ }
535
+ });
536
+ return dataItem;
537
+ }
538
+
539
+ /**
540
+ * 更新节点数据
541
+ *
542
+ * @param {(IGanttNodeData | IData)} nodeData 节点数据
543
+ * @param {IData} data 更新数据
544
+ * @param {boolean} [isTransformData=false] 是否转化数据项
545
+ * @return {*}
546
+ * @memberof GanttController
547
+ */
548
+ async updateNodeData(
549
+ nodeData: IGanttNodeData | IData,
550
+ data: IData,
551
+ isTransformData: boolean = false,
552
+ ): Promise<void> {
553
+ const key = nodeData.srfkey ? 'srfkey' : 'id';
554
+ const currentNode = this.state.items.find(
555
+ item => item[key] === nodeData[key],
556
+ );
557
+ if (!currentNode || !currentNode.srfkey) {
558
+ ibiz.log.error('找不到对应的动态实体树节点数据', nodeData);
559
+ return;
560
+ }
561
+ const nodeModel = this.getNodeModel(currentNode.nodeId);
562
+ if (nodeModel) {
563
+ const newData = isTransformData
564
+ ? this.transformNodeDataItem(nodeModel, data)
565
+ : data;
566
+ if (Object.keys(newData).length > 0) {
567
+ const [, entityCodename] = nodeModel.appDataEntityId!.split('.');
568
+ const tempContext = Object.assign(this.context.clone(), {
569
+ [entityCodename]: currentNode.srfkey,
570
+ });
571
+ const response = await this.service.execDeService(
572
+ nodeModel.appDataEntityId!,
573
+ 'update',
574
+ tempContext,
575
+ newData,
576
+ );
577
+ if (response.status === 200) {
578
+ this.refreshNodeChildren(nodeData, true);
579
+ }
580
+ }
581
+ }
582
+ }
583
+
493
584
  /**
494
585
  * 刷新指定树节点的子节点数据
495
586
  *
@@ -4,7 +4,7 @@ import {
4
4
  IDETreeNode,
5
5
  IDETreeNodeRS,
6
6
  } from '@ibiz/model-core';
7
- import { ModelError } from '@ibiz-template/core';
7
+ import { IHttpResponse, ModelError } from '@ibiz-template/core';
8
8
  import { IGanttNodeData } from '../../../interface';
9
9
  import { getChildNodeRSs, getRootNode, getTreeNode } from '../../../model';
10
10
  import { handleAllSettled } from '../../../utils';
@@ -25,6 +25,31 @@ import {
25
25
  * @extends {TreeService}
26
26
  */
27
27
  export class GanttService extends TreeService {
28
+ /**
29
+ * 执行实体服务
30
+ *
31
+ * @protected
32
+ * @param {string} appDataEntityId 实体标识
33
+ * @param {string} actionName 行为标识
34
+ * @param {IContext} context 上下文
35
+ * @param {IParams} params 参数
36
+ * @return {*} {Promise<IHttpResponse<IData>>}
37
+ * @memberof GanttService
38
+ */
39
+ execDeService(
40
+ appDataEntityId: string,
41
+ actionName: string,
42
+ context: IContext,
43
+ params: IParams,
44
+ ): Promise<IHttpResponse<IData>> {
45
+ return this.app.deService.exec(
46
+ appDataEntityId,
47
+ actionName,
48
+ context,
49
+ params,
50
+ );
51
+ }
52
+
28
53
  /**
29
54
  * 获取子节点数据
30
55
  *