@ibiz-template/runtime 0.4.17-dev.0 → 0.5.0-beta.0

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 (146) hide show
  1. package/dist/index.esm.js +972 -529
  2. package/dist/index.system.min.js +2 -2
  3. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  4. package/out/controller/common/control/md-control.controller.js +7 -2
  5. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  6. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +2 -6
  7. package/out/controller/control/grid/grid/grid-column.controller.d.ts +2 -1
  8. package/out/controller/control/grid/grid/grid-column.controller.d.ts.map +1 -1
  9. package/out/controller/control/grid/grid/grid.controller.d.ts +17 -1
  10. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  11. package/out/controller/control/grid/grid/grid.controller.js +32 -0
  12. package/out/controller/control/kanban/kanban.controller.d.ts +2 -2
  13. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  14. package/out/controller/control/kanban/kanban.controller.js +1 -1
  15. package/out/controller/control/md-ctrl/md-ctrl.controller.js +1 -1
  16. package/out/controller/control/search-bar/index.d.ts +1 -0
  17. package/out/controller/control/search-bar/index.d.ts.map +1 -1
  18. package/out/controller/control/search-bar/index.js +1 -0
  19. package/out/controller/control/search-bar/search-bar.controller.d.ts +59 -2
  20. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  21. package/out/controller/control/search-bar/search-bar.controller.js +142 -9
  22. package/out/controller/control/search-bar/search-bar.service.d.ts +78 -0
  23. package/out/controller/control/search-bar/search-bar.service.d.ts.map +1 -0
  24. package/out/controller/control/search-bar/search-bar.service.js +130 -0
  25. package/out/controller/control/tree/tree.controller.d.ts +27 -1
  26. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  27. package/out/controller/control/tree/tree.controller.js +45 -7
  28. package/out/controller/control/tree/tree.service.d.ts +1 -1
  29. package/out/controller/control/tree/tree.service.d.ts.map +1 -1
  30. package/out/controller/control/tree-grid-ex/index.d.ts +2 -0
  31. package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -1
  32. package/out/controller/control/tree-grid-ex/index.js +2 -0
  33. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +4 -0
  34. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -0
  35. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +3 -0
  36. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +93 -0
  37. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts.map +1 -0
  38. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +89 -0
  39. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts +13 -0
  40. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts.map +1 -0
  41. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.js +11 -0
  42. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts +31 -0
  43. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts.map +1 -0
  44. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.js +61 -0
  45. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +26 -0
  46. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -0
  47. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -0
  48. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +48 -46
  49. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  50. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +85 -115
  51. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +8 -58
  52. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -1
  53. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +5 -135
  54. package/out/interface/controller/controller/control/i-grid.controller.d.ts +8 -0
  55. package/out/interface/controller/controller/control/i-grid.controller.d.ts.map +1 -1
  56. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +7 -7
  57. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
  58. package/out/interface/controller/controller/control/i-tree.controller.d.ts +1 -1
  59. package/out/interface/controller/controller/control/i-tree.controller.d.ts.map +1 -1
  60. package/out/interface/controller/controller/control/index.d.ts +1 -0
  61. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  62. package/out/interface/controller/controller/control/index.js +1 -0
  63. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts +12 -0
  64. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts.map +1 -0
  65. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.js +1 -0
  66. package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts +2 -0
  67. package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts.map +1 -0
  68. package/out/interface/controller/controller/control/tree-grid-ex-column/index.js +1 -0
  69. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +2 -2
  70. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
  71. package/out/interface/controller/state/control/i-search-bar.state.d.ts +64 -0
  72. package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
  73. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +31 -23
  74. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
  75. package/out/interface/controller/state/control/i-tree.state.d.ts +8 -1
  76. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  77. package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts +31 -0
  78. package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts.map +1 -0
  79. package/out/interface/provider/i-tree-grid-ex-column.provider.js +1 -0
  80. package/out/interface/provider/index.d.ts +1 -0
  81. package/out/interface/provider/index.d.ts.map +1 -1
  82. package/out/interface/service/service/i-app-de.service.d.ts +10 -0
  83. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  84. package/out/register/helper/index.d.ts +1 -0
  85. package/out/register/helper/index.d.ts.map +1 -1
  86. package/out/register/helper/index.js +1 -0
  87. package/out/register/helper/tree-grid-ex-column-register.d.ts +23 -0
  88. package/out/register/helper/tree-grid-ex-column-register.d.ts.map +1 -0
  89. package/out/register/helper/tree-grid-ex-column-register.js +50 -0
  90. package/out/service/de-service-util.d.ts +3 -2
  91. package/out/service/de-service-util.d.ts.map +1 -1
  92. package/out/service/de-service-util.js +11 -10
  93. package/out/service/dto/method.dto.d.ts +2 -3
  94. package/out/service/dto/method.dto.d.ts.map +1 -1
  95. package/out/service/dto/method.dto.js +3 -4
  96. package/out/service/service/entity/de.service.d.ts +10 -0
  97. package/out/service/service/entity/de.service.d.ts.map +1 -1
  98. package/out/service/service/entity/de.service.js +22 -1
  99. package/out/service/service/entity/method/method.d.ts.map +1 -1
  100. package/out/service/service/entity/method/method.js +1 -12
  101. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  102. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +51 -0
  103. package/out/service/vo/tree-node-data/tree-node-data.d.ts +2 -0
  104. package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
  105. package/out/service/vo/tree-node-data/tree-node-data.js +1 -0
  106. package/package.json +3 -3
  107. package/src/controller/common/control/md-control.controller.ts +7 -2
  108. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +2 -6
  109. package/src/controller/control/grid/grid/grid-column.controller.ts +4 -1
  110. package/src/controller/control/grid/grid/grid.controller.ts +34 -0
  111. package/src/controller/control/kanban/kanban.controller.ts +2 -2
  112. package/src/controller/control/md-ctrl/md-ctrl.controller.ts +1 -1
  113. package/src/controller/control/search-bar/index.ts +1 -0
  114. package/src/controller/control/search-bar/search-bar.controller.ts +178 -10
  115. package/src/controller/control/search-bar/search-bar.service.ts +161 -0
  116. package/src/controller/control/tree/tree.controller.ts +58 -11
  117. package/src/controller/control/tree/tree.service.ts +3 -1
  118. package/src/controller/control/tree-grid-ex/index.ts +2 -0
  119. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +3 -0
  120. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +121 -0
  121. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts +13 -0
  122. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts +76 -0
  123. package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +37 -0
  124. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +116 -140
  125. package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +10 -165
  126. package/src/interface/controller/controller/control/i-grid.controller.ts +9 -0
  127. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +11 -12
  128. package/src/interface/controller/controller/control/i-tree.controller.ts +5 -2
  129. package/src/interface/controller/controller/control/index.ts +1 -0
  130. package/src/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.ts +12 -0
  131. package/src/interface/controller/controller/control/tree-grid-ex-column/index.ts +1 -0
  132. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +2 -2
  133. package/src/interface/controller/state/control/i-search-bar.state.ts +73 -0
  134. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +27 -24
  135. package/src/interface/controller/state/control/i-tree.state.ts +9 -1
  136. package/src/interface/provider/i-tree-grid-ex-column.provider.ts +39 -0
  137. package/src/interface/provider/index.ts +1 -0
  138. package/src/interface/service/service/i-app-de.service.ts +13 -0
  139. package/src/register/helper/index.ts +1 -0
  140. package/src/register/helper/tree-grid-ex-column-register.ts +67 -0
  141. package/src/service/de-service-util.ts +6 -4
  142. package/src/service/dto/method.dto.ts +4 -5
  143. package/src/service/service/entity/de.service.ts +26 -1
  144. package/src/service/service/entity/method/method.ts +1 -13
  145. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +53 -0
  146. package/src/service/vo/tree-node-data/tree-node-data.ts +6 -0
