| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037 | 
							- /**
 
-  * Created by zhang on 2019/9/10.
 
-  */
 
- let configMaterialObj = {
 
-     GLJIDMap:{},
 
-     relateFilterAgain:false,
 
-     configSpread:null,
 
-     relatedSpread:null,
 
-     evaluateMaterialDatas:[],
 
-     bidMaterialDatas:[],
 
-     evaluateMaterialSetting:{
 
-         header: [
 
-             {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "序号", headerWidth: 80, dataCode: "seq", dataType: "String",formatter: "@"},
 
-             {headerName: "材料号", headerWidth: 80, dataCode: "code", dataType: "String",formatter: "@"},
 
-             {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",validator:"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: "locked", hAlign: "left", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String",visible:false},
 
-             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String",visible:false},
 
-             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
 
-         ],
 
-         view:{ lockColumns: ["is_related","totalPrice","originPlace","vender","quantity"]}
 
-     },
 
-     bidMaterialSetting:{
 
-         header: [
 
-             {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "序号", headerWidth: 80, dataCode: "seq", dataType: "String",formatter: "@"},
 
-             {headerName: "材料号", headerWidth: 80, dataCode: "code", dataType: "String",formatter: "@"},
 
-             {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",validator:"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",visible:false},
 
-             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String",visible:false},
 
-             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
 
-         ],
 
-         view:{ lockColumns: ["is_related","totalPrice","originPlace","vender","quantity"]}
 
-     },
 
-     evaluateRelateSetting:{
 
-         header: [
 
-             {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String"},
 
-             {headerName: "类别", headerWidth: 45, dataCode: "short_name" ,hAlign: "center",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: 70, dataCode: "basePrice", 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: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
 
-             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
 
-             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
 
-             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
 
-         ],
 
-         view:{ lockColumns: ["code","type","name","specs","unit","quantity","marketPrice","basePrice","supply","originPlace","vender","remark"]}
 
-     },
 
-     initSpread:function(){
 
-         if(!this.configSpread){
 
-             this.configSpread = SheetDataHelper.createNewSpread($("#config_material_sheet")[0],4);
 
-             sheetCommonObj.spreadDefaultStyle(this.configSpread);
 
-             this.relatedSpread = SheetDataHelper.createNewSpread($("#related_sheet")[0],4);
 
-             sheetCommonObj.spreadDefaultStyle(this.relatedSpread);
 
-         }
 
-         this.initEvaluateMaterialSheet();
 
-         this.initbidMaterialSheet();
 
-         this.initEvaluateRelateSheet();
 
-         materialAdjustObj.initPriceInfoSheet();
 
-         materialAdjustObj.initPriceCoeSheet();
 
-         //打开别人分享的项目,只读
 
-         if(projectReadOnly){
 
-             disableSpread(this.configSpread);
 
-             disableSpread(this.relatedSpread);
 
-         }else {
 
-             this.initRightClick();
 
-         }
 
-     },
 
-     initEvaluateMaterialSheet:function(){
 
-         this.evaluateMaterialSheet = this.configSpread.getSheet(0);
 
-         sheetCommonObj.initSheet(this.evaluateMaterialSheet,this.evaluateMaterialSetting,30);
 
-         this.evaluateMaterialSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onEvaluateMaterialValueChange);
 
-         this.evaluateMaterialSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onEvaluateMaterialSelectionChange);
 
-         this.evaluateMaterialSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onEvaluateMaterialEditStarting);
 
-         this.evaluateMaterialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
 
-         this.evaluateMaterialSheet.name('evaluateMaterialSheet');
 
-         this.evaluateMaterialSheet.setRowHeight(0, 36, 1);
 
-     },
 
-     initbidMaterialSheet:function(){
 
-         this.bidMaterialSheet = this.configSpread.getSheet(1);
 
-         sheetCommonObj.initSheet(this.bidMaterialSheet,this.bidMaterialSetting,30);
 
-         this.bidMaterialSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onBidEvaluateMaterialValueChange);
 
-         this.bidMaterialSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onEvaluateMaterialSelectionChange);
 
-         this.bidMaterialSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onBitMaterialEditStarting);
 
-         this.bidMaterialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
 
-         this.bidMaterialSheet.name('bidMaterialSheet');
 
-         this.bidMaterialSheet.setRowHeight(0, 36, 1);
 
-     },
 
-     initEvaluateRelateSheet:function () {
 
-         this.evaluateRelateSheet = this.relatedSpread.getSheet(0);
 
-         sheetCommonObj.initSheet(this.evaluateRelateSheet,this.evaluateRelateSetting,30);
 
-         this.evaluateRelateSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onEvaluateRelateValueChange);
 
-         this.evaluateRelateSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onEvaluateRelateEditStarting);
 
-         //this.evaluateRelateSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
 
-         this.evaluateRelateSheet.name('evaluateRelateSheet');
 
-         this.evaluateRelateSheet.setRowHeight(0, 36, 1);
 
-     },
 
-     showEvaluateMaterialDatas:function () {
 
-         this.configSpread.setActiveSheetIndex(0);
 
-         let sel = this.evaluateMaterialSheet.getSelections()[0];
 
-         let oldData = sel.row<this.evaluateMaterialDatas.length?this.evaluateMaterialDatas[sel.row]:"";
 
-         this.evaluateMaterialDatas = this.getEvaluateMaterialDatas();
 
-         sheetCommonObj.showData(this.evaluateMaterialSheet, this.evaluateMaterialSetting,this.evaluateMaterialDatas);
 
-         this.evaluateMaterialSheet.setRowCount(this.evaluateMaterialDatas.length);
 
-         sel.row = oldData?_.findIndex(this.evaluateMaterialDatas,{'ID':oldData.ID}):'';
 
-         this.evaluateMaterialSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
 
-     },
 
