1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import { IPSAppDETreeView, IPSDETree } from '@ibiz/dynamic-model-api';
import { ModelTool, PickupTreeViewInterface } from 'ibiz-core';
import { MDViewBase } from './mdview-base';
/**
* 选择树视图基类
*
* @export
* @class PickupTreeViewBase
* @extends {MDViewBase}
* @implements {PickupTreeViewInterface}
*/
export class PickupTreeViewBase extends MDViewBase implements PickupTreeViewInterface {
/**
* 选中数据字符串
*
* @type {string}
* @memberof PickupTreeViewBase
*/
public selectedData?: string;
/**
* 是否单选
*
* @type {boolean}
* @memberof PickupTreeViewBase
*/
public isSingleSelect: boolean = false;
/**
* 视图实例对象
*
* @type {IPSAppDETreeView}
* @memberof PickupTreeViewBase
*/
public declare viewInstance: IPSAppDETreeView;
/**
* 树视图实例
*
* @public
* @type {IPSDETree}
* @memberof PickupTreeViewBase
*/
public treeInstance!: IPSDETree;
/**
* 监听视图动态参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof PickupTreeViewBase
*/
public onDynamicPropsChange(newVal: any, oldVal: any) {
super.onDynamicPropsChange(newVal, oldVal);
if(newVal?.selectedData && newVal.selectedData != oldVal?.selectedData){
this.selectedData = newVal.selectedData;
}
}
/**
* 监听参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof PickupTreeViewBase
*/
public onStaticPropsChange(newVal: any, oldVal: any) {
this.isSingleSelect = newVal.isSingleSelect;
super.onStaticPropsChange(newVal, oldVal)
}
/**
* 引擎初始化
*
* @public
* @memberof PickupTreeViewBase
*/
public engineInit(): void {
if (this.Environment && this.Environment.isPreviewMode) {
return;
}
let engineOpts = ({
view: this,
p2k: '0',
tree: (this.$refs[this.treeInstance.name] as any).ctrl,
keyPSDEField: this.appDeCodeName.toLowerCase(),
majorPSDEField: this.appDeMajorFieldName.toLowerCase(),
isLoadDefault: this.viewInstance.loadDefault,
});
this.engine.init(engineOpts);
}
/**
* 计算目标部件所需参数
*
* @param {string} [controlType]
* @returns
* @memberof PickupGridViewBase
*/
public computeTargetCtrlData(controlInstance:any, args?: any) {
const { targetCtrlName, targetCtrlParam, targetCtrlEvent } = super.computeTargetCtrlData(controlInstance, args);
Object.assign(targetCtrlParam.dynamicProps,{
selectedData: this.selectedData,
})
Object.assign(targetCtrlParam.staticProps,{
isSingleSelect: this.isSingleSelect,
isSelectFirstDefault: true
})
return { targetCtrlName, targetCtrlParam, targetCtrlEvent };
}
/**
* 初始化选择树视图实例
*
* @memberof PickupTreeViewBase
*/
public async viewModelInit() {
this.viewInstance = (this.staticProps?.modeldata) as IPSAppDETreeView;
await super.viewModelInit();
this.treeInstance = ModelTool.findPSControlByType("TREEVIEW",this.viewInstance.getPSControls());
}
/**
* 渲染视图主体内容区
*
* @memberof PickupTreeViewBase
*/
public renderMainContent() {
let { targetCtrlName, targetCtrlParam, targetCtrlEvent } = this.computeTargetCtrlData(this.treeInstance);
Object.assign(targetCtrlParam.staticProps, { isSelectFirstDefault: false, treeMode: 'PICKUP' });
return this.$createElement(targetCtrlName, { props: targetCtrlParam, ref: this.treeInstance.name, on: targetCtrlEvent });
}
/**
* 快速搜索
*
* @returns {void}
* @memberof PickupTreeViewBase
*/
public onSearch(): void {
this.engine.search({ srfnodefilter: this.queryParams.quickSearchValue });
}
/**
* 选中全部
*
* @param {any[]} [datas=[]]
* @memberof PickupTreeViewBase
*/
public selectAll(datas: any[] = []): void {
if (this.engine) {
this.engine.selectAll(datas);
}
}
}