'use strict'; /** * * * @author Mai * @date * @version */ $(document).ready(() => { autoFlashHeight(); const xmjSpread = SpreadJsObj.createNewSpread($('#xmj-spread')[0]); const xmjSheet = xmjSpread.getActiveSheet(); sjsSettingObj.setFxTreeStyle(xmjSpreadSetting, sjsSettingObj.FxTreeStyle.jz); SpreadJsObj.initSheet(xmjSheet, xmjSpreadSetting); const unitSpread = SpreadJsObj.createNewSpread($('#unit-spread')[0]); const unitSheet = unitSpread.getActiveSheet(); SpreadJsObj.initSheet(unitSheet, unitSpreadSetting); const unitTreeObj = { loadCurUnitData: function () { const node = SpreadJsObj.getSelectObject(xmjSheet); if (node && node.unitTree) { SpreadJsObj.loadSheetData(unitSheet, SpreadJsObj.DataType.Tree, node.unitTree); } else { SpreadJsObj.initSheet(unitSheet, unitSpreadSetting); } } }; xmjSpread.bind(spreadNS.Events.SelectionChanged, function (e, info) { unitTreeObj.loadCurUnitData(); }); postData(window.location.pathname + '/load', {}, function (result) { const setting = { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, fullPath: 'full_path', }; const xmjTree = createNewPathTree('base', setting); xmjTree.loadDatas(result); for (const n of xmjTree.nodes) { if (n.unitTreeData) { n.unitTree = createNewPathTree('base', setting); n.unitTree.loadDatas(n.unitTreeData); } } SpreadJsObj.loadSheetData(xmjSheet, SpreadJsObj.DataType.Tree, xmjTree); unitTreeObj.loadCurUnitData(); }); $.subMenu({ menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list', toMenu: '#to-menu', toMiniMenu: '#to-mini-menu', key: 'menu.1.0.0', miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1', callback: function (info) { if (info.mini) { $('.panel-title').addClass('fluid'); $('#sub-menu').removeClass('panel-sidebar'); } else { $('.panel-title').removeClass('fluid'); $('#sub-menu').addClass('panel-sidebar'); } autoFlashHeight(); xmjSpread.refresh(); unitSpread.refresh(); } }); // 加载上下窗口resizer $.divResizer({ select: '#main-resize', callback: function () { xmjSpread.refresh(); let bcontent = $(".bcontent-wrap") ? $(".bcontent-wrap").height() : 0; $(".sp-wrap").height(bcontent-30); unitSpread.refresh(); } }); // 显示层次 (function (select, sheet) { $(select).click(function () { const tag = $(this).attr('tag'); const tree = sheet.zh_tree; if (!tree) return; switch (tag) { case "1": case "2": case "3": case "4": case "5": tree.expandByLevel(parseInt(tag)); SpreadJsObj.refreshTreeRowVisible(sheet); break; case "last": tree.expandByCustom(() => { return true; }); SpreadJsObj.refreshTreeRowVisible(sheet); break; } }); })('a[name=showLevel]', xmjSheet); $('#exportBwtz').click(function () { const data = []; const setting = { cols: [ {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 100, formatter: '@'}, {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'}, {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 300, formatter: '@'}, {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@'}, {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 80, type: 'Number'}, {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 80, type: 'Number'}, {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 80, type: 'Number'}, {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 100, formatter: '@'}, {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@'}, ], headRows: 2, headRowHeight: [25, 25], defaultRowHeight: 21, headerFont: 'bold 10px 微软雅黑', font: '10px 微软雅黑' }; if (!xmjSheet.zh_tree) return; for (const node of xmjSheet.zh_tree.nodes) { data.push({ code: node.code, b_code: node.b_code, name: node.name, unit: node.unit, unit_price: node.unit_price, quantity: node.quantity, total_price: node.total_price, drawing_code: node.drawing_code, memo: node.memo }); if (node.unitTree) { for (const unitNode of node.unitTree.nodes) { data.push({ code: unitNode.code, b_code: unitNode.b_code, name: unitNode.pos_name ? unitNode.pos_name : unitNode.name, unit: unitNode.unit, unit_price: unitNode.unit_price, quantity: unitNode.quantity, total_price: unitNode.total_price, drawing_code: unitNode.drawing_code, memo: unitNode.memo }); } } } SpreadExcelObj.exportSimpleXlsxSheet(setting, data, $('h2')[0].innerHTML + "-部位台账.xlsx"); }); });