@@ -1,171 +1,16 @@
1
- import { IHttpResponse } from '@ibiz-template/core';
2
- import {
3
- IDETreeDataSetNode,
4
- IDETreeNode,
5
- IDETreeNodeRS,
6
- } from '@ibiz/model-core';
7
- import { isArray } from 'qx-util';
8
- import { ITreeNodeData } from '../../../interface';
9
-
10
- import { ControlVO, TreeDataSetNodeData, UIMapField } from '../../../service';
11
- import { TreeFetchOpts, TreeService } from '../tree/tree.service';
1
+ import { IDETreeGridEx } from '@ibiz/model-core';
2
+ import { TreeService } from '../tree/tree.service';
12
3
 
13
4
  /**
14
5
  * 树表格增强部件服务
15
6
  *
16
- * @author zk
17
- * @date 2023-09-25 05:09:52
7
+ * @author lxm
8
+ * @date 2023-12-21 10:50:35
18
9
  * @export
19
- * @class TreeGridService
20
- * @extends {TreeService}
10
+ * @class TreeGridExService
11
+ * @extends {TreeService<T>}
12
+ * @template T
21
13
  */
22
- export class TreeGridExService extends TreeService {
23
- /**
24
- * 表格列映射关系
25
- *
26
- * @author zk
27
- * @date 2023-09-25 05:09:11
28
- * @type {Map<string, Map<string, UIMapField>>}
29
- * @memberof TreeGridService
30
- */
31
- multipleUiMap: Map<string, Map<string, UIMapField>> = new Map();
32
-
33
- /**
34
- * 初始化节点属性映射
35
- *
36
- * @author lxm
37
- * @date 2022-08-31 18:08:37
38
- */
39
- initUIDataMap(): void {
40
- super.initUIDataMap();
41
- this.model.detreeNodes?.forEach((item: IDETreeNode) => {
42
- const dataMap: Map<string, UIMapField> = new Map();
43
- item.detreeNodeDataItems?.forEach(dataItem => {
44
- const uiKey = dataItem.id!.toLowerCase();
45
- const deField = dataItem.appDEFieldId!;
46
- // 后台实体属性
47
- const deFieldKey = deField.toLowerCase();
48
- const mapField = new UIMapField(uiKey, deFieldKey, {
49
- isOriginField: true,
50
- dataType: dataItem.dataType,
51
- });
52
- dataMap.set(uiKey, mapField);
53
- });
54
- this.multipleUiMap.set(item.id!, dataMap);
55
- });
56
- }
57
-
58
- /**
59
- * 获取实体数据集数据
60
- *
61
- * @protected
62
- * @param {TreeNodeRSModel} nodeRS
63
- * @param {TreeFetchOpts} opts
64
- * @returns {*}
65
- * @memberof TreeService
66
- */
67
- protected async getDENodeDatas(
68
- nodeModel: IDETreeDataSetNode,
69
- nodeRS: IDETreeNodeRS | undefined,
70
- parentNodeData: ITreeNodeData | undefined,
71
- opts: TreeFetchOpts,
72
- ): Promise<TreeDataSetNodeData[]> {
73
- const { appDEDataSetId, appDataEntityId } = nodeModel;
74
-
75
- // 处理查询参数,没有关系的时候不处理参数了
76
- const { context, params, navContext, navParams } = nodeRS
77
- ? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts)
78
- : {
79
- context: opts.context,
80
- params: opts.params,
81
- navContext: {},
82
- navParams: {},
83
- };
84
-
85
- // 设置查询长度
86
- params.size = nodeModel.maxSize || 1000;
87
- // 排序属性
88
- if (nodeModel.sortAppDEFieldId && nodeModel.sortDir) {
89
- Object.assign(params, {
90
- sort: `${nodeModel.sortAppDEFieldId.toLowerCase()},${nodeModel.sortDir.toLowerCase()}`,
91
- });
92
- }
93
-
94
- // 请求实体数据
95
- const response = await this.app.deService.exec(
96
- appDataEntityId!,
97
- appDEDataSetId!,
98
- context,
99
- params,
100
- );
101
-
102
- if (response.data.length) {
103
- const { data } = this.handleResponseForMultiple(response, nodeModel.id!);
104
- const nodeDatas = data.map((item: ControlVO) => {
105
- return new TreeDataSetNodeData(nodeModel, parentNodeData, {
106
- data: item,
107
- leaf: !!opts.leaf,
108
- navContext,
109
- navParams,
110
- });
111
- });
112
- return nodeDatas;
113
- }
114
- return [];
115
- }
116
-
117
- /**
118
- * 处理多数据源响应
119
- *
120
- * @author zk
121
- * @date 2023-09-21 04:09:06
122
- * @param {IHttpResponse} response
123
- * @param {string} tag 多数据源dataUIMap标识
124
- * @return {*} {IHttpResponse}
125
- * @memberof TreeGridService
126
- */
127
- handleResponseForMultiple(
128
- response: IHttpResponse,
129
- tag: string,
130
- ): IHttpResponse {
131
- const res = super.handleResponse(response) as IHttpResponse<
132
- IData[] | IData
133
- >;
134
- if (res.headers) {
135
- if (res.headers['x-page']) {
136
- res.page = Number(res.headers['x-page']);
137
- }
138
- if (res.headers['x-per-page']) {
139
- res.size = Number(res.headers['x-per-page']);
140
- }
141
- if (res.headers['x-total']) {
142
- res.total = Number(res.headers['x-total']);
143
- }
144
- }
145
- if (res.ok) {
146
- if (isArray(res.data)) {
147
- res.data = (res.data as IData[]).map(item =>
148
- this.toUIDataForMultiple(item, tag),
149
- );
150
- } else {
151
- res.data = this.toUIDataForMultiple(res.data, tag);
152
- }
153
- }
154
- return res;
155
- }
156
-
157
- /**
158
- * 实体数据转ui数据
159
- *
160
- * @author zk
161
- * @date 2023-09-21 06:09:06
162
- * @param {IData} entityData 实体数据
163
- * @param {string} tag 多数据源dataUIMap标识
164
- * @return {*} {ControlVO}
165
- * @memberof TreeGridService
166
- */
167
- toUIDataForMultiple(entityData: IData, tag: string): ControlVO {
168
- const dataUIMap = this.multipleUiMap.get(tag);
169
- return new ControlVO(entityData, dataUIMap);
170
- }
171
- }
14
+ export class TreeGridExService<
15
+ T extends IDETreeGridEx = IDETreeGridEx,
16
+ > extends TreeService<T> {}
@@ -67,6 +67,15 @@ export interface IGridController
67
67
  * @memberof IGridController
