/** * 左边树,右边网格明细查询 * @param {*} saveDataset 保存数据集,命名规范 ds_[数组下标]_[对话框id] * @param {*} conf 组件定义配置项 * @returns */ import { StringUtil } from "@birt/funclib/StringUtil.js"; import { treeEditFilter } from "../compose/org-tree-edit.jsx"; import { FormStyleFactory } from "../compose/FormStyleFactory.js"; import { TableStyleFactory } from "../compose/TableStyleFactory.js"; export function TreeTabTableQuery(conf) { const dlgId = StringUtil.randomString(6); // 设置数据集id var treeDataset = conf.treeDataset; var mainDataset = conf.mainDataset; var subDatasets = conf.subDatasets; // 编辑过滤树 let treeEdit = treeEditFilter(dlgId, treeDataset.controlId, conf.treeEditFilter); // 操作工具条 var hcFormToolbar = { controlName: "HcFormToolbar", controlId: "HcFormToolbar", dataset: mainDataset.controlId, layout: ["remove", "cancel", "save"], saveSucced:function(saveData){ // 获取树数据集 var dsTree = this.getWorkBook().dataset.dsTree // 清楚树数据 dsTree.clear() // 重新加载树数据集 dsTree.query() var node = this.getWorkBook().param.node var elTree = this.getRefCompt('HcTree_org') elTree.defaultExpandedKeys.push(node.data.FORGGUID) let parent = node.parent; while (parent) { elTree.defaultExpandedKeys.push(parent.data.FORGGUID) parent = parent.parent } }, size: "small", style: "padding:5px;" } // 人员form数据集不一样,另开一个工具条 var hcFormToolbarPsm = { controlName: "HcFormToolbar", controlId: "HcFormToolbarPsm", dataset: 'dsSubPsm', vshow: false, layout: ["remove", "cancel", "save"], saveSucced:function(saveData){ // 获取树数据集 var dsTree = this.getWorkBook().dataset.dsTree // 清楚树数据 dsTree.clear() // 重新加载树数据集 dsTree.query() var node = this.getWorkBook().param.node var elTree = this.getRefCompt('HcTree_org') elTree.defaultExpandedKeys.push(node.data.FORGGUID) let parent = node.parent; while (parent) { elTree.defaultExpandedKeys.push(parent.data.FORGGUID) parent = parent.parent } }, size: "small", style: "padding:5px;" } // 应用表单个性化配置 Object.assign(hcFormToolbar, conf.hcFormToolbar || {}); Object.assign(hcFormToolbarPsm, conf.hcFormToolbar || {}); // 编辑表单列表 let hcForms = false; if (conf.hcForms) { hcForms = []; conf.hcForms.forEach((frm, i) => { let hcForm = { controlName: "HcForm", controlId: "HcForm_" + i, dataset: i == 2 ? subDatasets[2].controlId : mainDataset.controlId, labelWidth: "80px", vshow: function () { return i == 0 }, rules: { }, children: [], }; // 应用表单个性化配置 Object.assign(hcForm, FormStyleFactory.buildForm(frm) || {}); hcForms.push(hcForm); }) } // 子节点网格 let hcTables = false; if (conf.hcTables) { hcTables = []; conf.hcTables.forEach((tbl, i) => { if (!(tbl.isEdit === false)) { tbl.isEdit = true; } var hcTable = TableStyleFactory.buildTable(i, subDatasets[i].controlId, { hcTable: Object.assign(tbl,{style: 'width: 100%'}) }); hcTables.push(hcTable); }) } // 子节点选项卡 var tabsChildren = [] hcTables.forEach((tbl,i)=>{ tabsChildren.push({ controlName: "HcTabPane", controlId: "HcTabPane_list_" + i, label: tbl.title || ("列表" + i), name: "list_" + i, disabled: i != 0, children: [].concat(hcTables[i]) }) }) var hcTabs = { controlName: "HcTabs", controlId: "HcTabs_org", tabPosition: "top", activeTabName: "list_0", style:'width: 90%;margin: auto;', events: { // click: function () { // } }, mounted(){ debugger }, children: [ ].concat(tabsChildren), } // 系统表单自动填充字段 var hcSysForm = false; if (conf.hcSysForm) { var hcSysForm = { controlName: "HcForm", controlId: "HcForm_sys_" + dlgId, dataset: mainDataset.controlId, labelWidth: "80px", rules: { }, children: [], }; // 应用系统字段表单个性化配置 Object.assign(hcSysForm, FormStyleFactory.buildForm(conf.hcSysForm) || {}); } // 应用报表模型 var birtWorkBook = Object.assign({ controlName: "BirtWorkBook", controlId: "BirtWorkBook_" + dlgId, showToolBar: false, totalPage: 1, renderType: "pages", height: function (parentHeight) { return parentHeight - 10; } }, conf.birtWorkBook || {}) // 添加布局结构 birtWorkBook.children = [{ controlName: "BirtSheet", controlId: "BirtSheet_" + dlgId, name: "sheet_" + dlgId, pageIndex: 0, dataSets: [treeDataset, mainDataset].concat(subDatasets), children: [{ controlName: "BirtFormSheet", controlId: "BirtFormSheet_" + dlgId, children: [{ controlName: "HcRow", gutter: 10, children: [ { controlName: "HcCol", span: 6, children: treeEdit, }, { controlName: "HcCol", controlId: "HcCol_01_right", span: 18, children: [] .concat(hcFormToolbar) .concat(hcFormToolbarPsm) .concat(hcForms) .concat(hcTabs) .concat(hcSysForm) } ] }] }] }] return birtWorkBook }