-     showBidMaterialDatas:function () {
 
-         this.configSpread.setActiveSheetIndex(1);
 
-         let sel = this.bidMaterialSheet.getSelections()[0];
 
-         let oldData = sel.row<this.bidMaterialDatas.length?this.bidMaterialDatas[sel.row]:"";
 
-         this.bidMaterialDatas = this.getBidMaterialDatas();
 
-         sheetCommonObj.showData(this.bidMaterialSheet, this.bidMaterialSetting,this.bidMaterialDatas);
 
-         this.bidMaterialSheet.setRowCount(this.bidMaterialDatas.length);
 
-         sel.row = oldData?_.findIndex(this.bidMaterialDatas,{'ID':oldData.ID}):'';
 
-         this.bidMaterialSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
 
-     },
 
-     showEvaluateRelateDatas:function () {
 
-         this.relatedSpread.setActiveSheetIndex(0);
 
-         this.evaluateRelateDatas = this.getEvaluateRelateDatas();
 
-         sheetCommonObj.showData(this.evaluateRelateSheet, this.evaluateRelateSetting,this.evaluateRelateDatas);
 
-         this.evaluateRelateSheet.setRowCount(this.evaluateRelateDatas.length);
 
-     },
 
-     refreshSheetDatas:function () {
 
-         if(projectGljObject.displayType == filterType.ZGCL){
 
-             this.showEvaluateMaterialDatas();
 
-         }else if(projectGljObject.displayType == filterType.PBCL){
 
-             this.showBidMaterialDatas();
 
-         }
 
-         this.showEvaluateRelateDatas();
 
-     },
 
-     setNavLinkText:function (type) {
 
-         let text = "关联暂估材料";
 
-         switch (type){
 
-             case filterType.ZGCL:
 
-                 text = "关联暂估材料";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 text = "关联评标材料";
 
-                 break;
 
-             case filterType.AMAE:
 
-                 text = "关联材料";
 
-                 break;
 
-         }
 
-         $("#related_link").text(text);
 
-     },
 
-     getEvaluateRelateDatas:function () {
 
-         //$('filterGljName')
 
-         let name = '',datas = [],sheet=null,field='',rdata=[];
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 sheet = this.evaluateMaterialSheet;
 
-                 datas = this.evaluateMaterialDatas;
 
-                 field = "is_evaluate";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 sheet = this.bidMaterialSheet;
 
-                 datas = this.bidMaterialDatas;
 
-                 field = "is_eval_material";
 
-                 break;
 
-             case filterType.AMAE:
 
-                 sheet = materialAdjustObj.getSheet();
 
-                 datas = materialAdjustObj.getSheetDatas();
 
-                 field = "is_contractor_material";
 
-         }
 
-         let sel = sheet.getSelections()[0];
 
-         let srow = sel.row == -1||sel.row == ""?0:sel.row;
 
-         if(gljUtil.isDef(srow) && datas.length>srow){
 
-              name = this.relateFilterAgain== true? $('#filterGljName').val(): datas[srow].name;
 
-              rdata = this.filterEvaluateRelate(name,datas[srow].projectGLJID,field);
 
-         }
 
-         if(this.relateFilterAgain== false) $('#filterGljName').val(name);
 
-         return rdata;
 
-     },
 
-     filterEvaluateRelate:function (name,projectGLJID,relateField) {
 
-         let datas = [];
 
-         let projectGLJ =  projectObj.project.projectGLJ;
 
-         let materialIdList = projectGLJ.datas.constData.materialIdList;
 
-         for(let d of projectGLJ.datas.gljList){
 
-             if (parseFloat(d.quantity) > 0 ){//材料类型//materialIdList.indexOf(d.type) >= 0 &&
 
-                 if(projectGljObject.displayType != filterType.AMAE){
 
-                     if(materialIdList.indexOf(d.type) ==-1) continue;
 
-                 }
 
-                 if(d[relateField] == 1 && d.id != projectGLJID) continue;//排除其它已被关联的工料机
 
-                 if(name != ''){//name为''时不做过滤
 
-                     if(d.name.indexOf(name)==-1){
 
-                         if(!(d[relateField] == 1 && d.id == projectGLJID)) continue;//虽然不匹配,但是是关联的暂估材料,这时应该显示
 
-                     }
 
-                 }
 
-                 let t = {
 
-                     id:d.id,
 
-                     code : d.code,
 
-                     type : d.type,
 
-                     short_name :projectGLJ.getShortNameByID(d.type),
 
-                     name : d.name,
 
-                     specs : d.specs,
 
-                     unit : d.unit,
 
-                     quantity : d.quantity,
 
-                     supply:d.supply,
 
-                     originPlace:d.originPlace,
 
-                     vender:d.vender,
 
-                     remark:d.remark,
 
-                     from:d
 
-                 };
 
-                 t.is_related = d[relateField]?1:0;
 
-                 gljOprObj.setGLJPrice(t,d);
 
-                 t.totalPrice = scMathUtil.roundForObj(t.quantity * t.marketPrice,getDecimal('bills.totalPrice'));
 
-                 datas.push(t);
 
-             }
 
-         }
 
-         return _.sortByAll(datas,'code');
 
-     },
 
-     getEvaluateMaterialDatas:function (projectGLJList, evaluateList, decimalObj) {
 
-         projectGLJList = projectGLJList ? projectGLJList : projectObj.project.projectGLJ.datas.gljList;
 
-         evaluateList = evaluateList ? evaluateList : projectObj.project.evaluate_list.datas;
 
-         const billsDecimal = decimalObj ? decimalObj.bills.totalPrice : getDecimal('bills.totalPrice');
 
-         let datas = [];
 
-         let gljMap = _.indexBy(projectGLJList,'id');
 
-         for(let e of evaluateList){
 
-             let t = {
 
-                 ID:e.ID,
 
-                 projectID: e.projectID,
 
-                 is_related:e.is_related,//关联,1关,0不关
 
-                 projectGLJID:e.projectGLJID,//关联工料机ID
 
-                 seq:e.seq,//序号
 
-                 code:e.code,
 
-                 name:e.name,
 
-                 specs:e.specs,
 
-                 unit:e.unit,
 
-                 type:e.type,
 
-                 marketPrice:e.market_price,
 
-                 quantity:e.quantity,
 
-                 locked:e.locked,//锁定,1锁,0不锁
 
-                 remark:e.remark,
 
-                 originPlace:e.originPlace,//产地
 
-                 vender:e.vender //厂家
 
-             };
 
-             let pglj = gljMap[e.projectGLJID];
 
-             if(e.is_related && pglj){
 
-                 gljOprObj.setGLJPrice(t,pglj);
 
-                 t.originPlace = pglj.originPlace;
 
-                 t.vender = pglj.vender;
 
-                 t.brand = pglj.brand;
 
-                 t.qualityGrace = pglj.qualityGrace;
 
-                 t.remark = pglj.remark;
 
-                 t.quantity = pglj.quantity;
 
-             }
 
-             t.totalPrice = scMathUtil.roundForObj(parseFloat(t.quantity) * parseFloat(t.marketPrice) ,billsDecimal);
 
-             datas.push(t);
 
-         }
 
-         return _.sortByAll(datas,'code');
 
-     },
 
