08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / project / hivuiBirt / templates / BirtModelFactory.js
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}]报表模型模板未定义.`)
        }
    }
}