@ibiz-template/runtime 0.4.17-dev.0 → 0.4.17-dev.1
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 +696 -267
- package/dist/index.system.min.js +2 -2
- package/out/controller/control/grid/grid/grid-column.controller.d.ts +2 -1
- package/out/controller/control/grid/grid/grid-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.d.ts +17 -1
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +32 -0
- package/out/controller/control/search-bar/search-bar.controller.d.ts +59 -2
- package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar.controller.js +142 -9
- package/out/controller/control/search-bar/search-bar.service.d.ts +78 -0
- package/out/controller/control/search-bar/search-bar.service.d.ts.map +1 -0
- package/out/controller/control/search-bar/search-bar.service.js +130 -0
- package/out/controller/control/tree/tree.controller.d.ts +27 -1
- package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
- package/out/controller/control/tree/tree.controller.js +45 -7
- package/out/controller/control/tree/tree.service.d.ts +1 -1
- package/out/controller/control/tree/tree.service.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/index.d.ts +2 -0
- package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/index.js +2 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +4 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +3 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +93 -0
- 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
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +89 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +26 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +48 -46
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +85 -115
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +8 -58
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +5 -135
- package/out/interface/controller/controller/control/i-grid.controller.d.ts +8 -0
- package/out/interface/controller/controller/control/i-grid.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +7 -7
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-tree.controller.d.ts +1 -1
- package/out/interface/controller/controller/control/i-tree.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.d.ts +1 -0
- package/out/interface/controller/controller/control/index.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.js +1 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts +12 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.js +1 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts +2 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts.map +1 -0
- package/out/interface/controller/controller/control/tree-grid-ex-column/index.js +1 -0
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +2 -2
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-search-bar.state.d.ts +64 -0
- package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +31 -23
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-tree.state.d.ts +8 -1
- package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
- package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts +31 -0
- package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts.map +1 -0
- package/out/interface/provider/i-tree-grid-ex-column.provider.js +1 -0
- package/out/interface/provider/index.d.ts +1 -0
- package/out/interface/provider/index.d.ts.map +1 -1
- package/out/register/helper/index.d.ts +1 -0
- package/out/register/helper/index.d.ts.map +1 -1
- package/out/register/helper/index.js +1 -0
- package/out/register/helper/tree-grid-ex-column-register.d.ts +23 -0
- package/out/register/helper/tree-grid-ex-column-register.d.ts.map +1 -0
- package/out/register/helper/tree-grid-ex-column-register.js +50 -0
- package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
- package/out/service/vo/tree-node-data/tree-data-set-node-data.js +51 -0
- package/out/service/vo/tree-node-data/tree-node-data.d.ts +2 -0
- package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
- package/out/service/vo/tree-node-data/tree-node-data.js +1 -0
- package/package.json +3 -3
- package/src/controller/control/grid/grid/grid-column.controller.ts +4 -1
- package/src/controller/control/grid/grid/grid.controller.ts +34 -0
- package/src/controller/control/search-bar/search-bar.controller.ts +178 -10
- package/src/controller/control/search-bar/search-bar.service.ts +161 -0
- package/src/controller/control/tree/tree.controller.ts +58 -11
- package/src/controller/control/tree/tree.service.ts +3 -1
- package/src/controller/control/tree-grid-ex/index.ts +2 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +3 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +121 -0
- 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
- 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
- package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +37 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +116 -140
- package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +10 -165
- package/src/interface/controller/controller/control/i-grid.controller.ts +9 -0
- package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +11 -12
- package/src/interface/controller/controller/control/i-tree.controller.ts +5 -2
- package/src/interface/controller/controller/control/index.ts +1 -0
- package/src/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.ts +12 -0
- package/src/interface/controller/controller/control/tree-grid-ex-column/index.ts +1 -0
- package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +2 -2
- package/src/interface/controller/state/control/i-search-bar.state.ts +73 -0
- package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +27 -24
- package/src/interface/controller/state/control/i-tree.state.ts +9 -1
- package/src/interface/provider/i-tree-grid-ex-column.provider.ts +39 -0
- package/src/interface/provider/index.ts +1 -0
- package/src/register/helper/index.ts +1 -0
- package/src/register/helper/tree-grid-ex-column-register.ts +67 -0
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +53 -0
- package/src/service/vo/tree-node-data/tree-node-data.ts +6 -0
|
@@ -1,24 +1,26 @@
|
|
|
1
|
+
import { IDETreeColumn, IDETreeGridEx } from '@ibiz/model-core';
|
|
1
2
|
import { recursiveIterate } from '@ibiz-template/core';
|
|
2
|
-
import { IDETree, IDETreeColumn } from '@ibiz/model-core';
|
|
3
3
|
import {
|
|
4
|
-
MDCtrlLoadParams,
|
|
5
|
-
ITreeNodeData,
|
|
6
4
|
ITreeGridExController,
|
|
7
|
-
IGridColumnProvider,
|
|
8
5
|
ITreeGridExState,
|
|
9
6
|
ITreeGridExEvent,
|
|
7
|
+
ITreeGridExColumnProvider,
|
|
8
|
+
ITreeGridExRowState,
|
|
9
|
+
ITreeNodeData,
|
|
10
10
|
} from '../../../interface';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
GridColumnController,
|
|
15
|
-
GridFieldColumnController,
|
|
16
|
-
GridUAColumnController,
|
|
17
|
-
} from '../grid';
|
|
11
|
+
import { getTreeGridExColumnProvider } from '../../../register';
|
|
12
|
+
|
|
18
13
|
import { TreeGridExService } from './tree-grid-ex.service';
|
|
14
|
+
import { TreeController } from '../tree/tree.controller';
|
|
15
|
+
import {
|
|
16
|
+
TreeGridExColumnController,
|
|
17
|
+
TreeGridExFieldColumnController,
|
|
18
|
+
TreeGridExUAColumnController,
|
|
19
|
+
} from './tree-grid-ex-column';
|
|
20
|
+
import { TreeGridExRowState } from './tree-grid-ex-row.state';
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
23
|
+
* 树表格(增强)部件控制器
|
|
22
24
|
*
|
|
23
25
|
* @author zk
|
|
24
26
|
* @date 2023-09-21 06:09:46
|
|
@@ -27,70 +29,97 @@ import { TreeGridExService } from './tree-grid-ex.service';
|
|
|
27
29
|
* @extends {MDControlController<IDETree, ITreeGridState, ITreeGridEvent>}
|
|
28
30
|
* @implements {ITreeGridExController}
|
|
29
31
|
*/
|
|
30
|
-
export class TreeGridExController
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
export class TreeGridExController<
|
|
33
|
+
T extends IDETreeGridEx = IDETreeGridEx,
|
|
34
|
+
S extends ITreeGridExState = ITreeGridExState,
|
|
35
|
+
E extends ITreeGridExEvent = ITreeGridExEvent,
|
|
36
|
+
>
|
|
37
|
+
extends TreeController<T, S, E>
|
|
38
|
+
implements ITreeGridExController<T, S, E>
|
|
33
39
|
{
|
|
34
40
|
declare service: TreeGridExService;
|
|
35
41
|
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
43
|
+
* 树表格(增强)列的适配器
|
|
38
44
|
*
|
|
39
45
|
* @author zk
|
|
40
46
|
* @date 2023-09-21 06:09:04
|
|
41
|
-
* @type {{ [key: string]:
|
|
47
|
+
* @type {{ [key: string]: ITreeGridExColumnProvider }}
|
|
42
48
|
* @memberof TreeGridExController
|
|
43
49
|
*/
|
|
44
|
-
providers: { [key: string]:
|
|
50
|
+
providers: { [key: string]: ITreeGridExColumnProvider } = {};
|
|
45
51
|
|
|
46
52
|
/**
|
|
47
|
-
*
|
|
53
|
+
* 所有树表格(增强)列控制器集合
|
|
48
54
|
*
|
|
49
55
|
* @author zk
|
|
50
56
|
* @date 2023-09-21 06:09:10
|
|
51
|
-
* @type {{ [key: string]:
|
|
57
|
+
* @type {{ [key: string]: TreeGridExColumnController }}
|
|
52
58
|
* @memberof TreeGridExController
|
|
53
59
|
*/
|
|
54
|
-
columns: { [key: string]:
|
|
60
|
+
columns: { [key: string]: TreeGridExColumnController } = {};
|
|
55
61
|
|
|
56
62
|
/**
|
|
57
|
-
*
|
|
63
|
+
* 所有树表格(增强)属性列的控制器
|
|
58
64
|
*
|
|
59
65
|
* @author zk
|
|
60
66
|
* @date 2023-09-21 06:09:16
|
|
61
|
-
* @type {{ [key: string]:
|
|
67
|
+
* @type {{ [key: string]: TreeGridExFieldColumnController }}
|
|
62
68
|
* @memberof TreeGridExController
|
|
63
69
|
*/
|
|
64
|
-
fieldColumns: { [key: string]:
|
|
70
|
+
fieldColumns: { [key: string]: TreeGridExFieldColumnController } = {};
|
|
65
71
|
|
|
66
72
|
/**
|
|
67
|
-
*
|
|
73
|
+
* 所有树表格(增强)操作列的控制器
|
|
68
74
|
*
|
|
69
75
|
* @author zk
|
|
70
76
|
* @date 2023-09-21 06:09:21
|
|
71
|
-
* @type {{ [key: string]:
|
|
77
|
+
* @type {{ [key: string]: TreeGridExUAColumnController }}
|
|
72
78
|
* @memberof TreeGridExController
|
|
73
79
|
*/
|
|
74
|
-
uaColumns: { [key: string]:
|
|
80
|
+
uaColumns: { [key: string]: TreeGridExUAColumnController } = {};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 是否有配置宽度自适应列
|
|
84
|
+
*
|
|
85
|
+
* @type {boolean}
|
|
86
|
+
* @memberof GridController
|
|
87
|
+
*/
|
|
88
|
+
get hasAdaptiveColumn(): boolean {
|
|
89
|
+
return !!Object.values(this.columns).find(item => item.isAdaptiveColumn);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 单元格超出呈现模式
|
|
94
|
+
* @author lxm
|
|
95
|
+
* @date 2023-11-17 01:56:26
|
|
96
|
+
* @readonly
|
|
97
|
+
* @type {('wrap' | 'ellipsis')}
|
|
98
|
+
*/
|
|
99
|
+
get overflowMode(): 'wrap' | 'ellipsis' {
|
|
100
|
+
return ibiz.config.grid.overflowMode;
|
|
101
|
+
}
|
|
75
102
|
|
|
76
103
|
protected initState(): void {
|
|
77
104
|
super.initState();
|
|
78
|
-
// 根节点初始化
|
|
79
|
-
this.state.size = 0;
|
|
80
105
|
this.state.columnStates = [];
|
|
81
|
-
this.state.
|
|
106
|
+
this.state.rows = {};
|
|
82
107
|
}
|
|
83
108
|
|
|
84
109
|
protected async onCreated(): Promise<void> {
|
|
85
110
|
await super.onCreated();
|
|
86
|
-
|
|
87
|
-
await this.service.init(this.context);
|
|
111
|
+
|
|
88
112
|
this.initColumnStates();
|
|
89
113
|
await this.initGridColumns();
|
|
90
114
|
}
|
|
91
115
|
|
|
116
|
+
protected async initService(): Promise<void> {
|
|
117
|
+
this.service = new TreeGridExService(this.model);
|
|
118
|
+
await this.service.init(this.context);
|
|
119
|
+
}
|
|
120
|
+
|
|
92
121
|
/**
|
|
93
|
-
*
|
|
122
|
+
* 初始化树表格(增强)属性列,操作列,编辑项控制器
|
|
94
123
|
*
|
|
95
124
|
* @author zk
|
|
96
125
|
* @date 2023-09-21 06:09:28
|
|
@@ -109,7 +138,7 @@ export class TreeGridExController
|
|
|
109
138
|
}
|
|
110
139
|
|
|
111
140
|
/**
|
|
112
|
-
*
|
|
141
|
+
* 初始化树表格(增强)属性列,操作列,编辑项控制器
|
|
113
142
|
*
|
|
114
143
|
* @author zk
|
|
115
144
|
* @date 2023-09-21 06:09:37
|
|
@@ -120,27 +149,28 @@ export class TreeGridExController
|
|
|
120
149
|
*/
|
|
121
150
|
protected async initColumnsController(column: IDETreeColumn): Promise<void> {
|
|
122
151
|
// 初始化适配器
|
|
123
|
-
const provider = await
|
|
152
|
+
const provider = await getTreeGridExColumnProvider(column);
|
|
124
153
|
if (!provider) {
|
|
125
154
|
return;
|
|
126
155
|
}
|
|
127
156
|
this.providers[column.codeName!] = provider;
|
|
128
157
|
|
|
129
|
-
//
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
this.columns[column.codeName!] = controller as GridColumnController;
|
|
158
|
+
// 初始化树表格(增强)列控制器
|
|
159
|
+
const controller = await provider.createController(column, this);
|
|
160
|
+
|
|
133
161
|
// 分类存放控制器
|
|
162
|
+
this.columns[column.codeName!] = controller as TreeGridExColumnController;
|
|
134
163
|
if (column.columnType === 'DEFGRIDCOLUMN') {
|
|
135
164
|
this.fieldColumns[column.codeName!] =
|
|
136
|
-
controller as
|
|
165
|
+
controller as TreeGridExFieldColumnController;
|
|
137
166
|
} else if (column.columnType === 'UAGRIDCOLUMN') {
|
|
138
|
-
this.uaColumns[column.codeName!] =
|
|
167
|
+
this.uaColumns[column.codeName!] =
|
|
168
|
+
controller as TreeGridExUAColumnController;
|
|
139
169
|
}
|
|
140
170
|
}
|
|
141
171
|
|
|
142
172
|
/**
|
|
143
|
-
*
|
|
173
|
+
* 初始化树表格(增强)列状态
|
|
144
174
|
*
|
|
145
175
|
* @author zk
|
|
146
176
|
* @date 2023-09-21 06:09:43
|
|
@@ -148,20 +178,15 @@ export class TreeGridExController
|
|
|
148
178
|
* @memberof TreeGridExController
|
|
149
179
|
*/
|
|
150
180
|
protected initColumnStates(): void {
|
|
151
|
-
|
|
152
|
-
this.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{ childrenFields: ['detreeColumns'] },
|
|
164
|
-
);
|
|
181
|
+
this.model.detreeColumns?.forEach(column => {
|
|
182
|
+
this.state.columnStates.push({
|
|
183
|
+
key: column.codeName!,
|
|
184
|
+
caption: column.caption!,
|
|
185
|
+
hidden: !!column.hideDefault,
|
|
186
|
+
uaColumn: column.columnType === 'UAGRIDCOLUMN',
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
|
|
165
190
|
this.calcColumnFixed();
|
|
166
191
|
}
|
|
167
192
|
|
|
@@ -174,111 +199,62 @@ export class TreeGridExController
|
|
|
174
199
|
* @memberof TreeGridExController
|
|
175
200
|
*/
|
|
176
201
|
protected calcColumnFixed(): void {
|
|
202
|
+
// 过滤出当前显示的列
|
|
177
203
|
const showColumns = this.state.columnStates.filter(
|
|
178
204
|
column => !column.hidden,
|
|
179
205
|
);
|
|
180
206
|
const allNum = showColumns.length;
|
|
181
207
|
showColumns.forEach((column, index) => {
|
|
182
208
|
if (column.uaColumn) {
|
|
209
|
+
// 操作列根据在中间列的那一侧,固定在最左侧或最右侧
|
|
183
210
|
column.fixed = index + 1 <= Math.floor(allNum / 2) ? 'left' : 'right';
|
|
184
|
-
} else {
|
|
185
|
-
column.fixed = 'right';
|
|
186
211
|
}
|
|
187
212
|
});
|
|
188
213
|
}
|
|
189
214
|
|
|
190
215
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* @
|
|
194
|
-
* @
|
|
195
|
-
* @
|
|
196
|
-
* @return {*} {Promise<ITreeNodeData[]>}
|
|
197
|
-
* @memberof TreeGridExController
|
|
216
|
+
* 获取树表格行数据
|
|
217
|
+
* @author lxm
|
|
218
|
+
* @date 2023-12-22 02:23:44
|
|
219
|
+
* @param {string} key 可以是节点id也可以是_uuid
|
|
220
|
+
* @return {*} {(ITreeGridExRowState | undefined)}
|
|
198
221
|
*/
|
|
199
|
-
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
await this.afterLoad(args, nodes);
|
|
204
|
-
this.state.isLoaded = true;
|
|
205
|
-
await this.evt.emit('onLoadSuccess', {
|
|
206
|
-
isInitialLoad,
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
return nodes;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* 加载子节点数据
|
|
214
|
-
*
|
|
215
|
-
* @author zk
|
|
216
|
-
* @date 2023-09-21 06:09:02
|
|
217
|
-
* @param {ITreeNodeData} [parentNode]
|
|
218
|
-
* @return {*} {Promise<ITreeNodeData[]>}
|
|
219
|
-
* @memberof TreeGridExController
|
|
220
|
-
*/
|
|
221
|
-
async loadNodes(parentNode?: ITreeNodeData): Promise<ITreeNodeData[]> {
|
|
222
|
-
const params = await this.getFetchParams();
|
|
223
|
-
const hasQuery = !!params.query;
|
|
224
|
-
const defaultExpandedKeys = !parentNode
|
|
225
|
-
? this.state.defaultExpandedKeys
|
|
226
|
-
: undefined;
|
|
227
|
-
|
|
228
|
-
// 请求服务获取子节点数据
|
|
229
|
-
await this.startLoading();
|
|
230
|
-
let nodes;
|
|
231
|
-
try {
|
|
232
|
-
nodes =
|
|
233
|
-
(await this.service.fetchChildNodes(parentNode, {
|
|
234
|
-
context: this.context.clone(),
|
|
235
|
-
params,
|
|
236
|
-
hasQuery,
|
|
237
|
-
defaultExpandedKeys,
|
|
238
|
-
})) || [];
|
|
239
|
-
} finally {
|
|
240
|
-
await this.endLoading();
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// 有父节点绑定到父节点数据上,无父节点替换rootNodes
|
|
244
|
-
if (parentNode) {
|
|
245
|
-
parentNode.children = nodes;
|
|
246
|
-
} else {
|
|
247
|
-
this.state.rootNodes = nodes;
|
|
222
|
+
getRowState(key: string): ITreeGridExRowState | undefined {
|
|
223
|
+
const nodeData = this.getNodeData(key);
|
|
224
|
+
if (nodeData) {
|
|
225
|
+
return this.state.rows[nodeData._uuid];
|
|
248
226
|
}
|
|
227
|
+
}
|
|
249
228
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
recursiveIterate(
|
|
253
|
-
{ children: this.state.rootNodes },
|
|
254
|
-
(node: ITreeNodeData) => {
|
|
255
|
-
this.state.items.push(node);
|
|
256
|
-
},
|
|
257
|
-
);
|
|
229
|
+
async afterLoadNodes(nodes: ITreeNodeData[]): Promise<void> {
|
|
230
|
+
await super.afterLoadNodes(nodes);
|
|
258
231
|
|
|
259
|
-
|
|
232
|
+
// 封装更新树表格行数据
|
|
233
|
+
recursiveIterate({ children: nodes }, (node: ITreeNodeData) => {
|
|
234
|
+
this.state.rows[node._uuid] = new TreeGridExRowState(node, this);
|
|
235
|
+
});
|
|
260
236
|
}
|
|
261
237
|
|
|
262
238
|
/**
|
|
263
|
-
*
|
|
239
|
+
* 转换各类多语言
|
|
264
240
|
*
|
|
265
|
-
* @
|
|
266
|
-
* @
|
|
267
|
-
* @param {ITreeNodeData[]} nodes
|
|
268
|
-
* @return {*} {string[]}
|
|
269
|
-
* @memberof TreeGridExController
|
|
241
|
+
* @date 2023-05-18 02:57:00
|
|
242
|
+
* @protected
|
|
270
243
|
*/
|
|
271
|
-
protected
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
244
|
+
protected convertMultipleLanguages(): void {
|
|
245
|
+
// *转换列标题的多语言
|
|
246
|
+
const convertColumnCaption = (columns: IDETreeColumn[]): void => {
|
|
247
|
+
columns.forEach((column: IDETreeColumn) => {
|
|
248
|
+
if (column.capLanguageRes && column.capLanguageRes.lanResTag) {
|
|
249
|
+
column.caption = ibiz.i18n.t(
|
|
250
|
+
column.capLanguageRes.lanResTag,
|
|
251
|
+
column.caption,
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
if (this.model.detreeColumns && this.model.detreeColumns.length > 0) {
|
|
257
|
+
convertColumnCaption(this.model.detreeColumns);
|
|
281
258
|
}
|
|
282
|
-
return expandedKeys;
|
|
283
259
|
}
|
|
284
260
|
}
|
|
@@ -1,171 +1,16 @@
|
|
|
1
|
-
import {
|
|
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
|
|
17
|
-
* @date 2023-
|
|
7
|
+
* @author lxm
|
|
8
|
+
* @date 2023-12-21 10:50:35
|
|
18
9
|
* @export
|
|
19
|
-
* @class
|
|
20
|
-
* @extends {TreeService}
|
|
10
|
+
* @class TreeGridExService
|
|
11
|
+
* @extends {TreeService<T>}
|
|
12
|
+
* @template T
|
|
21
13
|
*/
|
|
22
|
-
export class TreeGridExService
|
|
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 {
|
|
1
|
+
import { IDETreeGridEx } from '@ibiz/model-core';
|
|
2
2
|
import { ITreeGridExEvent } from '../../event';
|
|
3
3
|
import { ITreeGridExState } from '../../state';
|
|
4
|
-
import {
|
|
4
|
+
import { ITreeController } from './i-tree.controller';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* 树表格(增强)部件控制器
|
|
8
8
|
*
|
|
9
|
-
* @author
|
|
10
|
-
* @date 2023-
|
|
9
|
+
* @author lxm
|
|
10
|
+
* @date 2023-12-21 11:04:25
|
|
11
11
|
* @export
|
|
12
|
-
* @interface
|
|
13
|
-
* @extends {
|
|
12
|
+
* @interface ITreeGridExController
|
|
13
|
+
* @extends {ITreeController<T, S, E>}
|
|
14
14
|
*/
|
|
15
|
-
export interface ITreeGridExController
|
|
16
|
-
extends
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
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 {
|
|
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
|
|
12
|
+
export interface ITreeGridExEvent extends ITreeEvent {}
|