@ibiz-template/runtime 0.4.17-dev.0 → 0.5.0-beta.0
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 +972 -529
- package/dist/index.system.min.js +2 -2
- package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
- package/out/controller/common/control/md-control.controller.js +7 -2
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +2 -6
- 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/kanban/kanban.controller.d.ts +2 -2
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
- package/out/controller/control/kanban/kanban.controller.js +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.js +1 -1
- package/out/controller/control/search-bar/index.d.ts +1 -0
- package/out/controller/control/search-bar/index.d.ts.map +1 -1
- package/out/controller/control/search-bar/index.js +1 -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/interface/service/service/i-app-de.service.d.ts +10 -0
- package/out/interface/service/service/i-app-de.service.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/de-service-util.d.ts +3 -2
- package/out/service/de-service-util.d.ts.map +1 -1
- package/out/service/de-service-util.js +11 -10
- package/out/service/dto/method.dto.d.ts +2 -3
- package/out/service/dto/method.dto.d.ts.map +1 -1
- package/out/service/dto/method.dto.js +3 -4
- package/out/service/service/entity/de.service.d.ts +10 -0
- package/out/service/service/entity/de.service.d.ts.map +1 -1
- package/out/service/service/entity/de.service.js +22 -1
- package/out/service/service/entity/method/method.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +1 -12
- 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/common/control/md-control.controller.ts +7 -2
- package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +2 -6
- 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/kanban/kanban.controller.ts +2 -2
- package/src/controller/control/md-ctrl/md-ctrl.controller.ts +1 -1
- package/src/controller/control/search-bar/index.ts +1 -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/interface/service/service/i-app-de.service.ts +13 -0
- package/src/register/helper/index.ts +1 -0
- package/src/register/helper/tree-grid-ex-column-register.ts +67 -0
- package/src/service/de-service-util.ts +6 -4
- package/src/service/dto/method.dto.ts +4 -5
- package/src/service/service/entity/de.service.ts +26 -1
- package/src/service/service/entity/method/method.ts +1 -13
- 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,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 {}
|
|
@@ -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
|
+
}
|
|
@@ -3,6 +3,7 @@ import { DECache } from '../../../service/utils';
|
|
|
3
3
|
import { IFileService } from './i-file.service';
|
|
4
4
|
import { IWorkFlowService } from './i-wf.service';
|
|
5
5
|
import { IConfigService } from './i-config.service';
|
|
6
|
+
import { IDataEntity } from '../i-data-entity/i-data-entity';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* 实体服务
|
|
@@ -321,6 +322,18 @@ export interface IAppDEService {
|
|
|
321
322
|
data?: IData,
|
|
322
323
|
): Promise<IHttpResponse>;
|
|
323
324
|
|
|
325
|
+
/**
|
|
326
|
+
* 创建当前数据对象实例
|
|
327
|
+
*
|
|
328
|
+
* @author chitanda
|
|
329
|
+
* @date 2023-12-23 19:12:01
|
|
330
|
+
* @param {(IData[] | IDataEntity[] | IData | IDataEntity)} data
|
|
331
|
+
* @return {*} {(IDataEntity | IDataEntity[])}
|
|
332
|
+
*/
|
|
333
|
+
createEntity(
|
|
334
|
+
data: IData[] | IDataEntity[] | IData | IDataEntity,
|
|
335
|
+
): IDataEntity | IDataEntity[];
|
|
336
|
+
|
|
324
337
|
/**
|
|
325
338
|
* 当前实体服务销毁时调用
|
|
326
339
|
*
|
|
@@ -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
|
+
}
|
|
@@ -32,11 +32,13 @@ export class DEServiceUtil {
|
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* 实体服务构造方法缓存
|
|
35
|
+
*
|
|
35
36
|
* @author lxm
|
|
36
37
|
* @date 2023-05-15 08:37:13
|
|
37
38
|
* @protected
|
|
38
39
|
*/
|
|
39
|
-
protected constructorCache: Map<string, DEServiceConstructor> =
|
|
40
|
+
protected static constructorCache: Map<string, DEServiceConstructor> =
|
|
41
|
+
new Map();
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* Creates an instance of DEServiceUtil.
|
|
@@ -55,8 +57,8 @@ export class DEServiceUtil {
|
|
|
55
57
|
* @param {string} id 实体标识
|
|
56
58
|
* @param {DEServiceConstructor} constructor
|
|
57
59
|
*/
|
|
58
|
-
register(id: string, constructor: DEServiceConstructor): void {
|
|
59
|
-
this.constructorCache.set(id, constructor);
|
|
60
|
+
static register(id: string, constructor: DEServiceConstructor): void {
|
|
61
|
+
this.constructorCache.set(id.toUpperCase(), constructor);
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
/**
|
|
@@ -82,7 +84,7 @@ export class DEServiceUtil {
|
|
|
82
84
|
if (!entityModel) {
|
|
83
85
|
throw new RuntimeError(`未找到应用实体[${id}]`);
|
|
84
86
|
}
|
|
85
|
-
const constructor =
|
|
87
|
+
const constructor = DEServiceUtil.constructorCache.get(id.toUpperCase());
|
|
86
88
|
let service: IAppDEService;
|
|
87
89
|
if (constructor) {
|
|
88
90
|
service = await constructor(sandboxId, entityModel);
|