/** * 查询方案、查询面板、工具条、网格,标准查询页面 * @param {*} queryDataset 保存数据集,命名规范 ds_[数组下标]_[对话框id] * @param {*} conf 组件定义配置项 * @returns */ import { StringUtil } from "@birt/funclib/StringUtil.js"; import { $CONST } from "@birt/funclib/ConstUtil"; import {baseURL,projectName,requestUrl} from '@birt/config' var pn = projectName || 'birt' export function newInstance(queryDataset, conf) { const dlgId = StringUtil.randomString(6); const hcTabsId = "HcTabs_" + dlgId; const hcTabDetailId = "detail_" + dlgId; // 设置数据集id,分页 queryDataset.controlId += "_" + dlgId; queryDataset._infcPagging = { _isPagging: true, returnCount: true } // 查询面板 let hcQueryPanel = false; if (conf.hcQueryPanel) { hcQueryPanel = { controlName: "HcQueryPanel", controlId: "HcQueryPanel_" + dlgId, dataset: queryDataset.controlId, children: [] } // 应用查询面板个性化配置 Object.assign(hcQueryPanel, conf.hcQueryPanel || {}); } // 操作工具条 let hcFormToolbar = false; if (conf.hcFormToolbar) { hcFormToolbar = { controlName: "HcFormToolbar", controlId: "HcFormToolbar_" + dlgId, dataset: queryDataset.controlId, children: [] } // 应用表单个性化配置 Object.assign(hcFormToolbar, conf.hcFormToolbar || {}); } // 网格明细 var hcTable = { controlName: "HcTable", controlId: "HcTable_" + dlgId, dataset: queryDataset.controlId, border: true, showAddBtn: false, // showSummary:true, height: function (parentHeight) { console.log(parentHeight); return parentHeight - 170; }, events: { // 双击跳转至详情页 rowDblclick: function (row, column, event) { debugger let curtTabs = this.getRefCompt(hcTabsId); let pushParam = Object.assign({ url: "/data/querys?pn = " + pn }, row); let eleNumber = this.store && this.store._getEleNumber(); if (eleNumber) { pushParam[$CONST.FLOWNUMBER] = row[eleNumber.field]; } curtTabs.setActiveTabName(hcTabDetailId, pushParam); // alert(JSON.stringify(row)); }, }, children: [], }; // 应用网格个性化配置 Object.assign(hcTable, conf.hcTable || {}); // 详情表单 var hcDetailForm = false; if (conf.hcDetailForm) { hcDetailForm = Object.assign( conf.hcDetailForm, { height: function (parentHeight) { return parentHeight - 170; }, }) } // 分页工具条 var hcPagination = { controlName: "HcPagination", controlId: "HcPagination_" + dlgId, pageSizes: [10, 20, 50, 100], layout: "total, prev, pager, next, sizes, jumper", dataset: queryDataset.controlId, }; var hcTabs = { controlName: "HcTabs", controlId: hcTabsId, tabPosition: "top", activeTabName: "list_" + dlgId, // type: "border-card", children: [ { controlName: "HcTabPane", controlId: "HcTabPane_list_" + dlgId, label: "列表", name: "list_" + dlgId, children: [] .concat(hcFormToolbar ? hcFormToolbar : []) .concat(hcTable) .concat(hcPagination) }, { controlName: "HcTabPane", controlId: "HcTabPane_detail_" + dlgId, label: "详情", name: hcTabDetailId, children: [] .concat(hcDetailForm ? hcDetailForm : []) } ] } // 应用报表模型 var birtWorkBook = Object.assign({ controlName: "BirtWorkBook", controlId: "BirtWorkBook_" + dlgId, showToolBar: false, totalPage: 1, renderType: "pages", height: function (parentHeight) { return parentHeight - 1; }, }, conf.birtWorkBook || {}) // 添加布局结构 birtWorkBook.children = [ { controlName: "BirtSheet", controlId: "BirtSheet_" + dlgId, name: "sheet_" + dlgId, pageIndex: 0, dataSets: [queryDataset], children: [ { controlName: "BirtFormSheet", controlId: "BirtFormSheet_" + dlgId, children: [] .concat(hcQueryPanel ? hcQueryPanel : []) .concat(hcTabs) } ] } ] return birtWorkBook }