|  | @@ -0,0 +1,146 @@
 | 
	
		
			
				|  |  | +'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();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +});
 |