import { FormSingleSave } from "@birt/templates/pages/FormSingleSave";
import { FormSingleDetail } from "@birt/templates/pages/FormSingleDetail";
import { TabTableDetail } from "@birt/templates/pages/TabTableDetail";
import { TabTableSave } from "@birt/templates/pages/TabTableSave";
import { FormMainSubSave } from "@birt/templates/pages/FormMainSubSave";
import { TablePaggingSave } from "@birt/templates/pages/TablePaggingSave";
import { FormMainSubDetail } from "@birt/templates/pages/FormMainSubDetail";
import { GridSingleSelect } from "@birt/templates/lookup/GridSingleSelect";
import { GridMultiSelect } from "@birt/templates/lookup/GridMultiSelect";
import { TreeNodeSelect } from "@birt/templates/lookup/TreeNodeSelect";
import { TreeSingleSelect } from "@birt/templates/lookup/TreeSingleSelect";
import { TreeTableQuery } from "@birt/templates/pages/TreeTableQuery";
import { FormTableDetail } from "@birt/templates/pages/FormTableDetail";
/**
* 报表模型构建类
*/
export const BirtModelFactory = {
buildModel(reponsePage) {
debugger
let birtModel = reponsePage.birtModel || reponsePage;
let tpl = reponsePage.template || birtModel.template;
if (tpl) {
return this._buildModelByTpl(tpl, birtModel);
} else {
// console.error("reponsePage返回页面模型模板template属性未定义.")
return birtModel
}
},
_buildModelByTpl(tpl, birtModel) {
debugger
if (tpl.endsWith("form-single-save")) {
return FormSingleSave(birtModel);
} if (tpl.endsWith("form-single-detail")) {
return FormSingleDetail(birtModel);
} else if (tpl.endsWith("tab-table-detail")) {
if (birtModel.hcDetailForm) {
birtModel.hcDetailForm = this.buildModel(birtModel.hcDetailForm);
}
return TabTableDetail(birtModel);
} else if (tpl.endsWith("tab-table-save")) {
if (birtModel.hcDetailForm) {
birtModel.hcDetailForm = this.buildModel(birtModel.hcDetailForm);
}
return TabTableSave(birtModel);
} else if (tpl.endsWith("form-main-sub-detail")) {
return FormMainSubDetail(birtModel);
} else if (tpl.endsWith("form-main-sub-save")) {
return FormMainSubSave(birtModel);
} else if (tpl.endsWith("tree-table-query")) {
return TreeTableQuery(birtModel);
} else if (tpl.endsWith("table-pagging-save")) {
return TablePaggingSave(birtModel);
} else if (tpl.endsWith("lookup/grid-single-select")) {
return GridSingleSelect(birtModel);
} else if (tpl.endsWith("form-table-detail")) {
return FormTableDetail(birtModel);
} else if (tpl.endsWith("lookup/grid-multi-select")) {
return GridMultiSelect(birtModel);
} else if (tpl.endsWith("lookup/tree-node-select")) {
return TreeNodeSelect(birtModel);
} else if (tpl.endsWith("lookup/tree-single-select")) {
return TreeSingleSelect(birtModel);
} else if (tpl == "print") {
return birtModel;
} else {
console.error(`template[${tpl}]报表模型模板未定义.`)
}
}
}