-     getBidMaterialDatas:function (projectGLJList, bidEvaluationList, decimalObj) {
 
-         projectGLJList = projectGLJList ? projectGLJList : projectObj.project.projectGLJ.datas.gljList;
 
-         bidEvaluationList = bidEvaluationList ? bidEvaluationList : projectObj.project.bid_evaluation_list.datas;
 
-         const billsDecimal = decimalObj ? decimalObj.bills.totalPrice : getDecimal('bills.totalPrice');
 
-         let datas = [];
 
-         let gljMap = _.indexBy(projectGLJList,'id');
 
-         for(let e of bidEvaluationList){
 
-             let t = {
 
-                 ID:e.ID,
 
-                 projectID: e.projectID,
 
-                 is_related:e.is_related,//关联,1关,0不关
 
-                 projectGLJID:e.projectGLJID,//关联工料机ID
 
-                 seq:e.seq,//序号
 
-                 code:e.code,
 
-                 name:e.name,
 
-                 specs:e.specs,
 
-                 unit:e.unit,
 
-                 type:e.type,
 
-                 marketPrice:e.market_price,
 
-                 quantity:e.quantity,
 
-                 remark:e.remark,
 
-                 originPlace:e.originPlace,//产地
 
-                 is_evaluate:0,
 
-                 vender:e.vender //厂家
 
-             };
 
-             let pglj = gljMap[e.projectGLJID];
 
-             if(e.is_related && pglj){
 
-                 gljOprObj.setGLJPrice(t,pglj);
 
-                 t.originPlace = pglj.originPlace;
 
-                 t.vender = pglj.vender;
 
-                 t.brand = pglj.brand;
 
-                 t.qualityGrace = pglj.qualityGrace;
 
-                 t.quantity = pglj.quantity;
 
-                 t.is_evaluate = pglj.is_evaluate;
 
-             }
 
-             t.totalPrice = scMathUtil.roundForObj(parseFloat(t.quantity) * parseFloat(t.marketPrice) ,billsDecimal);
 
-             datas.push(t);
 
-         }
 
-         return _.sortByAll(datas,'code');
 
-     },
 
-     updateConfigMaterial:function (dataCode,value,recode) {
 
-         let task = [];
 
-         for(let t of projectObj.project.projectGLJ.datas.gljList){
 
-             this.GLJIDMap[t.id] = t;
 
-         }
 
-         let glj = this.GLJIDMap[recode.id];
 
-         if(!glj) return;
 
-         let pdata = {doc:{},action:'update'};
 
-         pdata['type'] = 'glj_list';
 
-         pdata.doc[dataCode] = value;
 
-         pdata['id'] = glj.id;
 
-         task.push(pdata);
 
-         this.getEvaluateUpdateTasks(value,glj,dataCode,task);
 
-         this.updateEvaluateMaterial(task,dataCode == "is_evaluate");
 
-     },
 
-     updateEvaluateMaterial :async function(data,refreshEvaluate=true){
 
-         try {
 
-             $.bootstrapLoading.start();
 
-             let result =  await ajaxPost('/glj/updateEvaluateMaterial',{tasks:data});
 
-             //先刷新缓存
 
-             let [gljs,sendPriceChange] = this.refreshCache(data);
 
-             if(refreshEvaluate == true){
 
-                 let [rationNodes,impactGLJs] =  projectObj.project.projectGLJ.batchChangeIsEvaluate(gljs);
 
-                 projectObj.project.calcProgram.calcNodesAndSave(rationNodes, function () {
 
-                     projectObj.mainController.refreshTreeNode(projectObj.project.mainTree.roots);
 
-                 });
 
-             }
 
-             projectGljObject.refreshViewsData();
 
-             gljOprObj.refreshView();
 
-             if(sendPriceChange == true) projectGljObject.onUnitFileChange();
 
-         }catch (e){
 
-             console.log(e)
 
-         }finally {
 
-             $.bootstrapLoading.end();
 
-         }
 
-     },
 
