import { IPSAppDEField, IPSAppDEListView, IPSDEFormItem, IPSDEList, IPSDEListDataItem, IPSDESearchForm, IPSListDataItem } from '@ibizstudio/runtime'; import { DataTypes, ModelTool } from '@ibizstudio/runtime'; /** * AppListModel 部件模型 * * @export * @class AppListModel */ export class AppListModel { /** * 列表实例对象 * * @memberof AppListModel */ ListInstance!: IPSDEList; /** * Creates an instance of AppListModel. * * @param {*} [opts={}] * @memberof AppListModel */ constructor(opts: any) { this.ListInstance = opts; } /** * 获取数据项集合 * * @returns {any[]} * @memberof AppListModel */ getDataItems(): any[] { const appDataEntity = this.ListInstance.getPSAppDataEntity(); let modelArray: any[] = [ { name: 'size', prop: 'size', }, { name: 'query', prop: 'query', }, { name: 'sort', prop: 'sort', }, { name: 'page', prop: 'page', }, // 前端新增修改标识,新增为"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 // } // } // } // } return modelArray; } }