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}]报表模型模板未定义.`) } } }