@ibiz-template/runtime 0.4.12 → 0.4.13

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 (136) hide show
  1. package/dist/index.esm.js +1005 -190
  2. package/dist/index.system.min.js +2 -2
  3. package/out/config/global-config.js +1 -1
  4. package/out/controller/common/base.controller.d.ts +7 -0
  5. package/out/controller/common/base.controller.d.ts.map +1 -1
  6. package/out/controller/common/base.controller.js +10 -0
  7. package/out/controller/common/view/view.controller.d.ts +7 -0
  8. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  9. package/out/controller/common/view/view.controller.js +11 -0
  10. package/out/controller/control/app-menu/app-menu.controller.d.ts +7 -0
  11. package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
  12. package/out/controller/control/app-menu/app-menu.controller.js +22 -0
  13. package/out/controller/control/caption-bar/caption-bar.controller.d.ts.map +1 -1
  14. package/out/controller/control/caption-bar/caption-bar.controller.js +1 -6
  15. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +5 -1
  17. package/out/controller/control/gantt/gantt.controller.d.ts +146 -2
  18. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  19. package/out/controller/control/gantt/gantt.controller.js +270 -0
  20. package/out/controller/control/grid/grid/grid-row.state.d.ts +11 -0
  21. package/out/controller/control/grid/grid/grid-row.state.d.ts.map +1 -1
  22. package/out/controller/control/grid/grid/grid-row.state.js +13 -0
  23. package/out/controller/control/grid/grid/grid.controller.d.ts +7 -0
  24. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  25. package/out/controller/control/grid/grid/grid.controller.js +27 -0
  26. package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
  27. package/out/controller/control/grid/grid/grid.service.js +30 -20
  28. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +21 -1
  29. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
  30. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +44 -1
  31. package/out/controller/control/kanban/kanban.controller.d.ts +13 -0
  32. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  33. package/out/controller/control/kanban/kanban.controller.js +72 -0
  34. package/out/controller/control/report-panel/generator/user-generator.js +1 -1
  35. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  36. package/out/controller/control/search-bar/search-bar.controller.js +2 -1
  37. package/out/controller/control/toolbar/toolbar.controllerr.d.ts +7 -0
  38. package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -1
  39. package/out/controller/control/toolbar/toolbar.controllerr.js +22 -0
  40. package/out/controller/control/tree/tree.controller.d.ts +75 -0
  41. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  42. package/out/controller/control/tree/tree.controller.js +264 -1
  43. package/out/interface/common/i-global-config/i-global-view-config.d.ts +1 -1
  44. package/out/interface/common/i-global-config/i-global-view-config.d.ts.map +1 -1
  45. package/out/interface/controller/event/control/i-gantt.event.d.ts +42 -0
  46. package/out/interface/controller/event/control/i-gantt.event.d.ts.map +1 -1
  47. package/out/interface/controller/event/control/i-tree.event.d.ts +17 -0
  48. package/out/interface/controller/event/control/i-tree.event.d.ts.map +1 -1
  49. package/out/interface/controller/state/control/i-gantt.state.d.ts +22 -0
  50. package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
  51. package/out/interface/controller/state/control/i-grid.state.d.ts +11 -0
  52. package/out/interface/controller/state/control/i-grid.state.d.ts.map +1 -1
  53. package/out/interface/controller/state/control/i-kanban.state.d.ts +24 -0
  54. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
  55. package/out/interface/controller/state/control/i-tree.state.d.ts +7 -0
  56. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  57. package/out/interface/provider/i-grid-column.provider.d.ts +2 -2
  58. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  59. package/out/interface/service/i-data-entity/i-data-entity.d.ts +8 -0
  60. package/out/interface/service/i-data-entity/i-data-entity.d.ts.map +1 -1
  61. package/out/interface/service/service/i-app-de.service.d.ts +11 -0
  62. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  63. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  64. package/out/logic-scheduler/executor/app-ui-logic-executor.js +4 -2
  65. package/out/register/helper/grid-column-register.d.ts +2 -2
  66. package/out/register/helper/grid-column-register.d.ts.map +1 -1
  67. package/out/register/helper/grid-column-register.js +14 -0
  68. package/out/service/dto/method.dto.d.ts.map +1 -1
  69. package/out/service/dto/method.dto.js +8 -1
  70. package/out/service/service/entity/de.service.d.ts +9 -1
  71. package/out/service/service/entity/de.service.d.ts.map +1 -1
  72. package/out/service/service/entity/de.service.js +69 -0
  73. package/out/service/service/entity/method/fetch.d.ts +5 -12
  74. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  75. package/out/service/service/entity/method/fetch.js +7 -74
  76. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts +1 -0
  77. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts.map +1 -1
  78. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts +2 -0
  79. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts.map +1 -1
  80. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.js +2 -1
  81. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts +7 -0
  82. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts.map +1 -1
  83. package/out/service/vo/gantt-node-data/gantt-node-data-util.js +18 -0
  84. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts +1 -0
  85. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts.map +1 -1
  86. package/out/service/vo/tree-node-data/tree-code-list-node-data.d.ts.map +1 -1
  87. package/out/service/vo/tree-node-data/tree-code-list-node-data.js +8 -4
  88. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  89. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +8 -4
  90. package/out/service/vo/tree-node-data/tree-node-data.d.ts +1 -0
  91. package/out/service/vo/tree-node-data/tree-node-data.d.ts.map +1 -1
  92. package/out/service/vo/tree-node-data/tree-node-data.js +2 -0
  93. package/out/service/vo/tree-node-data/tree-static-node-data.d.ts.map +1 -1
  94. package/out/service/vo/tree-node-data/tree-static-node-data.js +8 -2
  95. package/out/utils/layout-panel-util/layout-panel-util.js +1 -1
  96. package/package.json +2 -2
  97. package/src/config/global-config.ts +1 -1
  98. package/src/controller/common/base.controller.ts +11 -0
  99. package/src/controller/common/view/view.controller.ts +15 -0
  100. package/src/controller/control/app-menu/app-menu.controller.ts +25 -0
  101. package/src/controller/control/caption-bar/caption-bar.controller.ts +1 -8
  102. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +9 -1
  103. package/src/controller/control/gantt/gantt.controller.ts +331 -1
  104. package/src/controller/control/grid/grid/grid-row.state.ts +15 -0
  105. package/src/controller/control/grid/grid/grid.controller.ts +34 -0
  106. package/src/controller/control/grid/grid/grid.service.ts +34 -21
  107. package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +67 -2
  108. package/src/controller/control/kanban/kanban.controller.ts +81 -0
  109. package/src/controller/control/report-panel/generator/user-generator.ts +1 -1
  110. package/src/controller/control/search-bar/search-bar.controller.ts +2 -1
  111. package/src/controller/control/toolbar/toolbar.controllerr.ts +29 -0
  112. package/src/controller/control/tree/tree.controller.ts +327 -2
  113. package/src/interface/common/i-global-config/i-global-view-config.ts +1 -1
  114. package/src/interface/controller/event/control/i-gantt.event.ts +37 -1
  115. package/src/interface/controller/event/control/i-tree.event.ts +14 -0
  116. package/src/interface/controller/state/control/i-gantt.state.ts +25 -0
  117. package/src/interface/controller/state/control/i-grid.state.ts +10 -0
  118. package/src/interface/controller/state/control/i-kanban.state.ts +26 -0
  119. package/src/interface/controller/state/control/i-tree.state.ts +8 -0
  120. package/src/interface/provider/i-grid-column.provider.ts +2 -2
  121. package/src/interface/service/i-data-entity/i-data-entity.ts +9 -0
  122. package/src/interface/service/service/i-app-de.service.ts +12 -0
  123. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +8 -2
  124. package/src/register/helper/grid-column-register.ts +17 -2
  125. package/src/service/dto/method.dto.ts +8 -1
  126. package/src/service/service/entity/de.service.ts +74 -1
  127. package/src/service/service/entity/method/fetch.ts +8 -79
  128. package/src/service/vo/gantt-node-data/gantt-code-list-node-data.ts +2 -0
  129. package/src/service/vo/gantt-node-data/gantt-data-set-node-data.ts +6 -1
  130. package/src/service/vo/gantt-node-data/gantt-node-data-util.ts +21 -0
  131. package/src/service/vo/gantt-node-data/gantt-static-node-data.ts +2 -0
  132. package/src/service/vo/tree-node-data/tree-code-list-node-data.ts +10 -5
  133. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +10 -5
  134. package/src/service/vo/tree-node-data/tree-node-data.ts +3 -0
  135. package/src/service/vo/tree-node-data/tree-static-node-data.ts +10 -3
  136. package/src/utils/layout-panel-util/layout-panel-util.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { IDEGridColumn } from '@ibiz/model-core';
