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
import { ModelTool } from 'ibiz-core';
import { IPSDECalendar, IPSSysCalendar, IPSSysCalendarItem, IPSAppDERS } from '@ibiz/dynamic-model-api';
export class AppMobCalendarModel {
/**
* 日历实例对象
*
* @memberof AppGridModel
*/
public calendarInstance !: IPSDECalendar;
/**
* 日历项类型
*
* @returns {string}
* @memberof AppGridModel
*/
public itemType: string = '';
/**
* Creates an instance of AppGridModel.
*
* @param {*} [opts={}]
* @memberof AppGridModel
*/
constructor(opts: any) {
this.calendarInstance = opts;
}
public getDataItems(): any[] {
let modelArray: any[] = [
{
name: 'queryStart',
prop: 'n_start_gtandeq'
},
{
name: 'queryEnd',
prop: 'n_end_ltandeq'
},
{
name: 'color',
},
{
name: 'textColor',
},
{
name: 'itemType',
},
];
// 关联主实体的主键
const appDataEntity = this.calendarInstance.getPSAppDataEntity();
if (appDataEntity?.major && appDataEntity.getMinorPSAppDERSs()) {
const minorPSAppDERSs = appDataEntity.getMinorPSAppDERSs();
minorPSAppDERSs?.forEach((minorAppDERS:IPSAppDERS) => {
const majorAppDataEntity = minorAppDERS.getMajorPSAppDataEntity();
const keyField = ModelTool.getAppEntityKeyField(majorAppDataEntity);
let tempArr: any[] = [{
name : majorAppDataEntity?.codeName?.toLowerCase(),
prop : keyField?.codeName.toLowerCase()
}]
modelArray.push(tempArr)
});
}
if(!this.itemType) {
return modelArray;
}
//日历项实体映射
const calendarItems = (this.calendarInstance as IPSSysCalendar).getPSSysCalendarItems() || [];
const item = calendarItems?.find((_item: IPSSysCalendarItem) => {
return _item.itemType == this.itemType;
})
if(item) {
const entity = item.getPSAppDataEntity(),
idField = item.getIdPSAppDEField(),
textField = item.getTextPSAppDEField(),
beginField = item.getBeginTimePSAppDEField(),
endField = item.getEndTimePSAppDEField();
const keyField = ModelTool.getAppEntityKeyField(entity);
const majorField = ModelTool.getAppEntityMajorField(entity);
let tempArr: any[] = [{
name: entity?.codeName?.toLowerCase(),
prop: idField?.codeName ? idField.codeName.toLowerCase() : keyField?.codeName?.toLowerCase()
}, {
name: 'title',
prop: textField?.codeName ? textField.codeName.toLowerCase() : majorField?.codeName.toLowerCase()
}, {
name: 'start',
prop: beginField?.codeName ? `n_${beginField.codeName.toLowerCase()}_gtandeq` : `n_${beginField?.name?.toLowerCase()}_gtandeq`
}, {
name: 'end',
prop: endField?.codeName ? `n_${endField.codeName.toLowerCase()}_ltandeq` : `n_${endField?.name?.toLowerCase()}_gtandeq`
}];
modelArray = [...modelArray, ...tempArr];
}
return modelArray;
}
}