@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.
Files changed (112) hide show
  1. package/dist/index.esm.js +696 -267
  2. package/dist/index.system.min.js +2 -2
  3. package/out/controller/control/grid/grid/grid-column.controller.d.ts +2 -1
  4. package/out/controller/control/grid/grid/grid-column.controller.d.ts.map +1 -1
  5. package/out/controller/control/grid/grid/grid.controller.d.ts +17 -1
  6. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  7. package/out/controller/control/grid/grid/grid.controller.js +32 -0
  8. package/out/controller/control/search-bar/search-bar.controller.d.ts +59 -2
  9. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  10. package/out/controller/control/search-bar/search-bar.controller.js +142 -9
  11. package/out/controller/control/search-bar/search-bar.service.d.ts +78 -0
  12. package/out/controller/control/search-bar/search-bar.service.d.ts.map +1 -0
  13. package/out/controller/control/search-bar/search-bar.service.js +130 -0
  14. package/out/controller/control/tree/tree.controller.d.ts +27 -1
  15. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  16. package/out/controller/control/tree/tree.controller.js +45 -7
  17. package/out/controller/control/tree/tree.service.d.ts +1 -1
  18. package/out/controller/control/tree/tree.service.d.ts.map +1 -1
  19. package/out/controller/control/tree-grid-ex/index.d.ts +2 -0
  20. package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -1
  21. package/out/controller/control/tree-grid-ex/index.js +2 -0
  22. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +4 -0
  23. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -0
  24. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +3 -0
  25. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +93 -0
  26. 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
  27. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +89 -0
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +26 -0
  35. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -0
  36. package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -0
  37. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +48 -46
  38. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  39. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +85 -115
  40. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +8 -58
  41. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -1
  42. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +5 -135
  43. package/out/interface/controller/controller/control/i-grid.controller.d.ts +8 -0
  44. package/out/interface/controller/controller/control/i-grid.controller.d.ts.map +1 -1
  45. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +7 -7
  46. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
  47. package/out/interface/controller/controller/control/i-tree.controller.d.ts +1 -1
  48. package/out/interface/controller/controller/control/i-tree.controller.d.ts.map +1 -1
  49. package/out/interface/controller/controller/control/index.d.ts +1 -0
  50. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  51. package/out/interface/controller/controller/control/index.js +1 -0
  52. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts +12 -0
  53. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.d.ts.map +1 -0
  54. package/out/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.js +1 -0
  55. package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts +2 -0
  56. package/out/interface/controller/controller/control/tree-grid-ex-column/index.d.ts.map +1 -0
  57. package/out/interface/controller/controller/control/tree-grid-ex-column/index.js +1 -0
  58. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +2 -2
  59. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
  60. package/out/interface/controller/state/control/i-search-bar.state.d.ts +64 -0
  61. package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
  62. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +31 -23
  63. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
  64. package/out/interface/controller/state/control/i-tree.state.d.ts +8 -1
  65. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  66. package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts +31 -0
  67. package/out/interface/provider/i-tree-grid-ex-column.provider.d.ts.map +1 -0
  68. package/out/interface/provider/i-tree-grid-ex-column.provider.js +1 -0
  69. package/out/interface/provider/index.d.ts +1 -0
  70. package/out/interface/provider/index.d.ts.map +1 -1
  71. package/out/register/helper/index.d.ts +1 -0
  72. package/out/register/helper/index.d.ts.map +1 -1
  73. package/out/register/helper/index.js +1 -0
  74. package/out/register/helper/tree-grid-ex-column-register.d.ts +23 -0
  75. package/out/register/helper/tree-grid-ex-column-register.d.ts.map +1 -0
  76. package/out/register/helper/tree-grid-ex-column-register.js +50 -0
  77. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  78. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +51 -0
  79. package/out/service/vo/tree-node-data/tree-node-data.d.ts +2 -0
  80. package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
  81. package/out/service/vo/tree-node-data/tree-node-data.js +1 -0
  82. package/package.json +3 -3
  83. package/src/controller/control/grid/grid/grid-column.controller.ts +4 -1
  84. package/src/controller/control/grid/grid/grid.controller.ts +34 -0
  85. package/src/controller/control/search-bar/search-bar.controller.ts +178 -10
  86. package/src/controller/control/search-bar/search-bar.service.ts +161 -0
  87. package/src/controller/control/tree/tree.controller.ts +58 -11
  88. package/src/controller/control/tree/tree.service.ts +3 -1
  89. package/src/controller/control/tree-grid-ex/index.ts +2 -0
  90. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +3 -0
  91. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +121 -0
  92. 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
  93. 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
  94. package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +37 -0
  95. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +116 -140
  96. package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +10 -165
  97. package/src/interface/controller/controller/control/i-grid.controller.ts +9 -0
  98. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +11 -12
  99. package/src/interface/controller/controller/control/i-tree.controller.ts +5 -2
  100. package/src/interface/controller/controller/control/index.ts +1 -0
  101. package/src/interface/controller/controller/control/tree-grid-ex-column/i-tree-grid-ex-column.controller.ts +12 -0
  102. package/src/interface/controller/controller/control/tree-grid-ex-column/index.ts +1 -0
  103. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +2 -2
  104. package/src/interface/controller/state/control/i-search-bar.state.ts +73 -0
  105. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +27 -24
  106. package/src/interface/controller/state/control/i-tree.state.ts +9 -1
  107. package/src/interface/provider/i-tree-grid-ex-column.provider.ts +39 -0
  108. package/src/interface/provider/index.ts +1 -0
  109. package/src/register/helper/index.ts +1 -0
  110. package/src/register/helper/tree-grid-ex-column-register.ts +67 -0
  111. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +53 -0
  112. 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 { 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';
@@ -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
+ }
@@ -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) {