zhangweicheng 7 лет назад
Родитель
Сommit
5a0c9e9a32

+ 1 - 1
modules/pm/models/project_model.js

@@ -49,7 +49,7 @@ ProjectsDAO.prototype.getUserProjects = async function (userId, compilation, cal
                 'compilation': compilation,
                 'deleteInfo': null
             }, {'userID': userId, 'compilation': compilation, 'deleteInfo.deleted': {'$in': [null, false]}}]
-        }, '-_id -property');
+        }, '-_id');
         let projIDs= [];
         let projIndex = {};
         for(let proj of projects){

+ 20 - 18
web/building_saas/main/js/models/fee_rate.js

@@ -381,28 +381,30 @@ var FeeRate = {
         };
 
         FeeRate.prototype.updateFeeRateFromCalc=function (value,editInfo) {
-            var value= number_util.checkNumberValue(value,getDecimal("feeRate"));
-            if(value){
-                if(editInfo.calcItem.feeRateID){
-                    var rate = this.getFeeRateByID(editInfo.calcItem.feeRateID);
-                    if(rate!=undefined){
-                        this.updateFeeRateByCalc(rate,value);
-                        return;
-                    }
-                }
-                editInfo.calcItem.feeRate=value;
-                editInfo.calcItem.feeRateID=null;
-                var data={'projectID': projectObj.project.ID(),'templatesID': editInfo.template.ID,'calcItem': editInfo.calcItem};
-                calcProgramManage.saveCalcItem(data,function (result) {
-                    project.calcProgram.compileAllTemps();
-                    project.calcProgram.calcAllNodesAndSave();
+            if(value != null){
+                value= number_util.checkNumberValue(value,getDecimal("feeRate"));
+                if(value == null) {
                     calcProgramManage.refreshDetailSheet();
                     $.bootstrapLoading.end();
-                })
-            }else {
+                }
+            }
+            if(editInfo.calcItem.feeRateID && value!= null){
+                var rate = this.getFeeRateByID(editInfo.calcItem.feeRateID);
+                if(rate!=undefined){
+                    this.updateFeeRateByCalc(rate,value);
+                    return;
+                }
+            }
+            editInfo.calcItem.feeRate=value;
+            editInfo.calcItem.feeRateID=null;
+            var data={'projectID': projectObj.project.ID(),'templatesID': editInfo.template.ID,'calcItem': editInfo.calcItem};
+            calcProgramManage.saveCalcItem(data,function (result) {
+                project.calcProgram.compileAllTemps();
+                project.calcProgram.calcAllNodesAndSave();
                 calcProgramManage.refreshDetailSheet();
                 $.bootstrapLoading.end();
-            }
+            })
+
         };
         FeeRate.prototype.updateFeeRateByCalc=function (rate,value) {
             var me=this;

+ 1 - 1
web/building_saas/main/js/models/quantity_detail.js

@@ -525,7 +525,7 @@ var quantity_detail = {
                     if(node.data.contain!=0){
                        let billQuantity = scMathUtil.roundForObj(node.parent.data.quantity,getDecimal("quantity",node.parent));
                        let temValue = scMathUtil.roundForObj(value*times,getDecimal("quantity",node));
-                        node.data.contain = scMathUtil.roundForObj(temValue/billQuantity,getDecimal("process"));
+                       billQuantity!=0?node.data.contain = scMathUtil.roundForObj(temValue/billQuantity,getDecimal("process")):'';
                     }
                 }
             }

+ 16 - 3
web/building_saas/main/js/views/calc_program_manage.js

@@ -58,6 +58,7 @@ let calcProgramManage = {
 
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
         me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.ValueChanged, me.onDetailValueChanged);
+        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
         me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onDetailEnterCell);
 
         let mSheet = me.mainSpread.getSheet(0);
@@ -83,6 +84,18 @@ let calcProgramManage = {
         sheetCommonObj.showData(dSheet, me.detailSetting, dData);
         me.detailSpread.resumePaint();
     },
+    onRangeChanged:function (sender,args) {
+        let me = calcProgramManage;
+        let editInfo= me.getSelectionInfo();
+        let dataCode = me.detailSetting.header[args.col].dataCode;
+        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear&&args.changedCells.length == 1) {//清除操作
+            if (dataCode == 'feeRate') {
+                $.bootstrapLoading.start();
+                projectObj.project.FeeRate.updateFeeRateFromCalc(null, editInfo);
+            }
+        }
+
+    },
     onDetailValueChanged: function(sender, args) {
         $.bootstrapLoading.start();
         let me = calcProgramManage;
@@ -94,13 +107,13 @@ let calcProgramManage = {
             projectObj.project.FeeRate.updateFeeRateFromCalc(args.newValue, editInfo);
             $.bootstrapLoading.end();
             return;
-        };
+        }
 
         if (dataCode == 'displayFieldName') {
             if (curCalcItem.displayFieldName == args.newValue) {
                 $.bootstrapLoading.end();
                 return;
-            };
+            }
 
             if (analyzer.fieldNameIsUsed(me.getSelectionInfo().template, args.newValue)){
                 let sheet = me.detailSpread.getActiveSheet();
@@ -110,7 +123,7 @@ let calcProgramManage = {
                 $.bootstrapLoading.end();
                 alert(`“${args.newValue}” 已被其它行使用,不允许重复选择!`);
                 return;
-            };
+            }
 
             curCalcItem.fieldName = projectObj.project.calcProgram.compiledFeeTypeMaps[args.newValue];
         }

+ 1 - 1
web/building_saas/pm/js/pm_newMain.js

@@ -43,7 +43,7 @@ const projTreeObj = {
             {name: '工程造价', dataCode: 'engineeringCost', width: 170, vAlign: 'center', hAlign: 'right'},
             {name: '单价文件', dataCode: 'unitPriceFile', width: 250, vAlign: 'center', hAlign: 'left'},
             {name: '费率文件', dataCode: 'feeRateFile', width: 250, vAlign: 'center', hAlign: 'left'},
-            {name: '创建日期', dataCode: 'createDateTime', width: 170, vAlign: 'center', hAlign: 'left'}
+            {name: '创建日期', dataCode: 'createDateTime', width: 170, vAlign: 'center', hAlign: 'center'}
         ],
         //选中行颜色
         style: {