-     refreshCache:function (tasks) {
 
-         let gljs = [];
 
-         let sendPriceChange = false;
 
-         for(let t of tasks){
 
-             if(t.type == "evaluate_list"){
 
-                 refreshDatas(projectObj.project.evaluate_list.datas,t);
 
-             }else if(t.type == "bid_evaluation_list"){
 
-                 refreshDatas(projectObj.project.bid_evaluation_list.datas,t);
 
-             }else if(t.type == "contractor_list"){
 
-                 refreshDatas(projectObj.project.contractor_list.datas,t);
 
-             } else {
 
-                 if(_.isEmpty(this.GLJIDMap)) this.GLJIDMap = _.indexBy(projectObj.project.projectGLJ.datas.gljList,'id');
 
-                 //剩下两个类型只有更新操作
 
-                 if(t.type == "unit_price"){
 
-                     let g = this.GLJIDMap[t.projectGLJID];
 
-                     if(g) {
 
-                         let f = updateProperty(g.unit_price,t.doc);
 
-                         if(f == true) sendPriceChange = true;
 
-                         gljs.push(g);
 
-                     }
 
-                 }
 
-                 if(t.type == "glj_list"){
 
-                     let g = this.GLJIDMap[t.id];
 
-                     if(g){
 
-                         let f = updateProperty(g,t.doc);
 
-                         if(f == true) sendPriceChange = true;
 
-                         gljs.push(g);
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         this.GLJIDMap = {};
 
-         return [gljs,sendPriceChange];
 
-         function refreshDatas(datas,t_t) {
 
-             if(t_t.action == "update"){
 
-                 let e = _.find(datas,{'ID':t_t.ID});
 
-                 if(e) updateProperty(e,t_t.doc);
 
-             }
 
-             if(t_t.action == "add") datas.push(t_t.doc);
 
-             if(t_t.action == "delete") _.remove(datas,{'ID':t_t.ID});
 
-         }
 
-         function updateProperty(obj,doc) {
 
-             let updatePrice = false;
 
-             for(let k in doc){
 
-                 obj[k] = doc[k];
 
-                 if(k == 'base_price' || k == 'market_price') updatePrice = true;
 
-             }
 
-             return updatePrice;
 
-         }
 
-     },
 
-     getEvaluateUpdateTasks:function (value,glj,dataCode,task) {
 
-         let dataList = [],modelType='evaluate_list';
 
-         if(dataCode == 'is_evaluate'){
 
-             dataList = projectObj.project.evaluate_list.datas;
 
-             modelType = 'evaluate_list';
 
-         }else if(dataCode == 'is_eval_material'){
 
-             dataList = projectObj.project.bid_evaluation_list.datas;
 
-             modelType = 'bid_evaluation_list';
 
-         }
 
-         if(value == 1){ //勾选暂估选项,查看已有的暂估材料列表中是否有名称,编号等完全相同的记录,有则直接关联,无则添加
 
-             let evaluate = null;
 
-             let pindex = gljUtil.getIndex(glj,gljUtil.materialKeyArray);
 
-             for(let e of dataList){
 
-                 let eIndex = gljUtil.getIndex(e,gljUtil.materialKeyArray);
 
-                 if(pindex == eIndex){
 
-                     evaluate = e;
 
-                     break;
 
-                 }
 
-             }
 
-             if(evaluate){//有找到则更新,没有则添加
 
-                 let edata = {type:modelType,doc:{},action:"update",ID:evaluate.ID};
 
-                 edata.doc = {projectGLJID:glj.id,is_related:1};
 
-                 task.push(edata);
 
-                 if(dataCode == 'is_evaluate'){
 
-                     let udata = {type:'unit_price',doc:{},action:"update",projectGLJID:glj.id,id : glj.unit_price.id};
 
-                     //if(evaluate.base_price != glj.unit_price.base_price) udata.doc['base_price'] = evaluate.base_price;
 
-                     if(evaluate.market_price != glj.unit_price.market_price) udata.doc['market_price'] = evaluate.market_price;
 
-                     if(!_.isEmpty(udata.doc)) task.push(udata);
 
-                 }
 
-             }else {
 
-                 let ndata = {type:modelType,doc:{},action:"add"};
 
-                 ndata.doc['ID'] = uuid.v1();
 
-                 ndata.doc['projectGLJID'] = glj.id;
 
-                 ndata.doc['is_related'] = 1;
 
-                 if(dataCode == 'is_evaluate') ndata.doc['locked'] = 0;
 
-                 ndata.doc['seq'] = glj.code;
 
-                 ndata.doc['projectID'] = glj.project_id;
 
-                 ndata.doc['code'] = glj.code;
 
-                 ndata.doc['name'] = glj.name;
 
-                 ndata.doc['specs'] = glj.specs;
 
-                 ndata.doc['unit'] = glj.unit;
 
-                 ndata.doc['quantity'] = glj.quantity;
 
-                 ndata.doc['type'] = glj.type;
 
-                 ndata.doc['market_price'] = glj.unit_price.market_price;
 
-                 ndata.doc['originPlace'] = glj.originPlace;
 
-                 ndata.doc['vender'] = glj.vender;
 
-                 ndata.doc['remark'] = glj.remark;
 
-                 task.push(ndata);
 
-             }
 
-         }else if(value == 0){
 
-             let t_evaluate = null;
 
-             for(let e of dataList){
 
-                 if(e.projectGLJID == glj.id && e.is_related == 1){
 
-                     t_evaluate = e;
 
-                     break;
 
-                 }
 
-             }
 
-             if(t_evaluate){
 
-                 let tdata = {type:modelType,doc:{is_related:0,quantity:'0'},action:"update",ID:t_evaluate.ID};
 
-                 task.push(tdata);
 
-             }
 
-         }
 
-     },
 
-     onEvaluateMaterialSelectionChange:function (sender, args) {
 
-         let me = configMaterialObj;
 
-         let newSel = args.newSelections[0];
 
-         let oldSel = args.oldSelections?args.oldSelections[0]:{};
 
-         if(newSel.row != oldSel.row){
 
-             me.showEvaluateRelateDatas();
 
-             me.relateFilterAgain = false;
 
-         }
 
-     },
 
-     onBidEvaluateMaterialValueChange:function (e,info) {
 
-         let me = configMaterialObj,row = info.row, col = info.col;
 
-         let dataCode = me.bidMaterialSetting.header[col].dataCode;
 
-         let value = info.newValue;
 
-         let bid = me.bidMaterialDatas[row];
 
-         if (value&&! sheetCommonObj.checkData(col,me.bidMaterialSetting,value)) {
 
-             alert('输入的数据类型不对,请重新输入!');
 
-             return me.showBidMaterialDatas();
 
-         }
 
-         if(dataCode == 'marketPrice'){
 
-             dataCode = 'market_price';
 
-             if(bid.is_related){//关联的情况下,直接修改工料机价格
 
-                 if(bid.is_evaluate == 1){
 
-                     alert("当前材料市场价已被锁定,修改请先返回人材机汇总界面解除锁定。");
 
-                     return me.showBidMaterialDatas();
 
-                 }
 
-                 return projectObj.project.projectGLJ.updatePrice(bid,dataCode,value,'rg', null,projectGljObject.refreshViewsData);
 
-             }
 
-             value =  scMathUtil.roundToString(value,getDecimal('glj.unitPrice'));
 
-         }
 
-         if(value&& dataCode === 'quantity'){//修改数量需做4舍5入
 
-             value =  scMathUtil.roundToString(value,getDecimal('glj.quantity'));
 
-         }
 
-         let edata = {type:'bid_evaluation_list',doc:{},action:"update",ID:bid.ID};
 
-         if(bid[dataCode] == value) return me.showBidMaterialDatas();
 
-         edata.doc[dataCode] = value;
 
-         me.updateEvaluateMaterial([edata],false);
 
-     },
 
-     onSheetRangeChange:function (e,args) {
 
-         let me = configMaterialObj,updateMap = {},modelType='',setting={},datas = [],tasks = [];
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 modelType="evaluate_list";
 
-                 setting = me.evaluateMaterialSetting;
 
-                 datas = me.evaluateMaterialDatas;
 
-                 break;
 
-             case filterType.PBCL:
 
-                 modelType="bid_evaluation_list";
 
-                 setting = me.bidMaterialSetting;
 
-                 datas = me.bidMaterialDatas;
 
-                 break;
 
-         }
 
-         for(let c of args.changedCells){
 
-             let dataCode = setting.header[c.col].dataCode;
 
-             let value= args.sheet.getCell(c.row, c.col).text();
 
-             let recode = datas[c.row];
 
-             if(me.editChecking(recode,dataCode,modelType == "evaluate_list")==false){
 
-                 me.refreshSheetDatas();
 
-                 return ;
 
-             }
 
-             if (value&&!sheetCommonObj.checkData(c.col,setting,value)) {
 
-                 alert('输入的数据类型不对,请重新输入!');
 
-                 me.refreshSheetDatas();
 
-                 return ;
 
-             }
 
-             if(dataCode=='marketPrice'){
 
-                 dataCode = 'market_price';
 
-                 if(recode.is_related){//关联的情况下,直接修改工料机价格 暂时不支持批量修改
 
-                     return projectObj.project.projectGLJ.updatePrice(recode,dataCode,value,'rg',null,projectGljObject.refreshViewsData);
 
-                 }
 
-             }else {
 
-                 let tem = updateMap[recode.ID]?updateMap[recode.ID]:{};
 
-                 if(value&&dataCode === 'quantity')  value =  scMathUtil.roundToString(value,getDecimal('glj.quantity'));//修改数量需做4舍5入
 
-                 if(value == recode[dataCode]) continue;
 
-                 tem[dataCode] = value;
 
-                 updateMap[recode.ID] = tem;
 
-             }
 
-         }
 
-         for(let ID in updateMap){
 
-             let edata = {type:modelType,doc:updateMap[ID],action:"update",ID:ID};
 
-             tasks.push(edata);
 
-         }
 
-         if(tasks.length > 0)  me.updateEvaluateMaterial(tasks,false);
 
-     },
 
-     onEvaluateMaterialValueChange:function (e,info) {
 
-         let me = configMaterialObj,row = info.row, col = info.col;
 
-         let dataCode = me.evaluateMaterialSetting.header[col].dataCode;
 
-         let value = info.newValue;
 
-         let evaluate = me.evaluateMaterialDatas[row];
 
-         if (value&&! sheetCommonObj.checkData(col,me.evaluateMaterialSetting,value)) {
 
-             alert('输入的数据类型不对,请重新输入!');
 
-             return me.showEvaluateMaterialDatas();
 
-         }
 
-         if(dataCode == 'locked')  value = value == true?1:0;
 
-         if(dataCode == 'marketPrice'){
 
-             dataCode = 'market_price';
 
-             if(evaluate.is_related){//关联的情况下,直接修改工料机价格
 
-                 return projectObj.project.projectGLJ.updatePrice(evaluate,dataCode,value,'rg',null,projectGljObject.refreshViewsData);
 
-             }
 
-         }
 
-         if(value && dataCode === 'quantity'){//修改数量需做4舍5入
 
-             value=  scMathUtil.roundToString(value,getDecimal('glj.quantity'));
 
-         }
 
-         let edata = {type:'evaluate_list',doc:{},action:"update",ID:evaluate.ID};
 
-         if(evaluate[dataCode] == value) return me.showEvaluateMaterialDatas();
 
-         edata.doc[dataCode] = value;
 
-         me.updateEvaluateMaterial([edata],false);
 
-     },
 
-     onEvaluateRelateValueChange:function (e,info){
 
-         let me = configMaterialObj,row = info.row, col = info.col;
 
-         let value = info.newValue;
 
-         let sheet = null,datas = [],field = "",type="";
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 sheet = me.evaluateMaterialSheet;
 
-                 datas = me.evaluateMaterialDatas;
 
-                 field = "is_evaluate";
 
-                 type="evaluate_list";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 sheet = me.bidMaterialSheet;
 
-                 datas = me.bidMaterialDatas;
 
-                 field = "is_eval_material";
 
-                 type="bid_evaluation_list";
 
-                 break;
 
-             case filterType.AMAE:
 
-                 sheet = materialAdjustObj.getSheet();
 
-                 datas = materialAdjustObj.getSheetDatas();
 
-                 field = "is_contractor_material";
 
-                 type = "contractor_list";
 
-         }
 
-         let sel = sheet.getSelections()[0];
 
-         let srow = sel.row == -1||sel.row == ""?0:sel.row;
 
-         let task = [];
 
-         value = value == true?1:0;
 
-         if(datas.length>srow){
 
-             let evaluate = datas[srow];
 
-             let relate = me.evaluateRelateDatas[row];
 
-             let pdata = {id:relate.id,doc:{},action:'update',type:"glj_list"};
 
-             pdata.doc[field] = value;
 
-             task.push(pdata);
 
-             let tdata = {type:type,doc:{},action:"update",ID:evaluate.ID};
 
-             if(value == 0){//如果是0的话
 
-                 tdata.doc = {is_related:0,quantity:'0'};
 
-             }else {
 
-                 if(relate.unit != evaluate.unit){//检查单位是否相同,如果不同不能关联
 
-                     alert("单位不一致,不允许关联!");
 
-                     return me.showEvaluateRelateDatas();
 
-                 }
 
-                 //如果已经关联了其它项目工料机,要把那个项目工料机的是否暂估标记为否
 
-                 if(evaluate.is_related == 1){
 
-                     let tdoc = {};
 
-                     tdoc[field] = 0;
 
-                     task.push({id:evaluate.projectGLJID,doc:tdoc,action:'update',type:"glj_list"});
 
-                 }
 
-                 //更新暂估材料的工料机ID,和关联标记
 
-                 tdata.doc = {projectGLJID:relate.id,is_related:1};
 
-                 if(projectGljObject.displayType == filterType.ZGCL){
 
-                     //更新新关联工料机的市场价格
 
-                     let udata = {type:'unit_price',doc:{},action:"update",projectGLJID:relate.from.id,id : relate.from.unit_price.id};
 
-                     //if(evaluate.base_price != relate.from.unit_price.base_price) udata.doc['base_price'] = evaluate.base_price;
 
-                     if(evaluate.marketPrice != relate.from.unit_price.market_price) udata.doc['market_price'] = evaluate.marketPrice;
 
-                     if(!_.isEmpty(udata.doc)) task.push(udata);
 
-                 }
 
-             }
 
-             task.push(tdata);
 
-             me.updateEvaluateMaterial(task);
 
-         }
 
-     },
 
-     deleteMaterial:function (row) {
 
-         let me = configMaterialObj;
 
-         let evaluate = {},task=[],type='',field='';
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 evaluate = me.evaluateMaterialDatas[row];
 
-                 field = "is_evaluate";
 
-                 type="evaluate_list";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 evaluate = me.bidMaterialDatas[row];
 
-                 field = "is_eval_material";
 
-                 type="bid_evaluation_list";
 
-                 break;
 
-             case  filterType.AMAE:
 
-                 let t_datas = materialAdjustObj.getSheetDatas();
 
-                 evaluate = t_datas[row];
 
-                 field = "is_contractor_material";
 
-                 type="contractor_list";
 
-         }
 
-         if(evaluate){
 
-             task.push({type:type,action:"delete",ID:evaluate.ID});
 
-             if(evaluate.is_related == 1){//如果关联了工料机,则要把工料机标记为不是暂估
 
-                 let tdoc = {};
 
-                 tdoc[field] = 0;
 
-                 task.push({id:evaluate.projectGLJID,doc:tdoc,action:'update',type:"glj_list"})
 
-             }
 
-             me.updateEvaluateMaterial(task);
 
-         }
 
-     },
 
-     onEvaluateMaterialEditStarting:function (sender, args) {
 
-         let me = configMaterialObj;
 
-         let row = args.row,col = args.col;
 
-         let evaluate = me.evaluateMaterialDatas[row];
 
-         let dataCode = me.evaluateMaterialSetting.header[col].dataCode;
 
-         if(me.editChecking(evaluate,dataCode,true)==false) args.cancel = true;
 
-     },
 
-     editChecking:function (record,dataCode,checkLock = false) {//return false 为不能编辑
 
-         if(checkLock && record.locked) return false;
 
-         if((dataCode == 'quantity'||dataCode == 'unit') && record.is_related) return false;//在关联的情况下,数量和单位不可编辑
 
-         return true;
 
-     },
 
-     onBitMaterialEditStarting:function (sender, args) {
 
-         let me = configMaterialObj;
 
-         let row = args.row,col = args.col;
 
-         let bid = me.bidMaterialDatas[row];
 
-         let dataCode = me.bidMaterialSetting.header[col].dataCode;
 
-         if(me.editChecking(bid,dataCode)==false) args.cancel = true;
 
-     },
 
-     onEvaluateRelateEditStarting:function (sender, args) {
 
-         let me = configMaterialObj;
 
-         let row = args.row,col = args.col;
 
-         args.cancel = true;
 
-     },
 
-     insertEmptyRow:function () {
 
-         let m_t = "";
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 m_t="evaluate_list";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 m_t="bid_evaluation_list";
 
-                 break;
 
-         }
 
-         let ndata = {type:m_t,doc:{},action:"add"};
 
-         ndata.doc['ID'] = uuid.v1();
 
-         ndata.doc['is_related'] = 0;
 
-         if(m_t == "evaluate_list")ndata.doc['locked'] = 0;
 
-         ndata.doc['seq'] = "";
 
-         ndata.doc['projectID'] = projectObj.project.ID();
 
-         ndata.doc['code'] = "";
 
-         ndata.doc['name'] = "";
 
-         ndata.doc['unit'] = "";
 
-         ndata.doc['originPlace'] = "";
 
-         ndata.doc['vender'] = "";
 
-         ndata.doc['remark'] = "";
 
-         configMaterialObj.updateEvaluateMaterial([ndata],false);
 
-     },
 
