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
import { IPSAppDataEntity, IPSAppDEField, IPSAppDEListView, IPSDEFormItem, IPSDEList, IPSDEListDataItem, IPSDESearchForm, IPSListDataItem } from "@ibiz/dynamic-model-api";
import { DataTypes, ModelTool } from "ibiz-core";
/**
* AppListModel 部件模型
*
* @export
* @class AppListModel
*/
export class AppListModel {
/**
* 列表实例对象
*
* @memberof AppListModel
*/
public ListInstance !: IPSDEList;
/**
* Creates an instance of AppListModel.
*
* @param {*} [opts={}]
* @memberof AppListModel
*/
constructor(opts: any) {
this.ListInstance = opts;
}
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof AppListModel
*/
public getDataItems(): any[] {
const appDataEntity = this.ListInstance.getPSAppDataEntity();
let modelArray: any[] = [
{
name: 'size',
prop: 'size',
dataType: 'QUERYPARAM'
},
{
name: 'query',
prop: 'query',
dataType: 'QUERYPARAM'
},
{
name: 'sort',
prop: 'sort',
dataType: 'QUERYPARAM'
},
{
name: 'page',
prop: 'page',
dataType: 'QUERYPARAM'
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name: 'srffrontuf',
prop: 'srffrontuf',
dataType: 'TEXT',
},
]
this.ListInstance.getPSDEListDataItems()?.forEach((item: IPSListDataItem) => {
const dataitem: IPSDEListDataItem = item as IPSDEListDataItem;
let tempModel: any = {};
tempModel.name = dataitem.name.toLowerCase();
if (dataitem.customCode) {
tempModel.customCode = true;
tempModel.scriptCode = dataitem.scriptCode;
} else {
if (dataitem?.getPSAppDEField && dataitem?.getPSAppDEField()) {
tempModel.prop = dataitem.getPSAppDEField()?.codeName?.toLowerCase();
tempModel.dataType = DataTypes.toString((dataitem.getPSAppDEField() as IPSAppDEField).stdDataType);
}
}
modelArray.push(tempModel);
// 附加界面主键
if (dataitem.getPSAppDEField && dataitem?.getPSAppDEField()?.keyField) {
modelArray.push({
name: this.ListInstance.getPSAppDataEntity()?.codeName.toLowerCase(),
prop: dataitem.getPSAppDEField()?.codeName.toLowerCase(),
dataType: 'FRONTKEY',
})
}
})
//搜索表单
const searchFormInstance: IPSDESearchForm = ModelTool.findPSControlByType("SEARCHFORM", (this.ListInstance.getParentPSModelObject() as IPSAppDEListView).getPSControls() || []);
if (searchFormInstance) {
(searchFormInstance.getPSDEFormItems?.() || []).forEach((formItem: IPSDEFormItem) => {
let temp: any = { name: formItem.id, prop: formItem.id };
if (formItem.getPSAppDEField?.()) {
temp.dataType = 'QUERYPARAM';
}
modelArray.push(temp);
});
}
// 关联主实体的主键
// if (!appDataEntity?.major && appDataEntity?.getMinorPSAppDERSs()) {
// for (let index = 0; index < (appDataEntity?.getMinorPSAppDERSs() as any).length; index++) {
// const minorAppDERSs: IPSAppDERS = (appDataEntity?.getMinorPSAppDERSs() as any)[index];
// if (minorAppDERSs.getMajorPSAppDataEntity()) {
// {
// name: minorAppDERSs.getMajorPSAppDataEntity()?.codeName,
// prop: minorAppDERSs.getMajorPSAppDataEntity()?.getPSDER1N() ? minorAppDERSs.getMajorPSAppDataEntity()?.getPSDER1N()?.getPSPickupDEField
// }
// }
// }
// }
const keyField: string = (ModelTool.getAppEntityKeyField(this.ListInstance?.getPSAppDataEntity() as IPSAppDataEntity) as IPSAppDEField)?.codeName || '';
modelArray.push({
name: appDataEntity?.codeName.toLowerCase(),
prop: keyField.toLowerCase(),
});
return modelArray;
}
}