@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,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 {
|
|
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
|
|
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
|
|
31
|
-
* @date
|
|
32
|
-
* @type {
|
|
33
|
-
* @memberof ITreeGridState
|
|
28
|
+
* @author lxm
|
|
29
|
+
* @date 2022-09-05 19:09:12
|
|
30
|
+
* @type {IGridRowState[]}
|
|
34
31
|
*/
|
|
35
|
-
|
|
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
|
-
* @
|
|
41
|
-
* @
|
|
42
|
-
* @type {string[]}
|
|
43
|
-
* @memberof ITreeGridState
|
|
44
|
+
* 行数据(一般是树节点的数据)
|
|
45
|
+
* @author lxm
|
|
46
|
+
* @date 2023-12-21 02:27:46
|
|
47
|
+
* @type {ITreeNodeData}
|
|
44
48
|
*/
|
|
45
|
-
|
|
49
|
+
data: ITreeNodeData;
|
|
46
50
|
|
|
47
51
|
/**
|
|
48
|
-
*
|
|
52
|
+
* 操作列状态(p是操作列的标识)
|
|
49
53
|
*
|
|
50
|
-
* @author
|
|
51
|
-
* @date
|
|
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
|
-
|
|
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
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/* eslint-disable no-constructor-return */
|
|
1
2
|
import { IDETreeDataSetNode, IDETreeNodeDataItem } from '@ibiz/model-core';
|
|
3
|
+
import { updateKeyDefine } from '@ibiz-template/core';
|
|
2
4
|
import { IIcon, ITreeNodeData } from '../../../interface';
|
|
3
5
|
import { calcDeCodeNameById } from '../../../model';
|
|
4
6
|
import { ScriptFactory } from '../../../utils';
|
|
@@ -70,6 +72,57 @@ export class TreeDataSetNodeData extends TreeNodeData implements ITreeNodeData {
|
|
|
70
72
|
if (model.leafFlagAppDEFieldId) {
|
|
71
73
|
this.leaf = fieldValueToBoolean(data[model.leafFlagAppDEFieldId]);
|
|
72
74
|
}
|
|
75
|
+
|
|
76
|
+
/** 数据项映射 */
|
|
77
|
+
const dataItemkeyMap = new Map<string | symbol, string | symbol>();
|
|
78
|
+
const dataItemDefaults: IData = {};
|
|
79
|
+
model.detreeNodeDataItems?.forEach(dataItem => {
|
|
80
|
+
const uiKey = dataItem.id!.toLowerCase();
|
|
81
|
+
// 后台实体属性
|
|
82
|
+
const deFieldKey = dataItem.appDEFieldId!.toLowerCase();
|
|
83
|
+
dataItemkeyMap.set(uiKey, deFieldKey);
|
|
84
|
+
if (dataItem.defaultValue) {
|
|
85
|
+
dataItemDefaults[uiKey] = dataItem.defaultValue;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
return new Proxy<TreeDataSetNodeData>(this, {
|
|
90
|
+
set(target, p, value): boolean {
|
|
91
|
+
if (Object.prototype.hasOwnProperty.call(target.deData, p)) {
|
|
92
|
+
target.deData[p] = value;
|
|
93
|
+
} else if (dataItemkeyMap.has(p)) {
|
|
94
|
+
target.deData[dataItemkeyMap.get(p)!] = value;
|
|
95
|
+
} else {
|
|
96
|
+
target[p] = value;
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
get(target, p, _receiver): unknown {
|
|
102
|
+
if (target[p] !== undefined) {
|
|
103
|
+
return target[p];
|
|
104
|
+
}
|
|
105
|
+
if (dataItemkeyMap.has(p)) {
|
|
106
|
+
return target.deData[dataItemkeyMap.get(p)!] || dataItemDefaults[p];
|
|
107
|
+
}
|
|
108
|
+
if (target.deData[p] !== undefined) {
|
|
109
|
+
return target.deData[p];
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
ownKeys(target): ArrayLike<string | symbol> {
|
|
114
|
+
// 整合所有并排除重复
|
|
115
|
+
const allKeys = [
|
|
116
|
+
...new Set([
|
|
117
|
+
...Object.keys(target),
|
|
118
|
+
...dataItemkeyMap.keys(),
|
|
119
|
+
...Object.keys(target.deData),
|
|
120
|
+
]),
|
|
121
|
+
];
|
|
122
|
+
updateKeyDefine(target, allKeys);
|
|
123
|
+
return allKeys;
|
|
124
|
+
},
|
|
125
|
+
});
|
|
73
126
|
}
|
|
74
127
|
|
|
75
128
|
protected calcIcon(model: IDETreeDataSetNode): IIcon | undefined {
|
|
@@ -12,6 +12,8 @@ import { IIcon, ITreeNodeData } from '../../../interface';
|
|
|
12
12
|
export abstract class TreeNodeData implements ITreeNodeData {
|
|
13
13
|
_uuid: string = createUUID();
|
|
14
14
|
|
|
15
|
+
_nodeType: string;
|
|
16
|
+
|
|
15
17
|
id!: string;
|
|
16
18
|
|
|
17
19
|
value?: string | undefined;
|
|
@@ -40,6 +42,9 @@ export abstract class TreeNodeData implements ITreeNodeData {
|
|
|
40
42
|
|
|
41
43
|
textHtml?: string;
|
|
42
44
|
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
[key: string | symbol]: any;
|
|
47
|
+
|
|
43
48
|
constructor(
|
|
44
49
|
model: IDETreeNode,
|
|
45
50
|
parentNodeData: ITreeNodeData | undefined,
|
|
@@ -47,6 +52,7 @@ export abstract class TreeNodeData implements ITreeNodeData {
|
|
|
47
52
|
) {
|
|
48
53
|
this.leaf = opts.leaf === true;
|
|
49
54
|
this.parent = parentNodeData;
|
|
55
|
+
this._nodeType = model.treeNodeType!;
|
|
50
56
|
|
|
51
57
|
// 所有节点都要继承父的上下文,如果父存在则复制父的资源上下文,否则返回空对象。
|
|
52
58
|
if (this.parent) {
|