| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | /** * 配合比相关 * * @author CaiAoLin * @date 2017/7/10 * @version */let mixRatioSpread = null;let machineSpread = null;let isDeleting = false;$(document).ready(function() {    // 切换tab触发refresh    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {        let tagName = $(e.target).data('name');        if(tagName=='tab_gongliaoji'&&(currentTag!=undefined||currentTag!='')){            refreshSheetView();        }else if(tagName){            currentTag = $(e.target).data('name');            refreshSheetView();        }        function refreshSheetView() {            // 获取工料机当前选中的行号            let projectGLJId = 0;            if (currentTag === "mix-ratio") {                if (mixRatioSpread === null) {                    mixRatioSpread = new CompositionSpread();                    mixRatioSpread.init(currentTag);                    mixRatioSpread.initRightClick(currentTag);                    mixRatioSpread.successCallback = compositionSuccess;                }                // 筛选数据显示(显示混凝土、砂浆、配合比)                projectGLJSheet.filterData('unit_price.type', [GLJTypeConst.CONCRETE, GLJTypeConst.MORTAR, GLJTypeConst.MIX_RATIO,GLJTypeConst.MAIN_MATERIAL]);                projectGLJSheet.selectRow(projectGLJSpread.firstMixRatioRow);                projectGLJId = projectGLJSheet.getActiveDataByField('id');                // 获取数据                mixRatioSpread.getRatioData(projectGLJId);            }            if (currentTag === "machine") {                if (machineSpread === null) {                    machineSpread = new CompositionSpread();                    machineSpread.init(currentTag);                    machineSpread.initRightClick(currentTag);                    machineSpread.successCallback = compositionSuccess;                }                // 筛选数据显示(显示普通机械)                projectGLJSheet.filterData('unit_price.type', [GLJTypeConst.GENERAL_MACHINE]);                projectGLJSheet.selectRow(projectGLJSpread.firstMachineRow);                projectGLJId = projectGLJSheet.getActiveDataByField('id');                // 获取数据                machineSpread.getRatioData(projectGLJId);            }            if (currentTag === 'ration') {                projectGLJSheet.filterData('unit_price.type', []);            }        }    });});/** * 成功事件 * * @param {object} info * @return {void} */function compositionSuccess(info) {    // 成功则对相应的总消耗量进行设置    let row= projectGLJSheet.sheet.getActiveRowIndex();//取父机械或组成物的下标    let parentData = jsonData[row];    let ratioData = _.find(parentData.ratio_data,{"id":info.id});    let con_key = gljOprObj.getIndex(ratioData,gljKeyArray);    let updateNodes=[];    for(let i=0;i< jsonData.length;i++){        let tem_key = gljOprObj.getIndex(jsonData[i],gljKeyArray);        if(con_key == tem_key){            //乘以父工料机的消耗量得到该组成物总消耗量的改变量            info.change = operationWithRound(parentData.quantity,info.change,"glj.quantity","*");            projectGLJSheet.setCellByField('quantity', info.change, true,i);        }    }    //更新ratio 数据    ratioData[info.field]=info.newValue;    //更新组成物map里的数据    let p_key = gljOprObj.getIndex(parentData,gljKeyArray);    let m_list = projectObj.project.projectGLJ.datas.mixRatioMap[p_key];    let m_ratioData = _.find(m_list,{"id":info.id});    if(m_ratioData){        m_ratioData[info.field]=info.newValue;    }    // 设置父级3个价格    parentData.unit_price.market_price =  info.parentMarketPrice;    parentData.unit_price.base_price =  info.parentBasePrice;    //更新表格    projectGLJSheet.setCellByField('unit_price.market_price', info.parentMarketPrice, false);    projectGLJSheet.setCellByField('base_price', info.parentBasePrice, false);    projectGLJSheet.setCellByField('adjust_price', projectObj.project.projectGLJ.getAdjustPrice(parentData), false);    // 更新组成物缓存    projectObj.project.composition.loadData();    //选查找使用了父项目工料机的定额工料机    let ration_gljs = _.filter(projectObj.project.ration_glj.datas,{'projectGLJID':parentData.id});    let nodes = projectObj.project.mainTree.nodes;    let prefix = projectObj.project.mainTree.prefix;    for(let rg of ration_gljs){        let node = nodes[prefix+rg.rationID];        if(node){            updateNodes.push(node);        }    }    //或者是使用了父项目工料机的工料机类型的定额    let rations = _.filter(projectObj.project.Ration.datas,{'type':3,'projectGLJID':parentData.id});    for(let r of rations){        let r_node = nodes[prefix+r.ID];        if(r_node){            r_node.data.marketUnitFee=info.parentMarketPrice;            updateNodes.push(r_node);        }    }    if(updateNodes.length>0){        projectObj.project.calcProgram.calcNodesAndSave(updateNodes);    }    gljOprObj.refreshView();}
 |