@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
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { IDETreeColumn } from '@ibiz/model-core';
|
|
2
|
+
import { TreeGridExController } from '../../tree-grid-ex.controller';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 树表格(增强)列控制器
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-12-21 02:03:28
|
|
8
|
+
* @export
|
|
9
|
+
* @class TreeGridExColumnController
|
|
10
|
+
* @template T
|
|
11
|
+
*/
|
|
12
|
+
export class TreeGridExColumnController<
|
|
13
|
+
T extends IDETreeColumn = IDETreeColumn,
|
|
14
|
+
> {
|
|
15
|
+
/**
|
|
16
|
+
* 树表格(增强)列模型对象
|
|
17
|
+
*
|
|
18
|
+
* @author lxm
|
|
19
|
+
* @date 2022-09-05 19:09:07
|
|
20
|
+
* @type {T}
|
|
21
|
+
*/
|
|
22
|
+
readonly model: T;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 树表格(增强)控制器
|
|
26
|
+
*
|
|
27
|
+
* @author lxm
|
|
28
|
+
* @date 2022-08-24 22:08:59
|
|
29
|
+
* @type {GridController}
|
|
30
|
+
*/
|
|
31
|
+
readonly treeGrid: TreeGridExController;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 是否是自适应列
|
|
35
|
+
* @author lxm
|
|
36
|
+
* @date 2023-07-07 11:20:16
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
*/
|
|
39
|
+
isAdaptiveColumn: boolean = false;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 是否是脚本代码
|
|
43
|
+
* @return {*}
|
|
44
|
+
* @author: zhujiamin
|
|
45
|
+
* @Date: 2023-08-15 10:51:25
|
|
46
|
+
*/
|
|
47
|
+
isCustomCode: boolean = false;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 上下文
|
|
51
|
+
*
|
|
52
|
+
* @author lxm
|
|
53
|
+
* @date 2022-09-05 19:09:24
|
|
54
|
+
* @readonly
|
|
55
|
+
* @type {IContext}
|
|
56
|
+
*/
|
|
57
|
+
get context(): IContext {
|
|
58
|
+
return this.treeGrid.context;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 视图参数
|
|
63
|
+
*
|
|
64
|
+
* @author lxm
|
|
65
|
+
* @date 2022-09-05 19:09:00
|
|
66
|
+
* @readonly
|
|
67
|
+
* @type {IParams}
|
|
68
|
+
*/
|
|
69
|
+
get params(): IParams {
|
|
70
|
+
return this.treeGrid.params;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 是否是第一个显示的树表格列
|
|
75
|
+
* @author lxm
|
|
76
|
+
* @date 2023-12-22 03:28:10
|
|
77
|
+
* @readonly
|
|
78
|
+
* @type {boolean}
|
|
79
|
+
*/
|
|
80
|
+
get isFirstShowColumn(): boolean {
|
|
81
|
+
const firstColumn = this.treeGrid.state.columnStates.find(
|
|
82
|
+
item => !item.hidden,
|
|
83
|
+
);
|
|
84
|
+
return firstColumn?.key === this.model.codeName;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Creates an instance of GridFieldColumnController.
|
|
89
|
+
* @author lxm
|
|
90
|
+
* @date 2022-08-24 20:08:22
|
|
91
|
+
* @param {T} model
|
|
92
|
+
*/
|
|
93
|
+
constructor(model: T, treeGrid: TreeGridExController) {
|
|
94
|
+
this.model = model;
|
|
95
|
+
this.treeGrid = treeGrid;
|
|
96
|
+
this.isAdaptiveColumn = model.widthUnit === 'STAR';
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* 子类不可覆盖或重写此方法,在 init 时需要重写的使用 onInit 方法。
|
|
101
|
+
*
|
|
102
|
+
* @author lxm
|
|
103
|
+
* @date 2022-08-18 22:08:30
|
|
104
|
+
* @returns {*} {Promise<void>}
|
|
105
|
+
*/
|
|
106
|
+
async init(): Promise<void> {
|
|
107
|
+
await this.onInit();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* 初始化方法
|
|
112
|
+
*
|
|
113
|
+
* @author lxm
|
|
114
|
+
* @date 2022-09-28 15:09:15
|
|
115
|
+
* @protected
|
|
116
|
+
* @returns {*} {Promise<void>}
|
|
117
|
+
*/
|
|
118
|
+
protected async onInit(): Promise<void> {
|
|
119
|
+
// 初始化操作
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
import { IDETreeDEFColumn } from '@ibiz/model-core';
|
|
3
|
+
import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 树表格(增强)属性列控制器
|
|
7
|
+
* @author lxm
|
|
8
|
+
* @date 2023-12-21 02:02:36
|
|
9
|
+
* @export
|
|
10
|
+
* @class TreeGridExFieldColumnController
|
|
11
|
+
* @extends {TreeGridExColumnController<IDETreeDEFColumn>}
|
|
12
|
+
*/
|
|
13
|
+
export class TreeGridExFieldColumnController extends TreeGridExColumnController<IDETreeDEFColumn> {}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
3
|
+
import { IDETreeUAColumn, IUIActionGroupDetail } from '@ibiz/model-core';
|
|
4
|
+
import { UIActionUtil } from '../../../../../ui-action';
|
|
5
|
+
import { ButtonContainerState, UIActionButtonState } from '../../../../utils';
|
|
6
|
+
import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
7
|
+
import { ITreeGridExRowState } from '../../../../../interface';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 树表格(增强)操作列控制器
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2023-12-21 02:04:05
|
|
13
|
+
* @export
|
|
14
|
+
* @class TreeGridExUAColumnController
|
|
15
|
+
* @extends {TreeGridExColumnController<IDETreeUAColumn>}
|
|
16
|
+
*/
|
|
17
|
+
export class TreeGridExUAColumnController extends TreeGridExColumnController<IDETreeUAColumn> {
|
|
18
|
+
/**
|
|
19
|
+
* 给rowController初始化操作列的状态
|
|
20
|
+
*
|
|
21
|
+
* @author lxm
|
|
22
|
+
* @date 2022-09-07 21:09:43
|
|
23
|
+
* @param {ITreeGridExRowState} row
|
|
24
|
+
*/
|
|
25
|
+
initActionStates(row: ITreeGridExRowState): void {
|
|
26
|
+
// 操作列按钮状态控制
|
|
27
|
+
const { deuiactionGroup } = this.model;
|
|
28
|
+
if (!deuiactionGroup) {
|
|
29
|
+
throw new RuntimeModelError(this.model, '操作列没有配置界面行为组');
|
|
30
|
+
}
|
|
31
|
+
if (!deuiactionGroup.uiactionGroupDetails?.length) {
|
|
32
|
+
ibiz.log.debug('操作列界面行为组没有配置界面行为');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const containerState = new ButtonContainerState();
|
|
36
|
+
deuiactionGroup.uiactionGroupDetails.forEach(detail => {
|
|
37
|
+
const actionid = detail.uiactionId;
|
|
38
|
+
if (actionid) {
|
|
39
|
+
const buttonState = new UIActionButtonState(
|
|
40
|
+
detail.id!,
|
|
41
|
+
this.treeGrid.context.srfappid!,
|
|
42
|
+
actionid,
|
|
43
|
+
);
|
|
44
|
+
containerState.addState(detail.id!, buttonState);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
row.uaColStates[this.model.codeName!] = containerState;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 触发操作列点击事件
|
|
52
|
+
*
|
|
53
|
+
* @author lxm
|
|
54
|
+
* @date 2022-09-07 22:09:46
|
|
55
|
+
* @param {IPSUIActionGroupDetail} detail
|
|
56
|
+
* @param {MouseEvent} event
|
|
57
|
+
*/
|
|
58
|
+
async onActionClick(
|
|
59
|
+
detail: IUIActionGroupDetail,
|
|
60
|
+
row: ITreeGridExRowState,
|
|
61
|
+
event: MouseEvent,
|
|
62
|
+
): Promise<void> {
|
|
63
|
+
const actionId = detail.uiactionId;
|
|
64
|
+
await UIActionUtil.execAndResolved(
|
|
65
|
+
actionId!,
|
|
66
|
+
{
|
|
67
|
+
context: this.context,
|
|
68
|
+
params: this.params,
|
|
69
|
+
data: [row.data],
|
|
70
|
+
view: this.treeGrid.view,
|
|
71
|
+
event,
|
|
72
|
+
},
|
|
73
|
+
detail.appId,
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
IButtonContainerState,
|
|
3
|
+
ITreeGridExRowState,
|
|
4
|
+
ITreeNodeData,
|
|
5
|
+
} from '../../../interface';
|
|
6
|
+
import { TreeGridExController } from './tree-grid-ex.controller';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 树表格(增强)行数据状态类
|
|
10
|
+
*
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2023-12-22 10:39:01
|
|
13
|
+
* @export
|
|
14
|
+
* @class TreeGridExRowState
|
|
15
|
+
* @implements {ITreeGridExRowState}
|
|
16
|
+
*/
|
|
17
|
+
export class TreeGridExRowState implements ITreeGridExRowState {
|
|
18
|
+
data: ITreeNodeData;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 操作列状态(p是操作列的标识)
|
|
22
|
+
*
|
|
23
|
+
* @author lxm
|
|
24
|
+
* @date 2022-09-07 22:09:38
|
|
25
|
+
* @type {({ [p: string]: IButtonContainerState })}
|
|
26
|
+
*/
|
|
27
|
+
uaColStates: { [p: string]: IButtonContainerState } = {};
|
|
28
|
+
|
|
29
|
+
constructor(data: ITreeNodeData, treeGrid: TreeGridExController) {
|
|
30
|
+
this.data = data;
|
|
31
|
+
|
|
32
|
+
// 初始化操作列状态
|
|
33
|
+
Object.values(treeGrid.uaColumns).forEach(column => {
|
|
34
|
+
column.initActionStates(this);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
+
import { IDETreeColumn, IDETreeGridEx } from '@ibiz/model-core';
|
|
1
2
|
import { recursiveIterate } from '@ibiz-template/core';
|
|
2
|
-
import { IDETree, IDETreeColumn } from '@ibiz/model-core';
|
|
3
3
|
import {
|
|
4
|
-
MDCtrlLoadParams,
|
|
5
|
-
ITreeNodeData,
|
|
6
4
|
ITreeGridExController,
|
|
7
|
-
IGridColumnProvider,
|
|
8
5
|
ITreeGridExState,
|
|
9
6
|
ITreeGridExEvent,
|
|
7
|
+
ITreeGridExColumnProvider,
|
|
8
|
+
ITreeGridExRowState,
|
|
9
|
+
ITreeNodeData,
|
|
10
10
|
} from '../../../interface';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
GridColumnController,
|
|
15
|
-
GridFieldColumnController,
|
|
16
|
-
GridUAColumnController,
|
|
17
|
-
} from '../grid';
|
|
11
|
+
import { getTreeGridExColumnProvider } from '../../../register';
|
|
12
|
+
|
|
18
13
|
import { TreeGridExService } from './tree-grid-ex.service';
|
|
14
|
+
import { TreeController } from '../tree/tree.controller';
|
|
15
|
+
import {
|
|
16
|
+
TreeGridExColumnController,
|
|
17
|
+
TreeGridExFieldColumnController,
|
|
18
|
+
TreeGridExUAColumnController,
|
|
19
|
+
} from './tree-grid-ex-column';
|
|
20
|
+
import { TreeGridExRowState } from './tree-grid-ex-row.state';
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
23
|
+
* 树表格(增强)部件控制器
|
|
22
24
|
*
|
|
23
25
|
* @author zk
|
|
24
26
|
* @date 2023-09-21 06:09:46
|
|
@@ -27,70 +29,97 @@ import { TreeGridExService } from './tree-grid-ex.service';
|
|
|
27
29
|
* @extends {MDControlController<IDETree, ITreeGridState, ITreeGridEvent>}
|
|
28
30
|
* @implements {ITreeGridExController}
|
|
29
31
|
*/
|
|
30
|
-
export class TreeGridExController
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
export class TreeGridExController<
|
|
33
|
+
T extends IDETreeGridEx = IDETreeGridEx,
|
|
34
|
+
S extends ITreeGridExState = ITreeGridExState,
|
|
35
|
+
E extends ITreeGridExEvent = ITreeGridExEvent,
|
|
36
|
+
>
|
|
37
|
+
extends TreeController<T, S, E>
|
|
38
|
+
implements ITreeGridExController<T, S, E>
|
|
33
39
|
{
|
|
34
40
|
declare service: TreeGridExService;
|
|
35
41
|
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
43
|
+
* 树表格(增强)列的适配器
|
|
38
44
|
*
|
|
39
45
|
* @author zk
|
|
40
46
|
* @date 2023-09-21 06:09:04
|
|
41
|
-
* @type {{ [key: string]:
|
|
47
|
+
* @type {{ [key: string]: ITreeGridExColumnProvider }}
|
|
42
48
|
* @memberof TreeGridExController
|
|
43
49
|
*/
|
|
44
|
-
providers: { [key: string]:
|
|
50
|
+
providers: { [key: string]: ITreeGridExColumnProvider } = {};
|
|
45
51
|
|
|
46
52
|
/**
|
|
47
|
-
*
|
|
53
|
+
* 所有树表格(增强)列控制器集合
|
|
48
54
|
*
|
|
49
55
|
* @author zk
|
|
50
56
|
* @date 2023-09-21 06:09:10
|
|
51
|
-
* @type {{ [key: string]:
|
|
57
|
+
* @type {{ [key: string]: TreeGridExColumnController }}
|
|
52
58
|
* @memberof TreeGridExController
|
|
53
59
|
*/
|
|
54
|
-
columns: { [key: string]:
|
|
60
|
+
columns: { [key: string]: TreeGridExColumnController } = {};
|
|
55
61
|
|
|
56
62
|
/**
|
|
57
|
-
*
|
|
63
|
+
* 所有树表格(增强)属性列的控制器
|
|
58
64
|
*
|
|
59
65
|
* @author zk
|
|
60
66
|
* @date 2023-09-21 06:09:16
|
|
61
|
-
* @type {{ [key: string]:
|
|
67
|
+
* @type {{ [key: string]: TreeGridExFieldColumnController }}
|
|
62
68
|
* @memberof TreeGridExController
|
|
63
69
|
*/
|
|
64
|
-
fieldColumns: { [key: string]:
|
|
70
|
+
fieldColumns: { [key: string]: TreeGridExFieldColumnController } = {};
|
|
65
71
|
|
|
66
72
|
/**
|
|
67
|
-
*
|
|
73
|
+
* 所有树表格(增强)操作列的控制器
|
|
68
74
|
*
|
|
69
75
|
* @author zk
|
|
70
76
|
* @date 2023-09-21 06:09:21
|
|
71
|
-
* @type {{ [key: string]:
|
|
77
|
+
* @type {{ [key: string]: TreeGridExUAColumnController }}
|
|
72
78
|
* @memberof TreeGridExController
|
|
73
79
|
*/
|
|
74
|
-
uaColumns: { [key: string]:
|
|
80
|
+
uaColumns: { [key: string]: TreeGridExUAColumnController } = {};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 是否有配置宽度自适应列
|
|
84
|
+
*
|
|
85
|
+
* @type {boolean}
|
|
86
|
+
* @memberof GridController
|
|
87
|
+
*/
|
|
88
|
+
get hasAdaptiveColumn(): boolean {
|
|
89
|
+
return !!Object.values(this.columns).find(item => item.isAdaptiveColumn);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 单元格超出呈现模式
|
|
94
|
+
* @author lxm
|
|
95
|
+
* @date 2023-11-17 01:56:26
|
|
96
|
+
* @readonly
|
|
97
|
+
* @type {('wrap' | 'ellipsis')}
|
|
98
|
+
*/
|
|
99
|
+
get overflowMode(): 'wrap' | 'ellipsis' {
|
|
100
|
+
return ibiz.config.grid.overflowMode;
|
|
101
|
+
}
|
|
75
102
|
|
|
76
103
|
protected initState(): void {
|
|
77
104
|
super.initState();
|
|
78
|
-
// 根节点初始化
|
|
79
|
-
this.state.size = 0;
|
|
80
105
|
this.state.columnStates = [];
|
|
81
|
-
this.state.
|
|
106
|
+
this.state.rows = {};
|
|
82
107
|
}
|
|
83
108
|
|
|
84
109
|
protected async onCreated(): Promise<void> {
|
|
85
110
|
await super.onCreated();
|
|
86
|
-
|
|
87
|
-
await this.service.init(this.context);
|
|
111
|
+
|
|
88
112
|
this.initColumnStates();
|
|
89
113
|
await this.initGridColumns();
|
|
90
114
|
}
|
|
91
115
|
|
|
116
|
+
protected async initService(): Promise<void> {
|
|
117
|
+
this.service = new TreeGridExService(this.model);
|
|
118
|
+
await this.service.init(this.context);
|
|
119
|
+
}
|
|
120
|
+
|
|
92
121
|
/**
|
|
93
|
-
*
|
|
122
|
+
* 初始化树表格(增强)属性列,操作列,编辑项控制器
|
|
94
123
|
*
|
|
95
124
|
* @author zk
|
|
96
125
|
* @date 2023-09-21 06:09:28
|
|
@@ -109,7 +138,7 @@ export class TreeGridExController
|
|
|
109
138
|
}
|
|
110
139
|
|
|
111
140
|
/**
|
|
112
|
-
*
|
|
141
|
+
* 初始化树表格(增强)属性列,操作列,编辑项控制器
|
|
113
142
|
*
|
|
114
143
|
* @author zk
|
|
115
144
|
* @date 2023-09-21 06:09:37
|
|
@@ -120,27 +149,28 @@ export class TreeGridExController
|
|
|
120
149
|
*/
|
|
121
150
|
protected async initColumnsController(column: IDETreeColumn): Promise<void> {
|
|
122
151
|
// 初始化适配器
|
|
123
|
-
const provider = await
|
|
152
|
+
const provider = await getTreeGridExColumnProvider(column);
|
|
124
153
|
if (!provider) {
|
|
125
154
|
return;
|
|
126
155
|
}
|
|
127
156
|
this.providers[column.codeName!] = provider;
|
|
128
157
|
|
|
129
|
-
//
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
this.columns[column.codeName!] = controller as GridColumnController;
|
|
158
|
+
// 初始化树表格(增强)列控制器
|
|
159
|
+
const controller = await provider.createController(column, this);
|
|
160
|
+
|
|
133
161
|
// 分类存放控制器
|
|
162
|
+
this.columns[column.codeName!] = controller as TreeGridExColumnController;
|
|
134
163
|
if (column.columnType === 'DEFGRIDCOLUMN') {
|
|
135
164
|
this.fieldColumns[column.codeName!] =
|
|
136
|
-
controller as
|
|
165
|
+
controller as TreeGridExFieldColumnController;
|
|
137
166
|
} else if (column.columnType === 'UAGRIDCOLUMN') {
|
|
138
|
-
this.uaColumns[column.codeName!] =
|
|
167
|
+
this.uaColumns[column.codeName!] =
|
|
168
|
+
controller as TreeGridExUAColumnController;
|
|
139
169
|
}
|
|
140
170
|
}
|
|
141
171
|
|
|
142
172
|
/**
|
|
143
|
-
*
|
|
173
|
+
* 初始化树表格(增强)列状态
|
|
144
174
|
*
|
|
145
175
|
* @author zk
|
|
146
176
|
* @date 2023-09-21 06:09:43
|
|
@@ -148,20 +178,15 @@ export class TreeGridExController
|
|
|
148
178
|
* @memberof TreeGridExController
|
|
149
179
|
*/
|
|
150
180
|
protected initColumnStates(): void {
|
|
151
|
-
|
|
152
|
-
this.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{ childrenFields: ['detreeColumns'] },
|
|
164
|
-
);
|
|
181
|
+
this.model.detreeColumns?.forEach(column => {
|
|
182
|
+
this.state.columnStates.push({
|
|
183
|
+
key: column.codeName!,
|
|
184
|
+
caption: column.caption!,
|
|
185
|
+
hidden: !!column.hideDefault,
|
|
186
|
+
uaColumn: column.columnType === 'UAGRIDCOLUMN',
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
|
|
165
190
|
this.calcColumnFixed();
|
|
166
191
|
}
|
|
167
192
|
|
|
@@ -174,111 +199,62 @@ export class TreeGridExController
|
|
|
174
199
|
* @memberof TreeGridExController
|
|
175
200
|
*/
|
|
176
201
|
protected calcColumnFixed(): void {
|
|
202
|
+
// 过滤出当前显示的列
|
|
177
203
|
const showColumns = this.state.columnStates.filter(
|
|
178
204
|
column => !column.hidden,
|
|
179
205
|
);
|
|
180
206
|
const allNum = showColumns.length;
|
|
181
207
|
showColumns.forEach((column, index) => {
|
|
182
208
|
if (column.uaColumn) {
|
|
209
|
+
// 操作列根据在中间列的那一侧,固定在最左侧或最右侧
|
|
183
210
|
column.fixed = index + 1 <= Math.floor(allNum / 2) ? 'left' : 'right';
|
|
184
|
-
} else {
|
|
185
|
-
column.fixed = 'right';
|
|
186
211
|
}
|
|
187
212
|
});
|
|
188
213
|
}
|
|
189
214
|
|
|
190
215
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* @
|
|
194
|
-
* @
|
|
195
|
-
* @
|
|
196
|
-
* @return {*} {Promise<ITreeNodeData[]>}
|
|
197
|
-
* @memberof TreeGridExController
|
|
216
|
+
* 获取树表格行数据
|
|
217
|
+
* @author lxm
|
|
218
|
+
* @date 2023-12-22 02:23:44
|
|
219
|
+
* @param {string} key 可以是节点id也可以是_uuid
|
|
220
|
+
* @return {*} {(ITreeGridExRowState | undefined)}
|
|
198
221
|
*/
|
|
199
|
-
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
await this.afterLoad(args, nodes);
|
|
204
|
-
this.state.isLoaded = true;
|
|
205
|
-
await this.evt.emit('onLoadSuccess', {
|
|
206
|
-
isInitialLoad,
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
return nodes;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* 加载子节点数据
|
|
214
|
-
*
|
|
215
|
-
* @author zk
|
|
216
|
-
* @date 2023-09-21 06:09:02
|
|
217
|
-
* @param {ITreeNodeData} [parentNode]
|
|
218
|
-
* @return {*} {Promise<ITreeNodeData[]>}
|
|
219
|
-
* @memberof TreeGridExController
|
|
220
|
-
*/
|
|
221
|
-
async loadNodes(parentNode?: ITreeNodeData): Promise<ITreeNodeData[]> {
|
|
222
|
-
const params = await this.getFetchParams();
|
|
223
|
-
const hasQuery = !!params.query;
|
|
224
|
-
const defaultExpandedKeys = !parentNode
|
|
225
|
-
? this.state.defaultExpandedKeys
|
|
226
|
-
: undefined;
|
|
227
|
-
|
|
228
|
-
// 请求服务获取子节点数据
|
|
229
|
-
await this.startLoading();
|
|
230
|
-
let nodes;
|
|
231
|
-
try {
|
|
232
|
-
nodes =
|
|
233
|
-
(await this.service.fetchChildNodes(parentNode, {
|
|
234
|
-
context: this.context.clone(),
|
|
235
|
-
params,
|
|
236
|
-
hasQuery,
|
|
237
|
-
defaultExpandedKeys,
|
|
238
|
-
})) || [];
|
|
239
|
-
} finally {
|
|
240
|
-
await this.endLoading();
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// 有父节点绑定到父节点数据上,无父节点替换rootNodes
|
|
244
|
-
if (parentNode) {
|
|
245
|
-
parentNode.children = nodes;
|
|
246
|
-
} else {
|
|
247
|
-
this.state.rootNodes = nodes;
|
|
222
|
+
getRowState(key: string): ITreeGridExRowState | undefined {
|
|
223
|
+
const nodeData = this.getNodeData(key);
|
|
224
|
+
if (nodeData) {
|
|
225
|
+
return this.state.rows[nodeData._uuid];
|
|
248
226
|
}
|
|
227
|
+
}
|
|
249
228
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
recursiveIterate(
|
|
253
|
-
{ children: this.state.rootNodes },
|
|
254
|
-
(node: ITreeNodeData) => {
|
|
255
|
-
this.state.items.push(node);
|
|
256
|
-
},
|
|
257
|
-
);
|
|
229
|
+
async afterLoadNodes(nodes: ITreeNodeData[]): Promise<void> {
|
|
230
|
+
await super.afterLoadNodes(nodes);
|
|
258
231
|
|
|
259
|
-
|
|
232
|
+
// 封装更新树表格行数据
|
|
233
|
+
recursiveIterate({ children: nodes }, (node: ITreeNodeData) => {
|
|
234
|
+
this.state.rows[node._uuid] = new TreeGridExRowState(node, this);
|
|
235
|
+
});
|
|
260
236
|
}
|
|
261
237
|
|
|
262
238
|
/**
|
|
263
|
-
*
|
|
239
|
+
* 转换各类多语言
|
|
264
240
|
*
|
|
265
|
-
* @
|
|
266
|
-
* @
|
|
267
|
-
* @param {ITreeNodeData[]} nodes
|
|
268
|
-
* @return {*} {string[]}
|
|
269
|
-
* @memberof TreeGridExController
|
|
241
|
+
* @date 2023-05-18 02:57:00
|
|
242
|
+
* @protected
|
|
270
243
|
*/
|
|
271
|
-
protected
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
244
|
+
protected convertMultipleLanguages(): void {
|
|
245
|
+
// *转换列标题的多语言
|
|
246
|
+
const convertColumnCaption = (columns: IDETreeColumn[]): void => {
|
|
247
|
+
columns.forEach((column: IDETreeColumn) => {
|
|
248
|
+
if (column.capLanguageRes && column.capLanguageRes.lanResTag) {
|
|
249
|
+
column.caption = ibiz.i18n.t(
|
|
250
|
+
column.capLanguageRes.lanResTag,
|
|
251
|
+
column.caption,
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
if (this.model.detreeColumns && this.model.detreeColumns.length > 0) {
|
|
257
|
+
convertColumnCaption(this.model.detreeColumns);
|
|
281
258
|
}
|
|
282
|
-
return expandedKeys;
|
|
283
259
|
}
|
|
284
260
|
}
|