-     initRightClick : function() {
 
-         let me = this;
 
-         $.contextMenu({
 
-             selector: '#config_material_sheet',
 
-             build: function ($trigger, e) {
 
-                 me.rightClickTarget = SheetDataHelper.safeRightClickSelection($trigger, e, me.configSpread);
 
-                 return me.rightClickTarget.hitTestType === GC.Spread.Sheets.SheetArea.viewport ||
 
-                     me.rightClickTarget.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
 
-             },
 
-             items: {
 
-                 "addFromGLJ":{
 
-                     name: '从人材机汇总中选择',
 
-                     icon: 'fa-sign-in',
 
-                     disabled: function () {
 
-                         return false;
 
-                     },
 
-                     callback: function (key, opt) {
 
-                         if(projectGljObject.displayType == filterType.AMAE){
 
-                             materialAdjustObj.checkedDefualtOption("glj_sel_input");
 
-                             $("#selectFromGLJ").modal('show');
 
-                         }else {
 
-                             materialAdjustObj.checkedDefualtOption("pglj_sel_input");
 
-                             $("#selectPGLJ").modal('show');
 
-                         }
 
-                     }
 
-                 },
 
-                 "insertRow":{
 
-                     name: '插入',
 
-                     icon: 'fa-sign-in',
 
-                     disabled: function () {
 
-                         return false;
 
-                     },
 
-                     callback: function (key, opt) {
 
-                         if(projectGljObject.displayType == filterType.AMAE){
 
-                             materialAdjustObj.insertEmptyRow();
 
-                         }else {
 
-                             configMaterialObj.insertEmptyRow();
 
-                         }
 
-                     }
 
-                 },
 
-                 "deleteAdjust": {
 
-                     name: "删除",
 
-                     icon: 'fa-trash-o',
 
-                     disabled: function () {
 
-                         return me.rightClickTarget.row === undefined;
 
-                     },
 
-                     callback: function (key, opt) {
 
-                         let row = me.rightClickTarget.row;
 
-                         me.deleteMaterial(row);
 
-                     }
 
-                 }
 
-             }
 
-         });
 
-     }
 
