'use strict'; /** * 材料调差 - 调差清单 * * @author EllisRan * @date 2019/10/25 * @version */ $(document).ready(() => { autoFlashHeight(); // 清单table const ledgerSpread = SpreadJsObj.createNewSpread($('#ledger-spread')[0]); const ledgerSpreadSetting = { cols: [ {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 150, formatter: '@'}, {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 250, formatter: '@'}, {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 120, formatter: '@'}, {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 120, type: 'Number'}, {title: '本期计量数量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 120, type: 'Number'}, {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 120, type: 'Number'}, {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'total_qty', hAlign: 2, width: 120, type: 'Number', getValue: 'getValue.qty'}, ], emptyRows: 0, headRows: 2, headRowHeight: [32, 32], defaultRowHeight: 30, headerFont: '10pt 微软雅黑', readOnly: true, font: '10pt 微软雅黑', }; const ledgerCol = { getValue: { qty: function (data) { return ZhCalc.add(data.contract_qty, data.qc_qty); } } }; // 解析清单汇总数据 gclGatherModel.loadLedgerData(ledger, curLedgerData); gclGatherModel.loadPosData(pos, curPosData); const gclGatherData = gclGatherModel.gatherGclData(); // 获取项目节数据 function loadLeafXmjData(iGclRow) { const gcl = gclGatherData[iGclRow]; if (gcl) { SpreadJsObj.loadSheetData(leafXmjSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gcl.leafXmjs); } else { SpreadJsObj.loadSheetData(leafXmjSpread.getActiveSheet(), SpreadJsObj.DataType.Data, []); } } SpreadJsObj.initSpreadSettingEvents(ledgerSpreadSetting, ledgerCol); SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting); // 项目明细table const leafXmjSpread = SpreadJsObj.createNewSpread($('#leaf-xmj-spread')[0]); const leafXmjSpreadSetting = { cols: [ {title: '项目节|编号', colSpan: '2|1', rowSpan: '1|1', field: 'code', hAlign: 0, width: 80, formatter: '@'}, {title: '|项目节名称', colSpan: '|1', rowSpan: '|1', field: 'jldy', hAlign: 0, width: 100, formatter: '@'}, {title: '部位明细|部位明细', colSpan: '2|1', rowSpan: '1|1', field: 'bwmx', hAlign: 0, width: 100, formatter: '@'}, {title: '|复核数量', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 0, width: 80, type: 'Number'}, {title: '部位信息|单位工程', colSpan: '3|1', rowSpan: '1|1', field: 'dwgc', hAlign: 0, width: 100, formatter: '@'}, {title: '|分部工程', colSpan: '|1', rowSpan: '|1', field: 'fbgc', hAlign: 0, width: 100, formatter: '@'}, {title: '|分项工程', colSpan: '|1', rowSpan: '|1', field: 'fxgc', hAlign: 0, width: 180, formatter: '@'}, {title: '本期计量数量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'}, {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'}, {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'total_qty', hAlign: 2, width: 60, type: 'Number', getValue: 'getValue.qty'}, {title: '本期价差', colSpan: '1', rowSpan: '2', field: 'jijia', hAlign: 2, width: 80, type: 'Number'}, ], emptyRows: 0, headRows: 2, headRowHeight: [32, 32], defaultRowHeight: 30, headerFont: '10pt 微软雅黑', readOnly: true, font: '10pt 微软雅黑', }; const leafXmjCol = { getValue: { qty: function (data) { return ZhCalc.add(data.contract_qty, data.qc_qty); } } }; SpreadJsObj.initSpreadSettingEvents(leafXmjSpreadSetting, leafXmjCol); SpreadJsObj.initSheet(leafXmjSpread.getActiveSheet(), leafXmjSpreadSetting); // 加载清单数据 SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gclGatherData); loadLeafXmjData(0); SpreadJsObj.forbiddenSpreadContextMenu('#ledger-spread', ledgerSpread); // 调差清单工料table const materialSpread = SpreadJsObj.createNewSpread($('#material-spread')[0]); const materialSpreadSetting = { cols: [ {title: '清单调差工料|编号', colSpan: '4|1', rowSpan: '1|1', field: 'code', hAlign: 0, width: 80, formatter: '@'}, {title: '|名称', colSpan: '|1', rowSpan: '|1', field: 'name', hAlign: 0, width: 100, formatter: '@'}, {title: '|单位', colSpan: '|1', rowSpan: '|1', field: 'unit', hAlign: 1, width: 60, formatter: '@'}, {title: '|kg数量', colSpan: '1', rowSpan: '|1', field: 'num', hAlign: 2, width: 60, type: 'Number'}, ], emptyRows: 0, headRows: 2, headRowHeight: [32, 32], defaultRowHeight: 30, headerFont: '10pt 微软雅黑', readOnly: true, font: '10pt 微软雅黑', }; SpreadJsObj.initSheet(materialSpread.getActiveSheet(), materialSpreadSetting); if (!readOnly) { } else { SpreadJsObj.forbiddenSpreadContextMenu('#leaf-xmj-spread', leafXmjSpread); SpreadJsObj.forbiddenSpreadContextMenu('#material-spread', materialSpread); } // 切换清单行,读取所属项目节数据 ledgerSpread.getActiveSheet().bind(spreadNS.Events.SelectionChanged, function (e, info) { const iOldRow = info.oldSelections[0].row, iNewRow = info.newSelections[0].row; if (iNewRow !== iOldRow) { loadLeafXmjData(iNewRow); } }); $.subMenu({ menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list', toMenu: '#to-menu', toMiniMenu: '#to-mini-menu', //key: 'stage.compare.memu.1.0.0', 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(); ledgerSpread.refresh(); leafXmjSpread.refresh(); materialSpread.refresh(); } }); });