|
@@ -18,10 +18,6 @@ var gljOprObj = {
|
|
|
selectedGLJClass:null,
|
|
|
parentNodeIds:{},
|
|
|
activeTab:'#linkGLJ',
|
|
|
- decimalSetting:{
|
|
|
- marketPrice:2,
|
|
|
- customQuantity:3
|
|
|
- },
|
|
|
setting: {
|
|
|
header: [
|
|
|
{headerName: "编码", headerWidth: 100, dataCode: "code", dataType: "String", formatter: "@"},
|
|
@@ -32,6 +28,7 @@ var gljOprObj = {
|
|
|
{headerName: "定额消耗量", headerWidth: 80, dataCode: "rationItemQuantity", dataType: "Number", hAlign: "right",decimalField:"glj.quantity"}, // dataType: "Number", formatter: "0.00"
|
|
|
{headerName: "自定义消耗量", headerWidth: 80, dataCode: "customQuantity", dataType: "Number", hAlign: "right",decimalField:"glj.quantity"},
|
|
|
{headerName: "消耗量", headerWidth: 80, dataCode: "quantity", dataType: "Number", hAlign: "right",decimalField:"glj.quantity"},
|
|
|
+ {headerName: "总消耗量", headerWidth: 80, dataCode: "totalQuantity", dataType: "Number", hAlign: "right",decimalField:"glj.quantity"},
|
|
|
{headerName: "基价单价", headerWidth: 80, dataCode: "basePrice", dataType: "Number", hAlign: "right",decimalField:"glj.unitPrice"},
|
|
|
{headerName: "调整基价", headerWidth: 80, dataCode: "adjustPrice", dataType: "Number", hAlign: "right",decimalField:"glj.unitPrice"},
|
|
|
{headerName: "市场单价", headerWidth: 80, dataCode: "marketPrice", dataType: "Number", hAlign: "right",decimalField:"glj.unitPrice"},
|
|
@@ -68,7 +65,7 @@ var gljOprObj = {
|
|
|
header:[
|
|
|
{headerName: "名称", headerWidth: 100, dataCode: "name", dataType: "String"},
|
|
|
{headerName: "计算式", headerWidth: 120, dataCode: "regex", dataType: "String"},
|
|
|
- {headerName: "结果(C)", headerWidth: 120, dataCode: "result", dataType: "Number",formatter:"0.0000",tofix:4},
|
|
|
+ {headerName: "结果(C)", headerWidth: 120, dataCode: "result", dataType: "Number",decimalField:"quantity_detail"},
|
|
|
{headerName: "累加", headerWidth: 120, dataCode: "isSummation", dataType: "String",cellType:"checkBox"}
|
|
|
],
|
|
|
view:{
|
|
@@ -541,6 +538,8 @@ var gljOprObj = {
|
|
|
// $('#dropdown').hide();
|
|
|
},
|
|
|
showRationGLJData:function (node) {
|
|
|
+ console.log("showRationGLJData");
|
|
|
+ console.log(+new Date());
|
|
|
var gljList = [];
|
|
|
var ration_glj = projectObj.project.ration_glj;
|
|
|
node=node?node:projectObj.project.mainTree.selected;
|
|
@@ -551,12 +550,24 @@ var gljOprObj = {
|
|
|
}
|
|
|
},
|
|
|
showRationGLJSheetData:function (init) {
|
|
|
- this.sheet.getRange(0,-1,this.sheet.getRowCount(),-1).visible(true);
|
|
|
+ this.sheet.setRowCount(0);
|
|
|
+ console.log("showRationGLJSheetData---init")
|
|
|
+ console.log(+new Date())
|
|
|
+ //this.sheet.getRange(0,-1,this.sheet.getRowCount(),-1).visible(true); //这个方法导致加载缓慢
|
|
|
this.sheetData=_.sortBy(this.sheetData,'type');
|
|
|
- this.addMixRatioToShow();
|
|
|
+ console.log("addMixRatioToShow");
|
|
|
+ console.log(+new Date())
|
|
|
+ this.sumQuantity();//计算总消耗量
|
|
|
+ this.addMixRatioToShow();//显示组成物信息
|
|
|
+ console.log("start initRationTree");
|
|
|
+ console.log(+new Date());
|
|
|
this.initRationTree(init);
|
|
|
- sheetCommonObj.showData(this.sheet,this.setting,this.sheetData);
|
|
|
+ console.log("end initRationTree");
|
|
|
+ console.log(+new Date());
|
|
|
|
|
|
+ sheetCommonObj.showData(this.sheet,this.setting,this.sheetData);
|
|
|
+ console.log("end show");
|
|
|
+ console.log(+new Date())
|
|
|
},
|
|
|
initRationTree:function (init) {
|
|
|
this.sheet.getRange(-1, 0, -1, 1).cellType(this.getTreeNodeCellType(this.sheetData));
|
|
@@ -569,7 +580,11 @@ var gljOprObj = {
|
|
|
}else {
|
|
|
collapsed = this.sheetData[i].collapsed==undefined?true:this.sheetData[i].collapsed;
|
|
|
}
|
|
|
- this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(!collapsed);// this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).locked(true);
|
|
|
+ if(collapsed==true){
|
|
|
+ this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(false);
|
|
|
+ }
|
|
|
+ //this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).visible(!collapsed);// this.sheet.getRange(i+1, -1, this.sheetData[i].subList.length, -1).locked(true);
|
|
|
+ //这个方法导致加载缓慢 试着在加载数据时隐藏行,看可不可行
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -584,6 +599,25 @@ var gljOprObj = {
|
|
|
this.sheetData=this.combineWithProjectGlj(gljList);
|
|
|
this.showRationGLJSheetData(true);
|
|
|
},
|
|
|
+ sumQuantity:function (node) {
|
|
|
+ if(this.sheetData.length>0){
|
|
|
+ node=node?node:projectObj.project.mainTree.selected;
|
|
|
+ let ration = node.data;
|
|
|
+ let quantity = ration.quantity;
|
|
|
+ quantity = (quantity==0||quantity==undefined||quantity==null||quantity=="")?1:quantity;
|
|
|
+ for(let glj of this.sheetData){
|
|
|
+ if(glj.isMixRatio==true){//如果是用于显示的组成物,则不用计算,跳过
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ glj.totalQuantity = scMathUtil.roundToString(quantity*glj.quantity,getDecimal("glj.quantity"));
|
|
|
+ if(glj.hasOwnProperty('subList')){//需要计算glj下挂的组成物的总消耗量
|
|
|
+ for(let subG of glj.subList){
|
|
|
+ subG.totalQuantity = scMathUtil.roundToString(subG.rationItemQuantity*glj.totalQuantity,getDecimal("glj.quantity"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
addMixRatioToShow:function () {
|
|
|
var newList=[];
|
|
|
_.remove(this.sheetData,{'isMixRatio':true});
|
|
@@ -722,7 +756,8 @@ var gljOprObj = {
|
|
|
if(args.editingText==null){
|
|
|
newval="";
|
|
|
}else {
|
|
|
- newval = number_util.checkNumberValue(args.editingText,this.decimalSetting[updateField]);
|
|
|
+ var decimal = updateField=='customQuantity'?getDecimal("glj.quantity"):getDecimal("glj.unitPrice");
|
|
|
+ newval = number_util.checkNumberValue(args.editingText,decimal);
|
|
|
if(newval==null){
|
|
|
me.sheet.getCell(args.row, args.col).value(recode[updateField]);
|
|
|
return;
|
|
@@ -1246,7 +1281,7 @@ $(function(){
|
|
|
function getDecimal(fieldID,node) {
|
|
|
if(node){
|
|
|
return decimalObj.decimal(fieldID,node);
|
|
|
- }else if(fieldID.indexOf(".")){
|
|
|
+ }else if(fieldID.indexOf(".")!=-1){
|
|
|
var keyArray = fieldID.split(".");
|
|
|
return decimalObj[keyArray[0]][keyArray[1]];
|
|
|
}else {
|