- };
 
- let pgljSelObj={
 
-     spread:null,
 
-     sheet:null,
 
-     datas:[],
 
-     setting:{
 
-         header: [
 
-             {headerName: "选择", headerWidth: 45, dataCode: "select", hAlign: "center", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String"},
 
-             {headerName: "类型", headerWidth: 30, dataCode: "short_name", hAlign: "center", dataType: "String"},
 
-             {headerName: "名称", headerWidth: 160, dataCode: "name", dataType: "String",cellType:'tipsCell'},
 
-             {headerName: "规格型号", headerWidth: 100, 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: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
 
-             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
 
-             {headerName: "暂估", headerWidth: 45, dataCode: "is_evaluate", hAlign: "center", dataType: "String",cellType:'checkBox'},
 
-             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
 
-             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
 
-             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
 
-         ],
 
-         view: {
 
-             lockColumns: ["is_evaluate"]
 
-         }
 
-     },
 
-     checkType:"取消",//记住点击过的按钮的text
 
-     initSpread:function () {
 
-         if(!this.spread){
 
-             this.spread = SheetDataHelper.createNewSpread($("#pglj_from_sheet")[0]);
 
-             sheetCommonObj.spreadDefaultStyle(this.spread);
 
-         }else {
 
-             this.spread.refresh();
 
-         }
 
-         this.sheet = this.spread.getSheet(0);
 
-         sheetCommonObj.initSheet(this.sheet,this.setting);
 
-         this.sheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onEditStarting);
 
-         this.sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, this.onClipboardPasting);
 
-         this.sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onValueChanged);
 
-         this.sheet.setRowHeight(0, 36, 1);
 
-         disableRightMenu("pglj_from_sheet",this.spread);
 
-     },
 
