@ibiz-template/runtime 0.5.3-beta.4 → 0.5.3-beta.5
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 +913 -174
- package/dist/index.system.min.js +1 -1
- package/out/command/app/open-app-view/open-app-view.js +2 -2
- package/out/controller/constant/control/index.d.ts +1 -0
- package/out/controller/constant/control/index.d.ts.map +1 -1
- package/out/controller/constant/control/index.js +1 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts +5 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts.map +1 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.js +6 -0
- package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
- package/out/controller/control/form/form/form.controller.js +4 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +10 -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 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +12 -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 +34 -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 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.js +68 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts +205 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-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-node-column.controller.js +345 -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 +3 -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 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.js +14 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +16 -8
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -12
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +59 -0
- 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 +238 -1
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +23 -1
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +17 -0
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +60 -2
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
- package/out/interface/provider/i-async-action.provider.d.ts +3 -2
- package/out/interface/provider/i-async-action.provider.d.ts.map +1 -1
- package/out/register/helper/app-menu-item-register.d.ts.map +1 -1
- package/out/register/helper/app-menu-item-register.js +1 -6
- package/out/service/dto/method.dto.js +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.js +16 -17
- package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts +6 -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 +93 -41
- package/package.json +4 -4
- package/src/command/app/open-app-view/open-app-view.ts +2 -2
- package/src/controller/constant/control/index.ts +1 -0
- package/src/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.ts +5 -0
- package/src/controller/control/form/form/form.controller.ts +11 -1
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +1 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +22 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts +88 -2
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts +522 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts +18 -1
- package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +43 -12
- package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +296 -1
- package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +27 -2
- package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +15 -1
- package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +64 -2
- package/src/interface/provider/i-async-action.provider.ts +3 -2
- package/src/register/helper/app-menu-item-register.ts +1 -5
- package/src/service/dto/method.dto.ts +1 -1
- package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +15 -23
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +111 -46
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { updateKeyDefine } from '@ibiz-template/core';
|
|
2
|
-
import { isNil } from 'ramda';
|
|
2
|
+
import { clone, isNil } from 'ramda';
|
|
3
3
|
import { calcDeCodeNameById } from '../../../model';
|
|
4
4
|
import { ScriptFactory } from '../../../utils';
|
|
5
5
|
import { TreeNodeData } from './tree-node-data';
|
|
6
6
|
import { fieldValueToBoolean } from '../../utils';
|
|
7
|
+
/** 克隆时赋值排除的字段 */
|
|
8
|
+
const CloneExcludeKeys = ['_id', '_value', '_text', '_deData', 'clone'];
|
|
7
9
|
/**
|
|
8
10
|
* 实体数据集树节点数据
|
|
9
11
|
*
|
|
@@ -18,12 +20,6 @@ export class TreeDataSetNodeData extends TreeNodeData {
|
|
|
18
20
|
super(model, parentNodeData, opts);
|
|
19
21
|
const { data } = opts;
|
|
20
22
|
this._deData = data;
|
|
21
|
-
this._text = model.textAppDEFieldId
|
|
22
|
-
? data[model.textAppDEFieldId]
|
|
23
|
-
: data.srfmajortext;
|
|
24
|
-
this._value = model.idAppDEFieldId
|
|
25
|
-
? data[model.idAppDEFieldId]
|
|
26
|
-
: data.srfkey;
|
|
27
23
|
// id小写
|
|
28
24
|
const selfId = `${model.id}@${data.srfkey}`.toLowerCase();
|
|
29
25
|
Object.defineProperty(this, '_id', {
|
|
@@ -33,6 +29,24 @@ export class TreeDataSetNodeData extends TreeNodeData {
|
|
|
33
29
|
enumerable: true,
|
|
34
30
|
configurable: true,
|
|
35
31
|
});
|
|
32
|
+
// 文本值
|
|
33
|
+
Object.defineProperty(this, '_text', {
|
|
34
|
+
get() {
|
|
35
|
+
return model.textAppDEFieldId
|
|
36
|
+
? data[model.textAppDEFieldId]
|
|
37
|
+
: data.srfmajortext;
|
|
38
|
+
},
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
});
|
|
42
|
+
// value值
|
|
43
|
+
Object.defineProperty(this, '_value', {
|
|
44
|
+
get() {
|
|
45
|
+
return model.idAppDEFieldId ? data[model.idAppDEFieldId] : data.srfkey;
|
|
46
|
+
},
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
});
|
|
36
50
|
// 实体节点额外添加上自己的实体上下文
|
|
37
51
|
if (model.appDataEntityId) {
|
|
38
52
|
const deName = calcDeCodeNameById(model.appDataEntityId);
|
|
@@ -48,19 +62,18 @@ export class TreeDataSetNodeData extends TreeNodeData {
|
|
|
48
62
|
}
|
|
49
63
|
/** 数据项和实体属性映射 */
|
|
50
64
|
const dataItemKeyMap = new Map();
|
|
51
|
-
|
|
52
|
-
dataItemKeyMap.set('srfmajortext', 'srfmajortext');
|
|
65
|
+
const dataItemDefaultMap = new Map();
|
|
53
66
|
(_a = model.detreeNodeDataItems) === null || _a === void 0 ? void 0 : _a.forEach(dataItem => {
|
|
54
|
-
const
|
|
55
|
-
//
|
|
67
|
+
const dataItemKey = dataItem.id.toLowerCase();
|
|
68
|
+
// *后台实体属性
|
|
56
69
|
const deFieldKey = dataItem.appDEFieldId.toLowerCase();
|
|
57
|
-
dataItemKeyMap.set(
|
|
70
|
+
dataItemKeyMap.set(dataItemKey, deFieldKey);
|
|
58
71
|
// *设置默认值
|
|
59
|
-
if (dataItem.defaultValue
|
|
60
|
-
|
|
72
|
+
if (dataItem.defaultValue) {
|
|
73
|
+
dataItemDefaultMap.set(dataItemKey, dataItem.defaultValue);
|
|
61
74
|
}
|
|
62
75
|
});
|
|
63
|
-
/**
|
|
76
|
+
/** 表格列和数据项的映射 */
|
|
64
77
|
const nodeColumnKeyMap = new Map();
|
|
65
78
|
(_b = model.detreeNodeColumns) === null || _b === void 0 ? void 0 : _b.forEach(column => {
|
|
66
79
|
const columnKey = column.detreeColumnId; // 不配树表格列不会有这个模型
|
|
@@ -69,22 +82,69 @@ export class TreeDataSetNodeData extends TreeNodeData {
|
|
|
69
82
|
ibiz.log.error('模型异常缺少detreeColumnId或者dataItemName', column);
|
|
70
83
|
}
|
|
71
84
|
else {
|
|
72
|
-
nodeColumnKeyMap.set(columnKey,
|
|
85
|
+
nodeColumnKeyMap.set(columnKey, dataItemKey);
|
|
73
86
|
}
|
|
74
87
|
});
|
|
88
|
+
/**
|
|
89
|
+
* 获取对应key最终映射的实体属性字段,undefined就是没有映射实体属性
|
|
90
|
+
* @author lxm
|
|
91
|
+
* @date 2024-01-12 01:48:09
|
|
92
|
+
* @param {(string | symbol)} key
|
|
93
|
+
* @return {*} {(string | symbol | undefined)}
|
|
94
|
+
*/
|
|
95
|
+
const getDeKey = (key) => {
|
|
96
|
+
// 表格列映射的实体数据属性名称
|
|
97
|
+
if (nodeColumnKeyMap.has(key)) {
|
|
98
|
+
return dataItemKeyMap.get(nodeColumnKeyMap.get(key));
|
|
99
|
+
}
|
|
100
|
+
// 数据项映射的实体数据属性名称
|
|
101
|
+
if (dataItemKeyMap.has(key)) {
|
|
102
|
+
return dataItemKeyMap.get(key);
|
|
103
|
+
}
|
|
104
|
+
// 实体属性上可枚举的属性,返回该属性名称
|
|
105
|
+
if (Object.prototype.hasOwnProperty.call(this._deData, key)) {
|
|
106
|
+
return key;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* 获取对应属性的默认值,纯显示用的
|
|
111
|
+
* @author lxm
|
|
112
|
+
* @date 2024-01-12 02:36:53
|
|
113
|
+
* @param {(string | symbol)} key
|
|
114
|
+
* @return {*} {unknown}
|
|
115
|
+
*/
|
|
116
|
+
const getKeyDefault = (key) => {
|
|
117
|
+
// 表格列映射的数据项的默认值
|
|
118
|
+
if (nodeColumnKeyMap.has(key)) {
|
|
119
|
+
return dataItemDefaultMap.get(nodeColumnKeyMap.get(key));
|
|
120
|
+
}
|
|
121
|
+
// 数据项映射的默认值
|
|
122
|
+
if (dataItemDefaultMap.has(key)) {
|
|
123
|
+
return dataItemDefaultMap.get(key);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
this.clone = () => {
|
|
127
|
+
const cloneData = clone(this._deData);
|
|
128
|
+
const cloneNodeData = new TreeDataSetNodeData(model, this._parent, {
|
|
129
|
+
data: cloneData,
|
|
130
|
+
leaf: this._leaf,
|
|
131
|
+
navContext: this._context,
|
|
132
|
+
navParams: this._params,
|
|
133
|
+
});
|
|
134
|
+
Object.keys(this).forEach(key => {
|
|
135
|
+
const deKey = getDeKey(key);
|
|
136
|
+
// 非实体的映射属性,且不是排除的属性时,从原来那边赋值过来
|
|
137
|
+
if (isNil(deKey) && !CloneExcludeKeys.includes(key)) {
|
|
138
|
+
cloneNodeData[key] = this[key];
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
return cloneNodeData;
|
|
142
|
+
};
|
|
75
143
|
return new Proxy(this, {
|
|
76
144
|
set(target, p, value) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
target._deData[
|
|
80
|
-
}
|
|
81
|
-
else if (dataItemKeyMap.has(p)) {
|
|
82
|
-
// 通过树节点数据项标识设置
|
|
83
|
-
target._deData[dataItemKeyMap.get(p)] = value;
|
|
84
|
-
}
|
|
85
|
-
else if (Object.prototype.hasOwnProperty.call(target._deData, p)) {
|
|
86
|
-
// 通过实体数据属性标识设置
|
|
87
|
-
target._deData[p] = value;
|
|
145
|
+
const deKey = getDeKey(p);
|
|
146
|
+
if (!isNil(deKey)) {
|
|
147
|
+
target._deData[deKey] = value;
|
|
88
148
|
}
|
|
89
149
|
else {
|
|
90
150
|
target[p] = value;
|
|
@@ -92,21 +152,13 @@ export class TreeDataSetNodeData extends TreeNodeData {
|
|
|
92
152
|
return true;
|
|
93
153
|
},
|
|
94
154
|
get(target, p, _receiver) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return target._deData[nodeColumnKeyMap.get(p)];
|
|
101
|
-
}
|
|
102
|
-
// 通过树节点数据项标识获取
|
|
103
|
-
if (dataItemKeyMap.has(p)) {
|
|
104
|
-
return target._deData[dataItemKeyMap.get(p)];
|
|
105
|
-
}
|
|
106
|
-
// 通过实体数据属性标识获取
|
|
107
|
-
if (target._deData[p] !== undefined) {
|
|
108
|
-
return target._deData[p];
|
|
155
|
+
const deKey = getDeKey(p);
|
|
156
|
+
if (!isNil(deKey)) {
|
|
157
|
+
return isNil(target._deData[deKey])
|
|
158
|
+
? getKeyDefault(p)
|
|
159
|
+
: target._deData[deKey];
|
|
109
160
|
}
|
|
161
|
+
return target[p];
|
|
110
162
|
},
|
|
111
163
|
ownKeys(target) {
|
|
112
164
|
// 整合所有并排除重复
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.5.3-beta.
|
|
3
|
+
"version": "0.5.3-beta.5",
|
|
4
4
|
"description": "控制器包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@ibiz-template/core": "^0.5.2",
|
|
33
|
-
"@ibiz/model-core": "^0.1.
|
|
33
|
+
"@ibiz/model-core": "^0.1.3",
|
|
34
34
|
"@types/path-browserify": "^1.0.2",
|
|
35
35
|
"@types/qs": "^6.9.11",
|
|
36
36
|
"@types/systemjs": "^6.13.5",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@ibiz-template/core": "^0.5.0-beta.0",
|
|
50
|
-
"@ibiz/model-core": "^0.1.
|
|
50
|
+
"@ibiz/model-core": "^0.1.3",
|
|
51
51
|
"async-validator": "^4.2.5",
|
|
52
52
|
"dayjs": "^1.11.7",
|
|
53
53
|
"echarts": "^5.4.3",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"qx-util": "^0.4.8",
|
|
60
60
|
"ramda": "^0.29.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "5e76e5c131a8b28decd6af541137e756e2ca8c77"
|
|
63
63
|
}
|
|
@@ -73,9 +73,9 @@ export class OpenAppViewCommand {
|
|
|
73
73
|
const { openMode = 'INDEXVIEWTAB' } = appView;
|
|
74
74
|
const viewOpenMode = opts.openMode || openMode;
|
|
75
75
|
if (viewOpenMode !== undefined && viewOpenMode !== 'INDEXVIEWTAB') {
|
|
76
|
-
//
|
|
76
|
+
// 除了走路由的,其他情况toRouteDepth转为undefined,避免影响后续操作
|
|
77
77
|
if (context.toRouteDepth) {
|
|
78
|
-
|
|
78
|
+
context.toRouteDepth = undefined;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
switch (viewOpenMode) {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
RuntimeModelError,
|
|
4
|
+
debounceAndAsyncMerge,
|
|
5
|
+
recursiveIterate,
|
|
6
|
+
} from '@ibiz-template/core';
|
|
3
7
|
import { IControlLogic, IDEForm, IDEFormDetail } from '@ibiz/model-core';
|
|
4
8
|
import {
|
|
5
9
|
IFormState,
|
|
@@ -177,6 +181,12 @@ export abstract class FormController<
|
|
|
177
181
|
if (!detailProvider) {
|
|
178
182
|
return;
|
|
179
183
|
}
|
|
184
|
+
if (form.details[detail.id!]) {
|
|
185
|
+
throw new RuntimeModelError(
|
|
186
|
+
detail,
|
|
187
|
+
`初始化异常: 表单成员[${detail.id}](${detail.detailType})已存在,表单项标识重复请检查配置`,
|
|
188
|
+
);
|
|
189
|
+
}
|
|
180
190
|
form.providers[detail.id!] = detailProvider;
|
|
181
191
|
const detailController = await detailProvider.createController(
|
|
182
192
|
detail,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { TreeGridExColumnController } from './tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
2
2
|
export { TreeGridExFieldColumnController } from './tree-grid-ex-field-column/tree-grid-ex-field-column.controller';
|
|
3
|
+
export { TreeGridExNodeColumnController } from './tree-grid-ex-field-column/tree-grid-ex-node-column.controller';
|
|
3
4
|
export { TreeGridExUAColumnController } from './tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { IDETreeColumn } from '@ibiz/model-core';
|
|
2
2
|
import { TreeGridExController } from '../../tree-grid-ex.controller';
|
|
3
|
+
import { TreeGridExNotifyState } from '../../../../constant';
|
|
4
|
+
import { TreeGridExRowState } from '../../tree-grid-ex-row.state';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* 树表格(增强)列控制器
|
|
@@ -118,4 +120,24 @@ export class TreeGridExColumnController<
|
|
|
118
120
|
protected async onInit(): Promise<void> {
|
|
119
121
|
// 初始化操作
|
|
120
122
|
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 表格状态变更通知
|
|
126
|
+
*
|
|
127
|
+
* @author lxm
|
|
128
|
+
* @date 2022-09-20 18:09:07
|
|
129
|
+
*/
|
|
130
|
+
gridStateNotify(
|
|
131
|
+
_row: TreeGridExRowState,
|
|
132
|
+
_state: TreeGridExNotifyState,
|
|
133
|
+
): void {
|
|
134
|
+
// 子类实现具体逻辑
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async dataChangeNotify(
|
|
138
|
+
_row: TreeGridExRowState,
|
|
139
|
+
_names: string[],
|
|
140
|
+
): Promise<void> {
|
|
141
|
+
// 子类实现具体逻辑
|
|
142
|
+
}
|
|
121
143
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import { IDETreeDEFColumn } from '@ibiz/model-core';
|
|
2
|
+
import { IDETreeDEFColumn, IDETreeNodeColumn } from '@ibiz/model-core';
|
|
3
3
|
import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
4
|
+
import { TreeGridExNodeColumnController } from './tree-grid-ex-node-column.controller';
|
|
5
|
+
import { TreeGridExNotifyState } from '../../../../constant';
|
|
6
|
+
import { ITreeGridExRowState } from '../../../../../interface';
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* 树表格(增强)属性列控制器
|
|
@@ -10,4 +13,87 @@ import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-
|
|
|
10
13
|
* @class TreeGridExFieldColumnController
|
|
11
14
|
* @extends {TreeGridExColumnController<IDETreeDEFColumn>}
|
|
12
15
|
*/
|
|
13
|
-
export class TreeGridExFieldColumnController extends TreeGridExColumnController<IDETreeDEFColumn> {
|
|
16
|
+
export class TreeGridExFieldColumnController extends TreeGridExColumnController<IDETreeDEFColumn> {
|
|
17
|
+
/**
|
|
18
|
+
* 树表格列标识(用于取数和各种比较判断)
|
|
19
|
+
* @author lxm
|
|
20
|
+
* @date 2024-01-09 11:33:37
|
|
21
|
+
* @readonly
|
|
22
|
+
* @type {string}
|
|
23
|
+
*/
|
|
24
|
+
get name(): string {
|
|
25
|
+
return this.model.id!;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 该树表格列对应不同节点模型的节点列控制器
|
|
30
|
+
* @author lxm
|
|
31
|
+
* @date 2024-01-08 05:40:56
|
|
32
|
+
* @type {Map<string, IDETreeNodeColumn>}
|
|
33
|
+
*/
|
|
34
|
+
nodeColumnControllerMap: Map<string, TreeGridExNodeColumnController> =
|
|
35
|
+
new Map();
|
|
36
|
+
|
|
37
|
+
async init(): Promise<void> {
|
|
38
|
+
await this.onInit();
|
|
39
|
+
await this.initNodeColumnController();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 解析模型并初始化相关属性
|
|
44
|
+
* @author lxm
|
|
45
|
+
* @date 2024-01-08 05:59:12
|
|
46
|
+
* @return {*} {Promise<void>}
|
|
47
|
+
*/
|
|
48
|
+
async initNodeColumnController(): Promise<void> {
|
|
49
|
+
this.treeGrid.model.detreeNodes?.forEach(node => {
|
|
50
|
+
if (node.treeNodeType !== 'DE') {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const nodeColumn = node.detreeNodeColumns?.find(
|
|
54
|
+
(column: IDETreeNodeColumn) => {
|
|
55
|
+
return column.detreeColumnId === this.model.id;
|
|
56
|
+
},
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// 没有指定树表格列的不创建
|
|
60
|
+
if (nodeColumn) {
|
|
61
|
+
this.nodeColumnControllerMap.set(
|
|
62
|
+
node.id!,
|
|
63
|
+
new TreeGridExNodeColumnController(this, node),
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// 都走一遍初始化
|
|
69
|
+
await Promise.all(
|
|
70
|
+
Array.from(this.nodeColumnControllerMap.values()).map(controller =>
|
|
71
|
+
controller.init(),
|
|
72
|
+
),
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 初始化属性列界面行为组按钮状态
|
|
78
|
+
* @author lxm
|
|
79
|
+
* @date 2024-01-11 01:48:38
|
|
80
|
+
* @param {ITreeGridExRowState} row
|
|
81
|
+
*/
|
|
82
|
+
initActionStates(row: ITreeGridExRowState): void {
|
|
83
|
+
const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
|
|
84
|
+
if (nodeColumn) {
|
|
85
|
+
nodeColumn.initActionStates(row);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
gridStateNotify(
|
|
90
|
+
row: ITreeGridExRowState,
|
|
91
|
+
state: TreeGridExNotifyState,
|
|
92
|
+
): void {
|
|
93
|
+
super.gridStateNotify(row, state);
|
|
94
|
+
const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
|
|
95
|
+
if (nodeColumn) {
|
|
96
|
+
nodeColumn.gridStateNotify(row, state);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|