Procházet zdrojové kódy

Merge branch '1.0.0_online' of http://192.168.1.41:3000/SmartCost/ConstructionCost into 1.0.0_online

zeweizhong před 6 roky
rodič
revize
93b9dc46d9

+ 1 - 0
public/web/gljUtil.js

@@ -588,6 +588,7 @@ let gljUtil = {
     extraType:[6,7,8],//一些其它的工料机类型
     notEditType : [202,203,204,301,304,4],
     gljKeyArray : ['code','name','specs','unit','type'],
+    materialKeyArray:['code','name','specs','unit'],
     rationType : {
         ration: 1,
         volumePrice: 2,

+ 113 - 21
web/building_saas/main/js/views/config_material_view.js

@@ -11,8 +11,8 @@ let configMaterialObj = {
     evaluateMaterialSetting:{
         header: [
             {headerName: "关联", headerWidth: 80, dataCode: "is_related", dataType: "String",cellType:'checkBox'},
-            {headerName: "材料号", headerWidth: 80, dataCode: "code", dataType: "String",formatter: "@"},
             {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"},
@@ -24,7 +24,7 @@ let configMaterialObj = {
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String",visible:false},
             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
         ],
-        view:{ lockColumns: ["is_related","unit","totalPrice","originPlace","vender","quantity"]}
+        view:{ lockColumns: ["is_related","totalPrice","originPlace","vender","quantity"]}
     },
     bidMaterialSetting:{
         header: [
@@ -41,7 +41,7 @@ let configMaterialObj = {
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String",visible:false},
             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String"}
         ],
-        view:{ lockColumns: ["is_related","unit","totalPrice","originPlace","vender","quantity"]}
+        view:{ lockColumns: ["is_related","totalPrice","originPlace","vender","quantity"]}
     },
 
     evaluateRelateSetting:{
@@ -89,7 +89,7 @@ let configMaterialObj = {
         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.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
         this.evaluateMaterialSheet.name('evaluateMaterialSheet');
         this.evaluateMaterialSheet.setRowHeight(0, 36, 1);
     },
@@ -99,7 +99,7 @@ let configMaterialObj = {
         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.evaluateMaterialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
+        this.bidMaterialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
         this.bidMaterialSheet.name('bidMaterialSheet');
         this.bidMaterialSheet.setRowHeight(0, 36, 1);
     },
@@ -115,15 +115,23 @@ let configMaterialObj = {
 
     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);
@@ -409,9 +417,9 @@ let configMaterialObj = {
         }
         if(value == 1){ //勾选暂估选项,查看已有的暂估材料列表中是否有名称,编号等完全相同的记录,有则直接关联,无则添加
             let evaluate = null;
-            let pindex = gljUtil.getIndex(glj);
+            let pindex = gljUtil.getIndex(glj,gljUtil.materialKeyArray);
             for(let e of dataList){
-                let eIndex = gljUtil.getIndex(e);
+                let eIndex = gljUtil.getIndex(e,gljUtil.materialKeyArray);
                 if(pindex == eIndex){
                     evaluate = e;
                     break;
@@ -492,7 +500,7 @@ let configMaterialObj = {
             }
             value =  scMathUtil.roundToString(value,getDecimal('glj.unitPrice'));
         }
-        if(dataCode === 'quantity'){//修改数量需做4舍5入
+        if(value&& dataCode === 'quantity'){//修改数量需做4舍5入
             value =  scMathUtil.roundToString(value,getDecimal('glj.quantity'));
         }
 
@@ -501,7 +509,53 @@ let configMaterialObj = {
         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', 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;
@@ -521,7 +575,7 @@ let configMaterialObj = {
                 return projectObj.project.projectGLJ.updatePrice(evaluate,dataCode,value,'rg', projectGljObject.refreshViewsData);
             }
         }
-        if(dataCode === 'quantity'){//修改数量需做4舍5入
+        if(value && dataCode === 'quantity'){//修改数量需做4舍5入
             value=  scMathUtil.roundToString(value,getDecimal('glj.quantity'));
         }
 
@@ -627,27 +681,49 @@ let configMaterialObj = {
         let row = args.row,col = args.col;
         let evaluate = me.evaluateMaterialDatas[row];
         let dataCode = me.evaluateMaterialSetting.header[col].dataCode;
-        if(evaluate.locked){
-            args.cancel = true;
-        }else if(dataCode == 'quantity' && evaluate.is_related){//在关联的情况下,数量不可编辑
-            args.cancel = true;
-        }
+        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(dataCode == 'quantity' && bid.is_related){//在关联的情况下,数量不可编辑
-            args.cancel = true;
-        }
+        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({
@@ -666,12 +742,28 @@ let configMaterialObj = {
                     },
                     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',
@@ -824,7 +916,7 @@ let pgljSelObj={
         let evaluateMap = _.indexBy(datas,"projectGLJID");
         let evaluateKeyMap = {};//关键字映射表
         for(let e of datas){
-            let eIndex = gljUtil.getIndex(e);
+            let eIndex = gljUtil.getIndex(e,gljUtil.materialKeyArray);
             evaluateKeyMap[eIndex] = e;
         }
         for(let d of this.datas){
@@ -841,7 +933,7 @@ let pgljSelObj={
                     let pdata = {id:d.id,doc:{},action:'update',type:"glj_list"};
                     pdata.doc[field] = 1;
                     tasks.push(pdata);
-                    let evaluate = evaluateKeyMap[gljUtil.getIndex(d)];
+                    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);
@@ -862,7 +954,7 @@ let pgljSelObj={
                 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)];
+                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});
                 }

+ 71 - 18
web/building_saas/main/js/views/material_adjust_view.js

@@ -31,7 +31,7 @@ let materialAdjustObj = {
             {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: "变值权重B", headerWidth: 90, dataCode: "varWeight", hAlign: "right", dataType: "Number",validator:"number",formatter:"0.00"},
             {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'},
@@ -65,7 +65,8 @@ let materialAdjustObj = {
         sheetCommonObj.initSheet(this.priceInfoSheet,this.priceInfoSetting,30);
         this.priceInfoSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
         this.priceInfoSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
-       // this.priceInfoSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
+        this.priceInfoSheet.bind(GC.Spread.Sheets.Events.EditStarting, this.onPriceInfoEditString);
+        this.priceInfoSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
         this.priceInfoSheet.name('priceInfoSheet');
         this.priceInfoSheet.setRowHeight(0, 36, 1);
     },
@@ -74,6 +75,8 @@ let materialAdjustObj = {
         sheetCommonObj.initSheet(this.priceCoeSheet,this.priceCoeSetting,30);
         this.priceCoeSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
         this.priceCoeSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
+        this.priceCoeSheet.bind(GC.Spread.Sheets.Events.EditStarting, this.onPriceInfoEditString);
+        this.priceCoeSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onSheetRangeChange);
         this.priceCoeSheet.name('priceCoeSheet');
         this.priceCoeSheet.setRowHeight(0, 36, 1);
     },
@@ -87,35 +90,53 @@ let materialAdjustObj = {
         }
     },
     onSheetRangeChange:function (a,args) {
-        let me = materialAdjustObj,updateMap = {};
+        let me = materialAdjustObj,updateMap = {},tasks=[];
         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();
+            let recode = datas[c.row];
+            if(dataCode == "unit" && recode.is_related){
+                me.refreshSheetDatas();
+                return ;
+            }
             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);
+                dataCode = 'market_price';
+                if(recode.is_related){//关联的情况下,直接修改工料机价格
+                    return projectGLJ.updatePrice(recode,dataCode,value,'rg', projectGljObject.refreshViewsData);
+                }
             }else {
-                let tem = {};
-                if(value) value = scMathUtil.roundForObj(value,getDecimal("process"));
+                let tem = updateMap[recode.ID]?updateMap[recode.ID]:{};
+                if(value&&dataCode == "standardPrice") value = scMathUtil.roundForObj(value,getDecimal('glj.unitPrice'))+"";
                 if(value == recode[dataCode]) continue;
                 tem[dataCode] = value;
-                updateMap[recode.id] = tem;
+                updateMap[recode.ID] = tem;
             }
         }
-        if( _.isEmpty(updateMap)) return;
-        projectGLJ.batchUpdateGLJProperty(updateMap,function () {
-            me.refreshSheetDatas();
-        });
+        for(let ID in updateMap){
+            let edata = {type:"contractor_list",doc:updateMap[ID],action:"update",ID:ID};
+            tasks.push(edata);
+        }
+        if(tasks.length > 0)  configMaterialObj.updateEvaluateMaterial(tasks,false);
 
+
+    },
+    onPriceInfoEditString:function (a,args) {
+        let me = materialAdjustObj;
+        let setting = $("#adjustType").val() == "priceInfo"?me.priceInfoSetting:me.priceCoeSetting;
+        let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas;
+        let dataCode = setting.header[args.col].dataCode;
+        let recorde = datas[args.row];
+        if(recorde){
+            if(recorde.is_related && dataCode =="unit") args.cancel = true;
+        }
     },
 
     onSheetValueChange:function (a,args) {
@@ -125,7 +146,6 @@ let materialAdjustObj = {
         let dataCode = setting.header[col].dataCode;
         let evaluate = datas[row];
         let value = args.newValue;
-
         if (value&&! sheetCommonObj.checkData(col,setting,value)) {
             alert('输入的数据类型不对,请重新输入!');
             return me.refreshSheetDatas();
@@ -140,6 +160,7 @@ let materialAdjustObj = {
                 return projectObj.project.projectGLJ.updatePrice(evaluate,dataCode,value,'rg', projectGljObject.refreshViewsData);
             }
         }
+        if(dataCode == "standardPrice") value = scMathUtil.roundForObj(value,getDecimal('glj.unitPrice'))+"";
         let edata = {type:'contractor_list',doc:{},action:"update",ID:evaluate.ID};
         if(evaluate[dataCode] == value) return me.refreshSheetDatas();
         edata.doc[dataCode] = value;
@@ -162,15 +183,23 @@ let materialAdjustObj = {
     },
     showPriceInfoDatas:function () {
         configMaterialObj.configSpread.setActiveSheetIndex(2);
+        let sel = this.priceInfoSheet.getSelections()[0];
+        let oldData = sel.row<this.priceInfoDatas.length?this.priceInfoDatas[sel.row]:"";
         this.priceInfoDatas = this.getPirceInfoDatas();
         sheetCommonObj.showData(this.priceInfoSheet, this.priceInfoSetting,this.priceInfoDatas);
         this.priceInfoSheet.setRowCount(this.priceInfoDatas.length);
+        sel.row = oldData?_.findIndex(this.priceInfoDatas,{'ID':oldData.ID}):'';
+        this.priceInfoSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
     },
     showPriceCoeDatas:function () {
         configMaterialObj.configSpread.setActiveSheetIndex(3);
+        let sel = this.priceCoeSheet.getSelections()[0];
+        let oldData = sel.row<this.priceCoeDatas.length?this.priceCoeDatas[sel.row]:"";
         this.priceCoeDatas = this.getPriceCoeDatas();
         sheetCommonObj.showData(this.priceCoeSheet, this.priceCoeSetting,this.priceCoeDatas);
         this.priceCoeSheet.setRowCount(this.priceCoeDatas.length);
+        sel.row = oldData?_.findIndex(this.priceCoeDatas,{'ID':oldData.ID}):'';
+        this.priceCoeSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
     },
     getPirceInfoDatas:function(projectGLJList,contractor_list,decimalObj){
         let datas = [];
@@ -273,6 +302,30 @@ let materialAdjustObj = {
         };
         gljOprObj.setGLJPrice(data,glj);
         return data;
+    },
+    checkedDefualtOption:function (className) {
+        for(let a of $("."+className)){
+            if(className == "pglj_sel_input"|| a.id == "glj_sel_material" || a.id == "glj_sel_main"||a.id =="glj_sel_eqp") $(a).prop("checked",true)
+        }
+    },
+    insertEmptyRow : function () {
+        let ndata = {type:"contractor_list",doc:{},action:"add"};
+        ndata.doc['ID'] = uuid.v1();
+        ndata.doc['is_related'] = 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'] = "";
+        ndata.doc['supply'] = "";
+        ndata.doc['riskCoe'] = "";
+        ndata.doc['standardPrice'] = "";
+        ndata.doc['FO'] = "";
+        ndata.doc['FI'] = "";
+        configMaterialObj.updateEvaluateMaterial([ndata],false);
     }
 };
 
@@ -398,7 +451,7 @@ let gljFromObj={
         let evaluateMap = _.indexBy(datas,"projectGLJID");
         let evaluateKeyMap = {};//关键字映射表
         for(let e of datas){
-            let eIndex = gljUtil.getIndex(e);
+            let eIndex = gljUtil.getIndex(e,gljUtil.materialKeyArray);
             evaluateKeyMap[eIndex] = e;
         }
         for(let d of this.datas){
@@ -415,7 +468,7 @@ let gljFromObj={
                     let pdata = {id:d.id,doc:{},action:'update',type:"glj_list"};
                     pdata.doc[field] = 1;
                     tasks.push(pdata);
-                    let evaluate = evaluateKeyMap[gljUtil.getIndex(d)];
+                    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);
@@ -431,7 +484,7 @@ let gljFromObj={
                 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)];
+                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});
                 }
@@ -459,7 +512,7 @@ let gljFromObj={
             ndata.doc['remark'] = d.remark;
             ndata.doc['supply'] = d.supply;
             ndata.doc['riskCoe'] = "";
-            ndata.doc['standardPrice'] = "";
+            ndata.doc['standardPrice'] = d.from.unit_price.market_price;
             ndata.doc['FO'] = "";
             ndata.doc['FI'] = "";
             return ndata;