-     onEditStarting:function (e,args) {
 
-         args.cancel = true;
 
-     },
 
-     onClipboardPasting:function (e,args) {
 
-         args.cancel = true;
 
-     },
 
-     onValueChanged:function (e,args) {
 
-         let me = pgljSelObj;
 
-         let value = args.newValue;
 
-         value = value == true?1:0;
 
-         me.datas[args.row].select = value;
 
-     },
 
-     showDatas:function () {
 
-         this.datas = [];
 
-         let gljList = projectObj.project.projectGLJ.datas.gljList;
 
-         gljList = this.filterGLJ(gljList);
 
-         gljList = sortProjectGLJ(gljList);
 
-         for(let glj of gljList){
 
-             this.datas.push(this.getSheetDatas(glj));
 
-         }
 
-         this.refreshDatas();
 
-     },
 
-     filterGLJ:function (gljList) {
 
-         let typeMap = {};
 
-         for(let ch of $(".pglj_sel_input:checked")){
 
-             typeMap[$(ch).val()] = true;
 
-         }
 
-         let inputV = $("#pglj_sel_input").val();
 
-         return _.filter(gljList,function (item) {
 
-             if(item.quantity === 0 || item.quantity === '0') return false;
 
-             let firstS = (item.type+"").substring(0,1);
 
-             if(!typeMap[firstS]) return false;
 
-             if(inputV!=""){//输入的关键字过滤
 
-                 if(item.code.indexOf(inputV)==-1 && item.name.indexOf(inputV)==-1) return false
 
-             }
 
-             return true;
 
-         });
 
-     },
 
-     refreshDatas:function () {
 
-         this.checkByType(this.checkType);
 
-         sheetCommonObj.showData(this.sheet, this.setting,this.datas);
 
-         this.sheet.setRowCount(this.datas.length);
 
-     },
 
-     getSheetDatas(glj){
 
-         let projectGLJ = projectObj.project.projectGLJ;
 
-         let materialIdList = projectGLJ.datas.constData.materialIdList;
 
-         let data = materialAdjustObj.getCommonObject(glj);
 
-         data.select = projectGljObject.displayType == filterType.ZGCL?glj.is_evaluate:glj.is_eval_material;
 
-         data.from = glj;
 
-         data.short_name = projectGLJ.getShortNameByID(glj.type);
 
-         // 只有材料才显示是否暂估
 
-        // if (materialIdList.indexOf(glj.type) >= 0) data.is_evaluate = glj.is_evaluate;
 
-         data.is_eval_material = glj.is_eval_material;
 
-         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 = projectGljObject.displayType == filterType.ZGCL?d.is_evaluate:d.is_eval_material;
 
-                     break;
 
-             }
 
-         }
 
-         //this.refreshDatas();
 
-     },
 