1
+ import { IDEGridColumn, IDETreeColumn } from '@ibiz/model-core';
2
2
  import { IGridColumnProvider } from '../../interface';
3
3
  import { getPluginRegisterKey } from './common-register';
4
4
 
@@ -35,12 +35,14 @@ function getProvider(key: string): IGridColumnProvider | undefined {
35
35
  * @return {*} {Promise<IGridColumnProvider>}
36
36
  */
37
37
  export async function getGridColumnProvider(
38
- model: IDEGridColumn,
38
+ model: IDEGridColumn | IDETreeColumn,
39
39
  ): Promise<IGridColumnProvider | undefined> {
40
40
  let provider: IGridColumnProvider | undefined;
41
41
  const { columnType, enableRowEdit, sysPFPluginId, appId } =
42
42
  model as Required<IDEGridColumn>;
43
43
 
44
+ const { renderSysPFPluginId } = model as Required<IDETreeColumn>;
45
+
44
46
  // 找插件适配器
45
47
  if (sysPFPluginId) {
46
48
  const pluginKey = await getPluginRegisterKey(sysPFPluginId, appId);
@@ -54,6 +56,19 @@ export async function getGridColumnProvider(
54
56
  }
55
57
  }
56
58
 
59
+ // 树表格列插件
60
+ if (renderSysPFPluginId) {
61
+ const pluginKey = await getPluginRegisterKey(renderSysPFPluginId, appId);
62
+ if (pluginKey) {
63
+ provider = getProvider(pluginKey);
64
+ }
65
+ if (!provider) {
66
+ ibiz.log.error(`找不到树表格列插件${pluginKey}对应的适配器`);
67
+ } else {
68
+ return provider;
69
+ }
70
+ }
71
+
57
72
  const key = enableRowEdit ? `${columnType!}_EDIT` : columnType!;
58
73
  // 找表格列类型
59
74
  provider = getProvider(key);
@@ -111,7 +111,9 @@ export class MethodDto {
111
111
  const service = await this.app!.deService.getService(
112
112
  field.refAppDataEntityId!,
113
113
  );
114
- const items: IData[] = service.local.getList(context);
114
+ const items = await service.selectLocal(context, {
115
+ srfpkey: data[this.entity.keyAppDEFieldId!],
116
+ });
115
117
  if (items) {
116
118
  const arr = [];
117
119
  for (let j = 0; j < items.length; j++) {
@@ -163,6 +165,11 @@ export class MethodDto {
163
165
  const dto = await this.getFieldDto(field);
164
166
  const items: IData[] = datum[key];
165
167
  if (items) {
168
+ const pKey = datum[this.entity.keyAppDEFieldId!];
169
+ // 特殊处理,在子包内设置父对象标识
170
+ items.forEach(item => {
171
+ item.srfpkey = pKey;
172
+ });
166
173
  await dto.sets(context, items);
167
174
  } else {
168
175
  await dto.sets(context, []);
@@ -5,12 +5,14 @@ import {
5
5
  ModelError,
6
6
  RuntimeError,
7
7
  } from '@ibiz-template/core';
8
+ import { equals, isEmpty, where } from 'ramda';
9
+ import { ascSort } from 'qx-util';
8
10
  import { DECache, calcResPath } from '../../utils';
9
11
  import { WorkFlowService } from '../work-flow/work-flow.service';
10
12
  import { Method } from './method/method';
11
13
  import { FileService } from '../file/file.service';
12
14
  import { findModelChild } from '../../../model';
13
- import { IAppDEService } from '../../../interface';
15
+ import { IAppDEService, IDataEntity } from '../../../interface';
14
16
  import { ConfigService } from '../config/config.service';
15
17
  import { getDEMethodProvider } from '../../../register/helper/de-method-register';
16
18
 
@@ -237,6 +239,77 @@ export class DEService implements IAppDEService {
237
239
  return this.exec('FetchTempDefault', context, params, params2);
238
240
  }
239
241
 
242
+ /**
243
+ * 查询本地数据,根据属性
244
+ *
245
+ * @param {IParams} context
246
+ * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }
247
+ * @return {*} {Promise<IDataEntity[]>}
248
+ */
249
+ async selectLocal(
250
+ context: IParams,
251
+ params: IParams = {},
252
+ ): Promise<IDataEntity[]> {
253
+ let items: IDataEntity[] = this.local.getList(context);
254
+ items = ascSort(items, 'srfordervalue');
255
+ // 查询数据条件集
256
+ const data: IData = {};
257
+ // if (notNilEmpty(context)) {
258
+ // const map = this.entity.majorKeyMap;
259
+ // if (map) {
260
+ // for (const key in map) {
261
+ // if (Object.prototype.hasOwnProperty.call(map, key)) {
262
+ // const val = map[key];
263
+ // if (notNilEmpty(context[key])) {
264
+ // data[val] = equals(context[key]);
265
+ // }
266
+ // }
267
+ // }
268
+ // }
269
+ // }
270
+ const nullData: Record<string, unknown> = {};
271
+ const undefinedData: Record<string, unknown> = {};
272
+ const emptyData: Record<string, unknown> = {};
273
+ if (params.srfkey) {
274
+ data.srfkey = equals(params.srfkey);
275
+ delete params.srfkey;
276
+ }
277
+ for (const key in params) {
278
+ if (Object.prototype.hasOwnProperty.call(params, key)) {
279
+ const val = params[key];
280
+ if (val == null) {
281
+ nullData[key] = equals(null);
282
+ undefinedData[key] = equals(undefined);
283
+ emptyData[key] = equals('');
284
+ } else {
285
+ data[key] = equals(val);
286
+ }
287
+ }
288
+ }
289
+ if (!isEmpty(data)) {
290
+ // 返回柯里化函数,用于判断数据是否满足要求
291
+ const pred = where(data);
292
+ const nullPred = where(nullData);
293
+ const undefinedPred = where(undefinedData);
294
+ const emptyPred = where(emptyData);
295
+ items = items.filter(obj => {
296
+ if (isEmpty(nullData)) {
297
+ if (pred(obj)) {
298
+ return true;
299
+ }
300
+ } else if (
301
+ pred(obj) &&
302
+ (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))
303
+ ) {
304
+ return true;
305
+ }
306
+ return false;
307
+ });
308
+ }
309
+ const list = items.map(obj => obj.clone());
310
+ return list;
311
+ }
312
+
240
313
  /**
241
314
  * 执行服务方法 ac 模式
242
315
  *
@@ -3,10 +3,10 @@ import {
3
3
  ModelError,
4
4
  RuntimeModelError,
5
5
  } from '@ibiz-template/core';
6
- import { ascSort, descSort } from 'qx-util';
7
- import { clone, equals, isEmpty, isNil, where } from 'ramda';
8
6
  import { IAppDEDataSet } from '@ibiz/model-core';
9
7
  import { isArray } from 'lodash-es';
8
+ import { clone, isEmpty, isNil } from 'ramda';
9
+ import { ascSort, descSort } from 'qx-util';
10
10
  import { PSDEDQCondEngine, SearchFilter } from '../../../utils';
11
11
  import { Method } from './method';
12
12
  import { IDataEntity } from '../../../../interface';
@@ -85,88 +85,17 @@ export class FetchMethod extends Method {
85
85
  return res as HttpResponse<IDataEntity[]>;
86
86
  }
87
87
 
88
- /**
89
- * 查询本地数据,根据属性
90
- *
91
- * @param {IParams} context
92
- * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }
93
- * @return {*} {Promise<IDataEntity[]>}
94
- */
95
- protected async selectLocal(
96
- context: IParams,
97
- params: IParams = {},
98
- ): Promise<IDataEntity[]> {
99
- const service = await this.getService();
100
- let items: IDataEntity[] = service.local.getList(context);
101
- items = ascSort(items, 'srfordervalue');
102
- // 查询数据条件集
103
- const data: IData = {};
104
- // if (notNilEmpty(context)) {
105
- // const map = this.entity.majorKeyMap;
106
- // if (map) {
107
- // for (const key in map) {
108
- // if (Object.prototype.hasOwnProperty.call(map, key)) {
109
- // const val = map[key];
110
- // if (notNilEmpty(context[key])) {
111
- // data[val] = equals(context[key]);
112
- // }
113
- // }
114
- // }
115
- // }
116
- // }
117
- const nullData: Record<string, unknown> = {};
118
- const undefinedData: Record<string, unknown> = {};
119
- const emptyData: Record<string, unknown> = {};
120
- if (params.srfkey) {
121
- data.srfkey = equals(params.srfkey);
122
- delete params.srfkey;
123
- }
124
- for (const key in params) {
125
- if (Object.prototype.hasOwnProperty.call(params, key)) {
126
- const val = params[key];
127
- if (val == null) {
128
- nullData[key] = equals(null);
129
- undefinedData[key] = equals(undefined);
130
- emptyData[key] = equals('');
131
- } else {
132
- data[key] = equals(val);
133
- }
134
- }
135
- }
136
- if (!isEmpty(data)) {
137
- // 返回柯里化函数,用于判断数据是否满足要求
138
- const pred = where(data);
139
- const nullPred = where(nullData);
140
- const undefinedPred = where(undefinedData);
141
- const emptyPred = where(emptyData);
142
- items = items.filter(obj => {
143
- if (isEmpty(nullData)) {
144
- if (pred(obj)) {
145
- return true;
146
- }
147
- } else if (
148
- pred(obj) &&
149
- (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))
150
- ) {
151
- return true;
152
- }
153
- return false;
154
- });
155
- }
156
- const list = items.map(obj => obj.clone());
157
- return list;
158
- }
159
-
160
88
  /**
161
89
  * 搜索本地数据
162
90
  *
163
- * @protected
164
- * @param {PSDEDQCondEngine | null} cond 查询实例
91
+ * @author chitanda
92
+ * @date 2023-12-18 11:12:27
93
+ * @param {(PSDEDQCondEngine | null)} cond 查询实例
165
94
  * @param {SearchFilter} filter 过滤对象
166
- * @param {string[]} [queryParamKeys=this.entity.quickSearchKeys] 当前实体支持快速搜索的属性
95
+ * @param {string[]} [queryParamKeys=this.entity.quickSearchAppDEFieldIds!] 当前实体支持快速搜索的属性
167
96
  * @return {*} {Promise<IDataEntity[]>}
168
97
  */
169
- protected async searchLocal(
98
+ async searchLocal(
170
99
  cond: PSDEDQCondEngine | null,
171
100
  filter: SearchFilter,
172
101
  queryParamKeys: string[] = this.entity.quickSearchAppDEFieldIds!,
@@ -180,7 +109,7 @@ export class FetchMethod extends Method {
180
109
  list = list.filter(obj => cond.test(obj, filter));
181
110
  }
182
111
  } else {
183
- list = await this.selectLocal(filter.context, filter.data);
112
+ list = await service.selectLocal(filter.context, filter.data);
184
113
  if (list.length > 0) {
185
114
  if (filter.query && filter.query !== '') {
186
115
  if (queryParamKeys) {
@@ -21,6 +21,8 @@ export class GanttCodeListNodeData
21
21
 
22
22
  children?: IGanttNodeData[] | undefined;
23
23
 
24
+ parent?: IGanttNodeData;
25
+
24
26
  constructor(
25
27
  model: IDEGantt,
26
28
  nodeModel: IDETreeDataSetNode,
@@ -1,7 +1,7 @@
1
1
  import { IDEGantt, IDETreeDataSetNode } from '@ibiz/model-core';
2
2
  import { IGanttNodeData } from '../../../interface';
3
3
  import { TreeDataSetNodeData } from '../tree-node-data';
4
- import { calcDataItemValue } from './gantt-node-data-util';
4
+ import { calcDataItemValue, calcNodeDataItem } from './gantt-node-data-util';
5
5
 
6
6
  export class GanttDataSetNodeData
7
7
  extends TreeDataSetNodeData
@@ -21,6 +21,10 @@ export class GanttDataSetNodeData
21
21
 
22
22
  children?: IGanttNodeData[] | undefined;
23
23
 
24
+ parent?: IGanttNodeData;
25
+
26
+ nodeDataItem: IData;
27
+
24
28
  constructor(
25
29
  model: IDEGantt,
26
30
  nodeModel: IDETreeDataSetNode,
@@ -64,5 +68,6 @@ export class GanttDataSetNodeData
64
68
  nodeModel,
65
69
  data,
66
70
  );
71
+ this.nodeDataItem = calcNodeDataItem(nodeModel, data);
67
72
  }
68
73
  }
@@ -24,3 +24,24 @@ export const calcDataItemValue = (
24
24
  }
25
25
  return result;
26
26
  };
27
+
28
+ /**
29
+ * 计算数据项
30
+ * @param nodeModel 节点模型
31
+ * @param data 数据
32
+ * @returns
33
+ */
34
+ export const calcNodeDataItem = (
35
+ nodeModel: IDETreeNode,
36
+ data: IData,
37
+ ): IData => {
38
+ const dataItem: IData = {};
39
+ nodeModel.detreeNodeDataItems?.forEach(item => {
40
+ if (item.id && item.appDEFieldId) {
41
+ Object.assign(dataItem, {
42
+ [item.id.toLowerCase()]: data[item.appDEFieldId.toLowerCase()],
43
+ });
44
+ }
45
+ });
46
+ return dataItem;
47
+ };
@@ -21,6 +21,8 @@ export class GanttStaticNodeData
21
21
 
22
22
  children?: IGanttNodeData[] | undefined;
23
23
 
24
+ parent?: IGanttNodeData;
25
+
24
26
  constructor(
25
27
  model: IDEGantt,
26
28
  nodeModel: IDETreeNode,
@@ -17,7 +17,7 @@ export class TreeCodeListNodeData
17
17
  {
18
18
  text: string;
19
19
 
20
- id: string;
20
+ id!: string;
21
21
 
22
22
  value: string;
23
23
 
@@ -35,11 +35,16 @@ export class TreeCodeListNodeData
35
35
  const { data } = opts;
36
36
  this.text = data.text;
37
37
  this.value = data.value as string;
38
- this.id = parentNodeData
39
- ? `${parentNodeData.id}:${model.id}@${this.value}`
40
- : model.id + this.value;
38
+
41
39
  // id小写
42
- this.id = this.id.toLowerCase();
40
+ const selfId = `${model.id}@${this.value}`.toLowerCase();
41
+ Object.defineProperty(this, 'id', {
42
+ get() {
43
+ return this.parent ? `${this.parent.id}:${selfId}` : selfId;
44
+ },
45
+ enumerable: true,
46
+ configurable: true,
47
+ });
43
48
 
44
49
  // 实体节点额外添加上自己的实体上下文
45
50
  if (model.appDataEntityId) {
@@ -16,7 +16,7 @@ import { fieldValueToBoolean } from '../../utils';
16
16
  export class TreeDataSetNodeData extends TreeNodeData implements ITreeNodeData {
17
17
  text: string;
18
18
 
19
- id: string;
19
+ id!: string;
20
20
 
21
21
  value: string;
22
22
 
@@ -41,11 +41,16 @@ export class TreeDataSetNodeData extends TreeNodeData implements ITreeNodeData {
41
41
  this.value = model.idAppDEFieldId
42
42
  ? data[model.idAppDEFieldId]
43
43
  : data.srfkey;
44
- this.id = parentNodeData
45
- ? `${parentNodeData.id}:${model.id}@${data.srfkey}`
46
- : model.id + data.srfkey;
44
+
47
45
  // id小写
48
- this.id = this.id.toLowerCase();
46
+ const selfId = `${model.id}@${data.srfkey}`.toLowerCase();
47
+ Object.defineProperty(this, 'id', {
48
+ get() {
49
+ return this.parent ? `${this.parent.id}:${selfId}` : selfId;
50
+ },
51
+ enumerable: true,
52
+ configurable: true,
53
+ });
49
54
 
50
55
  // 实体节点额外添加上自己的实体上下文
51
56
  if (model.appDataEntityId) {
@@ -1,4 +1,5 @@
1
1
  import { IDETreeNode } from '@ibiz/model-core';
2
+ import { createUUID } from 'qx-util';
2
3
  import { IIcon, ITreeNodeData } from '../../../interface';
3
4
 
4
5
  /**
@@ -9,6 +10,8 @@ import { IIcon, ITreeNodeData } from '../../../interface';
9
10
  * @class TreeNodeData
10
11
  */
11
12
  export abstract class TreeNodeData implements ITreeNodeData {
13
+ _uuid: string = createUUID();
14
+
12
15
  id!: string;
13
16
 
14
17
  value?: string | undefined;
@@ -13,7 +13,7 @@ import { TreeNodeData } from './tree-node-data';
13
13
  export class TreeStaticNodeData extends TreeNodeData implements ITreeNodeData {
14
14
  text: string;
15
15
 
16
- id: string;
16
+ id!: string;
17
17
 
18
18
  value?: string;
19
19
 
@@ -28,9 +28,16 @@ export class TreeStaticNodeData extends TreeNodeData implements ITreeNodeData {
28
28
  // !!根节点的默认节点值root排除掉
29
29
  const nodeValue = model.nodeValue === 'root' ? undefined : model.nodeValue;
30
30
 
31
- this.id = parentNodeData ? `${parentNodeData.id}:${model.id}` : model.id!;
32
31
  // id小写
33
- this.id = this.id.toLowerCase();
32
+ const selfId = `${model.id}`.toLowerCase();
33
+ Object.defineProperty(this, 'id', {
34
+ get() {
35
+ return this.parent ? `${this.parent.id}:${selfId}` : selfId;
36
+ },
37
+ enumerable: true,
38
+ configurable: true,
39
+ });
40
+
34
41
  this.text = model.text!;
35
42
  this.value = nodeValue;
36
43
 
@@ -129,7 +129,7 @@ export class LayoutPanelUtil {
129
129
  }
130
130
  // 首页不采用分页导航
131
131
  if (
132
- ibiz.config.view.noNavTabs &&
132
+ ibiz.config.view.disableHomeTabs &&
133
133
  [
134
134
  'APPINDEXVIEW_DEFAULT',
135
135
  'APPINDEXVIEW_DEFAULT_LEFT',