68
68
  */
69
69
  validate(row: IGridRowState): Promise<boolean>;
70
+
71
+ /**
72
+ * 设置点击分组后回显相关参数
73
+ * @param {IData} data
74
+ * @return {*}
75
+ * @author: zhujiamin
76
+ * @Date: 2023-12-21 10:54:45
77
+ */
78
+ setGroupParams(data: IData): void;
70
79
  }
71
80
 
72
81
  interface AdditionalProperties {
@@ -1,20 +1,19 @@
1
- import { IDETreeGrid } from '@ibiz/model-core';
1
+ import { IDETreeGridEx } from '@ibiz/model-core';
2
2
  import { ITreeGridExEvent } from '../../event';
3
3
  import { ITreeGridExState } from '../../state';
4
- import { IMDControlController } from './i-md-control.controller';
4
+ import { ITreeController } from './i-tree.controller';
5
5
 
6
6
  /**
7
7
  * 树表格(增强)部件控制器
8
8
  *
9
- * @author zk
10
- * @date 2023-09-21 11:09:17
9
+ * @author lxm
10
+ * @date 2023-12-21 11:04:25
11
11
  * @export
12
- * @interface ITreeGridController
13
- * @extends {IMDControlController<IDETreeGrid, ITreeGridState, ITreeGridEvent>}
12
+ * @interface ITreeGridExController
13
+ * @extends {ITreeController<T, S, E>}
14
14
  */
15
- export interface ITreeGridExController
16
- extends IMDControlController<
17
- IDETreeGrid,
18
- ITreeGridExState,
19
- ITreeGridExEvent
20
- > {}
15
+ export interface ITreeGridExController<
16
+ T extends IDETreeGridEx = IDETreeGridEx,
17
+ S extends ITreeGridExState = ITreeGridExState,
18
+ E extends ITreeGridExEvent = ITreeGridExEvent,
19
+ > extends ITreeController<T, S, E> {}
@@ -11,8 +11,11 @@ import { IMDControlController } from './i-md-control.controller';
11
11
  * @interface ITreeController
12
12
  * @extends {IMDControlController}
13
13
  */
14
- export interface ITreeController
15
- extends IMDControlController<IDETree, ITreeState, ITreeEvent> {
14
+ export interface ITreeController<
15
+ T extends IDETree = IDETree,
16
+ S extends ITreeState = ITreeState,
17
+ E extends ITreeEvent = ITreeEvent,
18
+ > extends IMDControlController<T, S, E> {
16
19
  /**
17
20
  * 树节点点击事件
18
21
  *
@@ -33,6 +33,7 @@ export * from './i-context-menu.controller';
33
33
  export * from './i-kanban.controller';
34
34
  export * from './i-tree-grid.controller';
35
35
  export * from './i-tree-grid-ex.controller';
36
+ export * from './tree-grid-ex-column/index';
36
37
  export * from './i-medit-view-panel.controller';
37
38
  export * from './i-chart-exp-bar.controller';
38
39
  export * from './i-map.controller';
@@ -0,0 +1,12 @@
1
+ import { ITreeGridExController } from '../i-tree-grid-ex.controller';
2
+
3
+ /**
4
+ * 树表格(增强)列控制器
5
+ * @author lxm
6
+ * @date 2023-05-24 07:34:51
7
+ * @export
8
+ * @interface IGridColumnController
9
+ */
10
+ export interface ITreeGridExColumnController {
11
+ treeGrid: ITreeGridExController;
12
+ }
@@ -0,0 +1 @@
1
+ export * from './i-tree-grid-ex-column.controller';
@@ -1,4 +1,4 @@
1
- import { IMDControlEvent } from './i-md-control.event';
1
+ import { ITreeEvent } from './i-tree.event';
2
2
 
3
3
  /**
4
4
  * 树表格(增强)部件事件
@@ -9,4 +9,4 @@ import { IMDControlEvent } from './i-md-control.event';
9
9
  * @interface ITreeGridExEvent
10
10
  * @extends {IMDControlEvent}
11
11
  */
12
- export interface ITreeGridExEvent extends IMDControlEvent {}
12
+ export interface ITreeGridExEvent extends ITreeEvent {}
@@ -1,5 +1,6 @@
1
1
  import { ISearchBarGroup } from '@ibiz/model-core';
2
2
  import { IControlState } from './i-control.state';
3
+ import { IColumnState } from './i-grid.state';
3
4
 
4
5
  export interface IFilterBranchNode {
5
6
  /**
@@ -111,4 +112,76 @@ export interface ISearchBarState extends IControlState {
111
112
  * @type {IFilterNode[]}
112
113
  */
113
114
  filterNodes: IFilterNode[];
115
+
116
+ /**
117
+ * 选中的后台分组项
118
+ * @return {*}
119
+ * @author: zhujiamin
120
+ * @Date: 2023-12-21 11:40:29
121
+ */
122
+ selectedSearchGroupItem: IBackendSearchBarGroup | null;
123
+
124
+ /**
125
+ * 搜索栏后台分组项
126
+ * @return {*}
127
+ * @author: zhujiamin
128
+ * @Date: 2023-12-19 14:45:33
129
+ */
130
+ searchBarGroups: IBackendSearchBarGroup[];
131
+ }
132
+
133
+ /**
134
+ * 搜索分组数据接口
135
+ *
136
+ */
137
+ export interface ISearchGroupData {
138
+ /**
139
+ * 表格列状态
140
+ */
141
+ columnstates?: Array<IColumnState>;
142
+
143
+ /**
144
+ * 过滤项树节点数据集合
145
+ */
146
+ filternodes?: Array<IFilterNode>;
147
+
148
+ /**
149
+ * 自定义搜索条件
150
+ */
151
+ searchconds?: IData;
152
+
153
+ /**
154
+ * 表格排序
155
+ */
156
+ sort?: string;
157
+ }
158
+
159
+ /**
160
+ * 后台分组接口
161
+ *
162
+ */
163
+ export interface IBackendSearchBarGroup extends ISearchBarGroup {
164
+ /**
165
+ * 是否保存过
166
+ * @return {*}
167
+ * @author: zhujiamin
168
+ * @Date: 2023-12-22 14:25:09
169
+ */
170
+ saved: boolean;
171
+
172
+ /**
173
+ * 是否显示
174
+ * @return {*}
175
+ * @author: zhujiamin
176
+ * @Date: 2023-12-21 11:36:54
177
+ */
178
+ show: boolean;
179
+
180
+ /**
181
+ * 搜索分组数据
182
+ * @return {*}
183
+ * @author: zhujiamin
184
+ * @Date: 2023-12-21 11:24:21
185
+ */
186
+ searchGroupData: ISearchGroupData;
114
187
  }
@@ -1,6 +1,6 @@
1
+ import { IButtonContainerState } from '../../common';
1
2
  import { IColumnState } from './i-grid.state';
2
- import { IMDControlState } from './i-md-control.state';
3
- import { ITreeNodeData } from './i-tree.state';
3
+ import { ITreeNodeData, ITreeState } from './i-tree.state';
4
4
 
5
5
  /**
6
6
  * 树表格(增强)部件状态
@@ -11,9 +11,7 @@ import { ITreeNodeData } from './i-tree.state';
11
11
  * @interface ITreeGridExState
12
12
  * @extends {IMDControlState}
13
13
  */
14
- export interface ITreeGridExState extends IMDControlState {
15
- items: ITreeNodeData[];
16
-
14
+ export interface ITreeGridExState extends ITreeState {
17
15
  /**
18
16
  * 表格列状态数组
19
17
  * 顺序就是列的排序
@@ -25,32 +23,37 @@ export interface ITreeGridExState extends IMDControlState {
25
23
  columnStates: IColumnState[];
26
24
 
27
25
  /**
28
- * 树的根节点
26
+ * 树表格(增强)行状态Map
29
27
  *
30
- * @author zk
31
- * @date 2023-09-21 02:09:29
32
- * @type {ITreeNodeData[]}
33
- * @memberof ITreeGridState
28
+ * @author lxm
29
+ * @date 2022-09-05 19:09:12
30
+ * @type {IGridRowState[]}
34
31
  */
35
- rootNodes: ITreeNodeData[];
32
+ rows: { [p: string]: ITreeGridExRowState };
33
+ }
36
34
 
35
+ /**
36
+ * 树表格(增强)行状态
37
+ * @author lxm
38
+ * @date 2023-12-21 02:22:02
39
+ * @export
40
+ * @interface ITreeGridExRowState
41
+ */
42
+ export interface ITreeGridExRowState {
37
43
  /**
38
- * 外部提供的默认展开的节点集合
39
- *
40
- * @author zk
41
- * @date 2023-09-21 02:09:48
42
- * @type {string[]}
43
- * @memberof ITreeGridState
44
+ * 行数据(一般是树节点的数据)
45
+ * @author lxm
46
+ * @date 2023-12-21 02:27:46
47
+ * @type {ITreeNodeData}
44
48
  */
45
- defaultExpandedKeys: string[];
49
+ data: ITreeNodeData;
46
50
 
47
51
  /**
48
- * 实际默认展开节点集合
52
+ * 操作列状态(p是操作列的标识)
49
53
  *
50
- * @author zk
51
- * @date 2023-09-21 02:09:42
52
- * @type {string[]}
53
- * @memberof ITreeGridState
54
+ * @author lxm
55
+ * @date 2022-09-07 22:09:38
56
+ * @type {({ [p: string]: IButtonContainerState })}
54
57
  */
55
- expandedKeys: string[];
58
+ uaColStates: { [p: string]: IButtonContainerState };
56
59
  }
@@ -69,7 +69,7 @@ export interface ITreeState extends IMDControlState {
69
69
  * @export
70
70
  * @class ITreeNodeData
71
71
  */
72
- export interface ITreeNodeData {
72
+ export interface ITreeNodeData extends IData {
73
73
  /**
74
74
  * 节点数据的唯一标识(创建的时候自动生成)
75
75
  * @author lxm
@@ -78,6 +78,14 @@ export interface ITreeNodeData {
78
78
  */
79
79
  _uuid: string;
80
80
 
81
+ /**
82
+ * 节点类型
83
+ * @description 值模式 [云树视图节点类型] {STATIC:静态、 DE:动态(实体)、 CODELIST:动态(代码表) }
84
+ * @type {( string | 'STATIC' | 'DE' | 'CODELIST')}
85
+ * 来源 getTreeNodeType
86
+ */
87
+ _nodeType?: string;
88
+
81
89
  /**
82
90
  * 节点标识(对应节点模型的id)
83
91
  *
@@ -0,0 +1,39 @@
1
+ import { IDETreeColumn } from '@ibiz/model-core';
2
+ import {
3
+ ITreeGridExColumnController,
4
+ ITreeGridExController,
5
+ } from '../controller';
6
+
7
+ /**
8
+ * 树表格(增强)列适配器的接口
9
+ *
10
+ * @author lxm
11
+ * @date 2022-09-19 19:09:10
12
+ * @export
13
+ * @interface ITreeGridExColumnProvider
14
+ */
15
+ export interface ITreeGridExColumnProvider {
16
+ /**
17
+ * 树表格(增强)列组件
18
+ *
19
+ * @author lxm
20
+ * @date 2022-09-20 10:09:50
21
+ * @type {unknown}
22
+ */
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ component: any;
25
+
26
+ /**
27
+ * 创建树表格(增强)列控制器
28
+ *
29
+ * @author lxm
30
+ * @date 2022-11-09 10:11:07
31
+ * @param {GridColumnModel} columnModel 列模型
32
+ * @param {GridController} grid 树表格(增强)控制器
33
+ * @returns {*} {Promise<GridColumnController>}
34
+ */
35
+ createController(
36
+ columnModel: IDETreeColumn,
37
+ treeGrid: ITreeGridExController,
38
+ ): Promise<ITreeGridExColumnController>;
39
+ }
@@ -16,3 +16,4 @@ export type {
16
16
  IDEMethodProvider,
17
17
  IDEMethodCreateOptions,
18
18
  } from './i-de-method.provider';
19
+ export type { ITreeGridExColumnProvider } from './i-tree-grid-ex-column.provider';
@@ -3,6 +3,7 @@ import { DECache } from '../../../service/utils';
3
3
  import { IFileService } from './i-file.service';
4
4
  import { IWorkFlowService } from './i-wf.service';
5
5
  import { IConfigService } from './i-config.service';
6
+ import { IDataEntity } from '../i-data-entity/i-data-entity';
6
7
 
7
8
  /**
8
9
  * 实体服务
@@ -321,6 +322,18 @@ export interface IAppDEService {
321
322
  data?: IData,
322
323
  ): Promise<IHttpResponse>;
323
324
 
325
+ /**
326
+ * 创建当前数据对象实例
327
+ *
328
+ * @author chitanda
329
+ * @date 2023-12-23 19:12:01
330
+ * @param {(IData[] | IDataEntity[] | IData | IDataEntity)} data
331
+ * @return {*} {(IDataEntity | IDataEntity[])}
332
+ */
333
+ createEntity(
334
+ data: IData[] | IDataEntity[] | IData | IDataEntity,
335
+ ): IDataEntity | IDataEntity[];
336
+
324
337
  /**
325
338
  * 当前实体服务销毁时调用
326
339
  *
@@ -11,3 +11,4 @@ export * from './view-register';
11
11
  export * from './async-action-register';
12
12
  export * from './platform-register';
13
13
  export * from './de-method-register';
14
+ export * from './tree-grid-ex-column-register';
@@ -0,0 +1,67 @@
1
+ import { IDETreeColumn } from '@ibiz/model-core';
2
+ import { ITreeGridExColumnProvider } from '../../interface';
3
+ import { getPluginRegisterKey } from './common-register';
4
+
5
+ /** 表格列适配器前缀 */
6
+ export const TREEGRIDEX_COLUMN_PROVIDER_PREFIX = 'TREEGRIDEX_COLUMN';
7
+
8
+ /**
9
+ * 注册表格列适配器
10
+ * @author lxm
11
+ * @date 2023-05-06 09:14:16
12
+ * @export
13
+ * @param {string} key
14
+ * @param {() => ITreeGridExColumnProvider} callback 生成表格列适配器的回调
15
+ */
16
+ export function registerTreeGridExColumnProvider(
17
+ key: string,
18
+ callback: () => ITreeGridExColumnProvider,
19
+ ): void {
20
+ ibiz.register.register(
21
+ `${TREEGRIDEX_COLUMN_PROVIDER_PREFIX}_${key}`,
22
+ callback,
23
+ );
24
+ }
25
+
26
+ function getProvider(key: string): ITreeGridExColumnProvider | undefined {
27
+ return ibiz.register.get(
28
+ `${TREEGRIDEX_COLUMN_PROVIDER_PREFIX}_${key}`,
29
+ ) as ITreeGridExColumnProvider;
30
+ }
31
+
32
+ /**
33
+ * 获取表格列适配器
34
+ * @author lxm
35
+ * @date 2023-05-06 09:29:23
36
+ * @export
37
+ * @param {IAppView} model
38
+ * @return {*} {Promise<ITreeGridExColumnProvider>}
39
+ */
40
+ export async function getTreeGridExColumnProvider(
41
+ model: IDETreeColumn,
42
+ ): Promise<ITreeGridExColumnProvider | undefined> {
43
+ let provider: ITreeGridExColumnProvider | undefined;
44
+ const { columnType, appId, renderSysPFPluginId } =
45
+ model as Required<IDETreeColumn>;
46
+
47
+ // 树表格列插件
48
+ if (renderSysPFPluginId) {
49
+ const pluginKey = await getPluginRegisterKey(renderSysPFPluginId, appId);
50
+ if (pluginKey) {
51
+ provider = getProvider(pluginKey);
52
+ }
53
+ if (!provider) {
54
+ ibiz.log.error(`找不到树表格列插件${pluginKey}对应的适配器`);
55
+ } else {
56
+ return provider;
57
+ }
58
+ }
59
+
60
+ // 找表格列类型
61
+ provider = getProvider(columnType);
62
+ if (!provider) {
63
+ ibiz.log.error(`找不到表格列类型${columnType}对应的适配器`);
64
+ } else {
65
+ return provider;
66
+ }
67
+ }
@@ -32,11 +32,13 @@ export class DEServiceUtil {
32
32
 
33
33
  /**
34
34
  * 实体服务构造方法缓存
35
+ *
35
36
  * @author lxm
36
37
  * @date 2023-05-15 08:37:13
37
38
  * @protected
38
39
  */
39
- protected constructorCache: Map<string, DEServiceConstructor> = new Map();
40
+ protected static constructorCache: Map<string, DEServiceConstructor> =
41
+ new Map();
40
42
 
41
43
  /**
42
44
  * Creates an instance of DEServiceUtil.
@@ -55,8 +57,8 @@ export class DEServiceUtil {
55
57
  * @param {string} id 实体标识
56
58
  * @param {DEServiceConstructor} constructor
57
59
  */
58
- register(id: string, constructor: DEServiceConstructor): void {
59
- this.constructorCache.set(id, constructor);
60
+ static register(id: string, constructor: DEServiceConstructor): void {
61
+ this.constructorCache.set(id.toUpperCase(), constructor);
60
62
  }
61
63
 
62
64
  /**
@@ -82,7 +84,7 @@ export class DEServiceUtil {
82
84
  if (!entityModel) {
83
85
  throw new RuntimeError(`未找到应用实体[${id}]`);
84
86
  }
85
- const constructor = this.constructorCache.get(id);
87
+ const constructor = DEServiceUtil.constructorCache.get(id.toUpperCase());
86
88
  let service: IAppDEService;
87
89
  if (constructor) {
88
90
  service = await constructor(sandboxId, entityModel);