-     confirmSelect:function () {
 
-         let tasks = [];
 
-         let datas = [],modelType= '',field= '';
 
-         switch (projectGljObject.displayType){
 
-             case filterType.ZGCL:
 
-                 datas = projectObj.project.evaluate_list.datas;
 
-                 field = "is_evaluate";
 
-                 modelType="evaluate_list";
 
-                 break;
 
-             case filterType.PBCL:
 
-                 datas =projectObj.project.bid_evaluation_list.datas;
 
-                 field = "is_eval_material";
 
-                 modelType="bid_evaluation_list";
 
-                 break;
 
-         }
 
-         let evaluateMap = _.indexBy(datas,"projectGLJID");
 
-         let evaluateKeyMap = {};//关键字映射表
 
-         for(let e of datas){
 
-             let eIndex = gljUtil.getIndex(e,gljUtil.materialKeyArray);
 
-             evaluateKeyMap[eIndex] = e;
 
-         }
 
-         for(let d of this.datas){
 
-             if(d.select == 1){//如果是选中状态
 
-                 if(d[field] == 1) {//如果已经标记为暂估或评标材料,查看是否已经存在关联的材料
 
-                     let evl = evaluateMap[d.id];
 
-                     if(evl){
 
-                         //这里应该是错误检查的保证,按正常是不应该出现这种情况的
 
-                         if(evl.is_related !=1) tasks.push({type:modelType,doc:{projectGLJID:d.id,is_related:1},action:"update",ID:evl.ID});
 
-                     }else {
 
-                         tasks.push(getNewEval(d,modelType))
 
-                     }
 
-                 }else {//如果不是暂估,要改成暂估
 
-                     let pdata = {id:d.id,doc:{},action:'update',type:"glj_list"};
 
-                     pdata.doc[field] = 1;
 
-                     tasks.push(pdata);
 
-                     let evaluate = evaluateKeyMap[gljUtil.getIndex(d,gljUtil.materialKeyArray)];
 
-                     if(evaluate) {//如果已经存在5个关键字相同的暂估材料,则自动关联起来
 
-                         let edata = {type:modelType,doc:{projectGLJID:d.id,is_related:1},action:"update",ID:evaluate.ID};
 
-                         tasks.push(edata);
 
-                         if(modelType == 'evaluate_list'){
 
-                             let udata = {type:'unit_price',doc:{},action:"update",projectGLJID:d.id,id : d.from.unit_price.id};
 
-                             if(evaluate.market_price != d.from.unit_price.market_price) udata.doc['market_price'] = evaluate.market_price;
 
-                             if(!_.isEmpty(udata.doc)) tasks.push(udata);
 
-                         }
 
-                     }else {//如果不存在,则生成一条新的
 
-                         tasks.push(getNewEval(d,modelType));
 
-                     }
 
-                 }
 
-             }else {//未选中状态的,检查一下是否存在关联的情况,取消关联
 
-                 let tdoc = {};
 
-                 tdoc[field] = 0;
 
-                 if(d[field] == 1)  tasks.push({id:d.id,doc:tdoc,action:'update',type:"glj_list"});
 
-                 let evl = evaluateMap[d.id];
 
-                 if(evl){
 
-                     if(evl.is_related ==1) tasks.push({type:modelType,doc:{is_related:0},action:"update",ID:evl.ID});
 
-                 }
 
-                 let evaluate = evaluateKeyMap[gljUtil.getIndex(d,gljUtil.materialKeyArray)];
 
-                 if(evaluate) {
 
-                     if(evaluate.is_related ==1) tasks.push({type:modelType,doc:{is_related:0},action:"update",ID:evaluate.ID});
 
-                 }
 
-             }
 
-         }
 
-         if(tasks.length > 0) configMaterialObj.updateEvaluateMaterial(tasks);
 
-         function getNewEval(d,m_t) {
 
-             let ndata = {type:m_t,doc:{},action:"add"};
 
-             ndata.doc['ID'] = uuid.v1();
 
-             ndata.doc['projectGLJID'] = d.id;
 
-             ndata.doc['is_related'] = 1;
 
-             if(m_t == "evaluate_list")ndata.doc['locked'] = 0;
 
-             ndata.doc['seq'] = d.code;
 
-             ndata.doc['projectID'] = d.from.project_id;
 
-             ndata.doc['code'] = d.code;
 
-             ndata.doc['name'] = d.name;
 
-             ndata.doc['specs'] = d.specs;
 
-             ndata.doc['unit'] = d.unit;
 
-             ndata.doc['quantity'] = d.quantity;
 
-             ndata.doc['type'] = d.type;
 
-             ndata.doc['market_price'] = d.from.unit_price.market_price;
 
-             ndata.doc['originPlace'] = d.originPlace;
 
-             ndata.doc['vender'] = d.vender;
 
-             ndata.doc['remark'] = d.remark;
 
-             return ndata;
 
-         }
 
-     }
 
- };
 
- $(function () {
 
-   $("#filterAgain").click(function(){
 
-       configMaterialObj.relateFilterAgain = true;//重新过滤标记
 
-       configMaterialObj.showEvaluateRelateDatas();
 
-   })
 
-     $('#selectPGLJ').on('shown.bs.modal',function(e){
 
-         pgljSelObj.checkType="取消";
 
-         pgljSelObj.initSpread();
 
-         pgljSelObj.showDatas();
 
-     });
 
-     $(".pglj_sel_input").change(function () {
 
-         let check = $(this).prop("checked");
 
-         if($(this).val() == 0){//勾选的是全选,其它的勾选项跟着改变
 
-             for(let a of $(".pglj_sel_input")){
 
-                 $(a).prop("checked",check)
 
-             }
 
-         }else {//勾选其它选项
 
-             let a_checked = true;
 
-             for(let o of $(".pglj_sel_input_other")){//如果其它的有一个不勾选,则所有项也不打勾
 
-                 if($(o).prop("checked") === false){
 
-                     a_checked = false;
 
-                     break;
 
-                 }
 
-             }
 
-             $("#pglj_sel_all").prop("checked",a_checked);
 
-         }
 
-         pgljSelObj.showDatas();
 
-     });
 
-     $("#pglj_sel_btn_find").click(function () {
 
-         pgljSelObj.showDatas();
 
-     });
 
-     $(".pglj_sel_check_btn").click(function () {
 
-         pgljSelObj.checkType = $(this).text();
 
-         pgljSelObj.refreshDatas();
 
-     })
 
-     $("#pglj_sel_confirm").click(function () {
 
-         pgljSelObj.confirmSelect();
 
-     })
 
- });
 
 
  |