/** * Created by zhang on 2019/5/15. */ let materialAdjustObj = { spread:null, priceInfoSheet:null, priceCoeSheet:null, priceInfoDatas:[], priceCoeDatas:[], priceInfoSetting:{ header: [ {headerName: "编号", headerWidth: 80, dataCode: "code", dataType: "String"}, {headerName: "材料名称", headerWidth: 160, dataCode: "name", dataType: "String",cellType:'tipsCell'}, {headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'}, {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"}, {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'}, {headerName: "风险系数%", headerWidth: 60, dataCode: "riskCoe", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "基准单价", headerWidth: 70, dataCode: "standardPrice", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "投标单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "合价", headerWidth: 90, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'}, {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"}, {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"}, {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap}, {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"} ], view:{ lockColumns: ["code","name","specs","unit","quantity","totalPrice","originPlace","vender","supply","remark"]} }, priceCoeSetting:{ header: [ {headerName: "编号", headerWidth: 80, dataCode: "code", dataType: "String"}, {headerName: "材料名称", headerWidth: 160, dataCode: "name", dataType: "String",cellType:'tipsCell'}, {headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'}, {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"}, {headerName: "变值权重B", headerWidth: 90, dataCode: "varWeight", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "基本价格指数F0", headerWidth: 70, dataCode: "FO", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "现行价格指数Ft", headerWidth: 70, dataCode: "FI", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'}, {headerName: "单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"}, {headerName: "合价", headerWidth: 90, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'}, {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"}, {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"}, {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap}, {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"} ], view:{ lockColumns: ["code","name","specs","unit","quantity","totalPrice","originPlace","vender","supply","remark"]} }, refreshSheetDatas:function () { //读项目属性的值,若没有则默认为造价信息差额调整法 let adjustType = $('#adjustType').val(); if (adjustType === 'priceInfo') { materialAdjustObj.showPriceInfoDatas(); } else { materialAdjustObj.showPriceCoeDatas(); } //let sheetIndex = $("#adjustType").val() }, initSpread:function () { if(!this.spread){ this.spread = SheetDataHelper.createNewSpread($("#material_adjust_sheet")[0],2); sheetCommonObj.spreadDefaultStyle(this.spread); } this.initPriceInfoSheet(); this.initPriceCoeSheet(); //disableRightMenu("project_glj_sheet",this.projectGljSpread,this.rightClickCallback); //打开别人分享的项目,只读 if(projectReadOnly){ disableSpread(this.spread); }else { this.initRightClick(); } }, initPriceInfoSheet:function () { this.priceInfoSheet = this.spread.getSheet(0); sheetCommonObj.initSheet(this.priceInfoSheet,this.priceInfoSetting,30); this.priceInfoSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange); this.priceInfoSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange); this.priceInfoSheet.name('priceInfoSheet'); this.priceInfoSheet.setRowHeight(0, 36, 1); }, initPriceCoeSheet:function () { this.priceCoeSheet = this.spread.getSheet(1); sheetCommonObj.initSheet(this.priceCoeSheet,this.priceCoeSetting,30); this.priceCoeSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange); this.priceCoeSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange); this.priceCoeSheet.name('priceCoeSheet'); this.priceCoeSheet.setRowHeight(0, 36, 1); }, onSheetRangeChange:function (a,args) { let me = materialAdjustObj,updateMap = {}; let projectGLJ = projectObj.project.projectGLJ; let setting = $("#adjustType").val() == "priceInfo"?me.priceInfoSetting:me.priceCoeSetting; let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas; for(let c of args.changedCells){ let dataCode = setting.header[c.col].dataCode; let value= args.sheet.getCell(c.row, c.col).text(); if (value&&!sheetCommonObj.checkData(c.col,setting,value)) { alert('输入的数据类型不对,请重新输入!'); me.refreshSheetDatas(); return ; } let recode = datas[c.row]; if(dataCode=='marketPrice'){ let editField ="market_price"; projectGLJ.updatePrice(recode,editField,value,'pg',me.refreshSheetDatas); }else { let tem = {}; if(value) value = scMathUtil.roundForObj(value,getDecimal("process")); if(value == recode[dataCode]) continue; tem[dataCode] = value; updateMap[recode.id] = tem; } } if( _.isEmpty(updateMap)) return; projectGLJ.batchUpdateGLJProperty(updateMap,function () { me.refreshSheetDatas(); }); }, onSheetValueChange:function (a,args) { let me = materialAdjustObj,row = args.row, col = args.col; let projectGLJ = projectObj.project.projectGLJ; let setting = $("#adjustType").val() == "priceInfo"?me.priceInfoSetting:me.priceCoeSetting; let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas; let dataCode = setting.header[col].dataCode; let recode = datas[row]; let value = args.newValue; if(value === undefined ){ me.refreshSheetDatas(); return; } if (value&&!projectGljObject.checkData(col,setting,value)) { alert('输入的数据类型不对,请重新输入!'); me.refreshSheetDatas(); return ; } if(recode[dataCode] == value) return; if(dataCode=='marketPrice'){//修改市场价和修改定额价时需要重新记算很多受影响的树节点,现在改成与定字额工料机那里调相同的方法。 let editField ="market_price"; projectGLJ.updatePrice(recode,editField,value,'pg',me.refreshSheetDatas); return; } if(value) value = scMathUtil.roundForObj(value,getDecimal("process")); if(value == null) value=""; let updateData = {id: recode.id, field: dataCode, value: value+""}; projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas); }, deleteAdjust:function () { let me = this,updateMap={}; let projectGLJ = projectObj.project.projectGLJ; let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas; let sels = this.spread.getActiveSheet().getSelections(); let select = sels.length > 0? sels[0]:null; if(!select) return; for(let i =0;i= 0) data.is_evaluate = glj.is_evaluate; return data; }, checkByType:function (type) { for(let d of this.datas){ d.select = 0; switch (type){ case "全选": d.select = 1; break; case "全选主材": if(d.type == 4) d.select = 1; break; case "全选设备": if(d.type == 5) d.select = 1; break; case "取消": d.select = 0; break; } } //this.refreshDatas(); }, confirmSelect:function () { let updateMap = {}; let adjustType = $("#adjustType").val() for(let d of this.datas){ if(d.select == 1){ let tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+"",is_coe_adjust:1,FI:"",FO:""};//现在改成添加的话,两个页面都添加,删除两个页面都删除 /* if(adjustType== "priceInfo"){ tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+""}; }else { tem = {is_coe_adjust:1,FI:"",FO:""}; }*/ updateMap[d.id] = tem; } } if( _.isEmpty(updateMap)) return; projectObj.project.projectGLJ.batchUpdateGLJProperty(updateMap,function () { materialAdjustObj.refreshSheetDatas(); }); } }; $(function () { $("#adjustType").change(function () { materialAdjustObj.refreshSheetDatas(); let val = $(this).val(); let mixDatas = {projectID: projectObj.project.projectInfo.ID, updateType: 'update', properties: {'property.gljAdjustType': val}, options: {}, labourCoes: {}, rations: [], bills: []}; CommonAjax.post('/pm/api/updateMixDatas', {user_id: userID, mixDataArr: mixDatas}, function (rstData) { projectObj.project.projectInfo.property.gljAdjustType = val; }); }); $('#selectFromGLJ').on('shown.bs.modal',function(e){ gljFromObj.checkType="取消"; gljFromObj.initSpread(); gljFromObj.showDatas(); }); $(".glj_sel_input").change(function () { let check = $(this).prop("checked"); if($(this).val() == 0){//勾选的是全选,其它的勾选项跟着改变 for(let a of $(".glj_sel_input")){ $(a).prop("checked",check) } }else {//勾选其它选项 let a_checked = true; for(let o of $(".glj_sel_input_other")){//如果其它的有一个不勾选,则所有项也不打勾 if($(o).prop("checked") === false){ a_checked = false; break; } } $("#glj_sel_all").prop("checked",a_checked); } gljFromObj.showDatas(); }); $("#glj_sel_btn_find").click(function () { gljFromObj.showDatas(); }); $(".glj_sel_check_btn").click(function () { gljFromObj.checkType = $(this).text(); gljFromObj.refreshDatas(); }) $("#glj_sel_confirm").click(function () { gljFromObj.confirmSelect(); }) });