|
@@ -113,6 +113,7 @@ materialCalcObj = {
|
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onMaterialValueChange);
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onMaterialValueChange);
|
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onMaterialSelectionChange);
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onMaterialSelectionChange);
|
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onMaterialEditStarting);
|
|
this.materialSheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onMaterialEditStarting);
|
|
|
|
|
+ this.materialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onMaterialRangeChange);
|
|
|
this.materialSheet.name('material_calc');
|
|
this.materialSheet.name('material_calc');
|
|
|
if(projectReadOnly){
|
|
if(projectReadOnly){
|
|
|
disableSpread(this.materialSpread);
|
|
disableSpread(this.materialSpread);
|
|
@@ -369,7 +370,7 @@ materialCalcObj = {
|
|
|
}
|
|
}
|
|
|
if(dataCode == "unitFreight"){
|
|
if(dataCode == "unitFreight"){
|
|
|
if(freigth.rations && freigth.rations.length > 0) args.cancel = true;
|
|
if(freigth.rations && freigth.rations.length > 0) args.cancel = true;
|
|
|
- if(gljUtil.isDef(freigth.materialType) && freigth.materialType != "") args.cancel = true;//当材料类型有值时,说明是内蒙古计算,运费是能过运距算出来的,不能编辑
|
|
|
|
|
|
|
+ if(gljUtil.isDef(freigth.materialType) && freigth.materialType != "") args.cancel = true;//当材料类型有值时,说明是内蒙古计算,运费是通过运距算出来的,不能编辑
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -404,21 +405,34 @@ materialCalcObj = {
|
|
|
|
|
|
|
|
onMaterialValueChange:function (sender,args) {
|
|
onMaterialValueChange:function (sender,args) {
|
|
|
let me = materialCalcObj;
|
|
let me = materialCalcObj;
|
|
|
- let dataCode = me.materialSetting.header[args.col].dataCode;
|
|
|
|
|
- let value = args.newValue;
|
|
|
|
|
- if (value&&!sheetCommonObj.checkData(args.col,me.materialSetting,value)) {
|
|
|
|
|
- alert('输入的数据类型不对,请重新输入!');
|
|
|
|
|
- me.showDatas();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if(dataCode != 'supplyLocation'){
|
|
|
|
|
- value = value?scMathUtil.roundForObj(value,getDecimal("glj.unitPrice"))+'':'0'//4舍五入加默认为0
|
|
|
|
|
|
|
+ let dataMap = {};
|
|
|
|
|
+ dataMap[args.row]={};
|
|
|
|
|
+ dataMap[args.row][args.col] = args.newValue;
|
|
|
|
|
+ me.updateMaterialCalcs(dataMap);
|
|
|
|
|
+ },
|
|
|
|
|
+ updateMaterialCalcs:function(dataMap){
|
|
|
|
|
+ let me = materialCalcObj;
|
|
|
|
|
+ let updateDatas = [];
|
|
|
|
|
+ for(let row in dataMap) {
|
|
|
|
|
+ let t = dataMap[row];
|
|
|
|
|
+ let doc = {};
|
|
|
|
|
+ let recode = me.materialDatas[row];
|
|
|
|
|
+ for (let col in t) {
|
|
|
|
|
+ let value = t[col];
|
|
|
|
|
+ let dataCode = me.materialSetting.header[col].dataCode;
|
|
|
|
|
+ if (value&&!sheetCommonObj.checkData(col,me.materialSetting,value)) {
|
|
|
|
|
+ alert('输入的数据类型不对,请重新输入!');
|
|
|
|
|
+ return me.showDatas();
|
|
|
|
|
+ }
|
|
|
|
|
+ if(dataCode != 'supplyLocation'){
|
|
|
|
|
+ value = value?scMathUtil.roundForObj(value,getDecimal("glj.unitPrice"))+'':'0'//4舍五入加默认为0
|
|
|
|
|
+ }
|
|
|
|
|
+ if(recode[dataCode] == value) continue;
|
|
|
|
|
+ doc[dataCode] = value;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!_.isEmpty(doc)) updateDatas.push({id:recode.id,doc:doc});
|
|
|
}
|
|
}
|
|
|
- let recode = me.materialDatas[args.row];
|
|
|
|
|
- if(recode[dataCode] == value) return;
|
|
|
|
|
- let doc = {};
|
|
|
|
|
- doc[dataCode] = value;
|
|
|
|
|
- projectObj.project.projectGLJ.updateMaterialCalc([{id:recode.id,doc:doc}]);
|
|
|
|
|
|
|
+ if(updateDatas.length > 0) projectObj.project.projectGLJ.updateMaterialCalc(updateDatas);
|
|
|
},
|
|
},
|
|
|
getDefualtCalcType:function () {
|
|
getDefualtCalcType:function () {
|
|
|
return "全国";
|
|
return "全国";
|
|
@@ -473,6 +487,23 @@ materialCalcObj = {
|
|
|
}
|
|
}
|
|
|
return t;
|
|
return t;
|
|
|
},
|
|
},
|
|
|
|
|
+ onMaterialRangeChange:function(sender,args){
|
|
|
|
|
+ let me = materialCalcObj;
|
|
|
|
|
+ let dataMap={};
|
|
|
|
|
+ for(let c of args.changedCells){
|
|
|
|
|
+ let info = {row:c.row,col:c.col,cancel:false};
|
|
|
|
|
+ me.onMaterialEditStarting(sender,info);
|
|
|
|
|
+ if(info.cancel) return me.showDatas();
|
|
|
|
|
+ let value= args.sheet.getCell(c.row, c.col).text();
|
|
|
|
|
+ if(dataMap[c.row]){
|
|
|
|
|
+ dataMap[c.row][c.col]=value;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ dataMap[c.row] ={};
|
|
|
|
|
+ dataMap[c.row][c.col] = value;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ me.updateMaterialCalcs(dataMap);
|
|
|
|
|
+ },
|
|
|
onFreightPriceRangeChange:function (sender,args) {
|
|
onFreightPriceRangeChange:function (sender,args) {
|
|
|
let me = materialCalcObj;
|
|
let me = materialCalcObj;
|
|
|
let dataMap={};
|
|
let dataMap={};
|