chenshilong 7 سال پیش
والد
کامیت
9cb86141f2

+ 1 - 1
modules/main/models/bills.js

@@ -127,7 +127,7 @@ class billsModel extends baseModel {
         async.parallel(functions, function(err,result){
             let returnData = {
                 moduleName:'bills',
-                data:{}
+                data:result
             };
             callback(err, returnData);
         });

+ 1 - 2
web/building_saas/main/js/models/bills.js

@@ -119,11 +119,10 @@ var Bills = {
 
         // 提交数据后的错误处理方法
         bills.prototype.doAfterUpdate = function(err, data){
-            // console.log(data)
+             // console.log(data)
             if(data.quantityRefresh){
                 this.refreshDatas(data,'quantity');
             }
-            $.bootstrapLoading.end();
         };
 
         bills.prototype.refreshDatas = function(data,fieldName){

+ 30 - 6
web/building_saas/main/js/models/calc_program.js

@@ -730,7 +730,10 @@ class CalcProgram {
 
     // 存储、刷新零散的多个结点。
     saveNodes(treeNodes){
-        if (treeNodes.length < 1) return;
+        if (treeNodes.length < 1) {
+            $.bootstrapLoading.end();
+            return;
+        }
 
         let me = this;
 
@@ -978,9 +981,23 @@ class CalcProgram {
         // 叶子清单无子结点、无公式计算(啥都没有时)
         else if (treeNode.calcType == treeNodeCalcType.ctNull){
             delete treeNode.data.gljList;
-            if (treeNode.data.calcBase) treeNode.data.calcBase = null;  // 不能直接删除该属性,否则无法冲掉库中已存储的值
-            if (treeNode.data.calcBaseValue) treeNode.data.calcBaseValue = null;  // 不能直接删除该属性,否则无法冲掉库中已存储的值
-            if (treeNode.data.programID) treeNode.data.programID = null;
+
+            // 不能直接删除该属性,否则无法冲掉库中已存储的值。下同。
+            if (treeNode.data.calcBase){
+                treeNode.data.calcBase = null;
+                treeNode.changed = true;
+            }
+
+            if (treeNode.data.calcBaseValue){
+                treeNode.data.calcBaseValue = null;
+                treeNode.changed = true;
+            }
+
+            if (treeNode.data.programID) {
+                treeNode.data.programID = null;
+                treeNode.changed = true;
+            }
+
             if (treeNode.data.fees && treeNode.data.fees.length > 0){
                 treeNode.data.fees = null;
                 treeNode.data.feesIndex = null;
@@ -991,7 +1008,11 @@ class CalcProgram {
         // 叶子清单公式计算
         else if (treeNode.calcType == treeNodeCalcType.ctCalcBaseValue){
             delete treeNode.data.gljList;
-            if (treeNode.data.programID) treeNode.data.programID = null;
+
+            if (treeNode.data.programID) {
+                treeNode.data.programID = null;
+                treeNode.changed = true;
+            }
 
             let f = treeNode.data.feeRate ? treeNode.data.feeRate : 100;
             if (!treeNode.data.quantity) treeNode.data.quantity = 1;
@@ -1220,5 +1241,8 @@ class CalcProgram {
         let changedNodes = this.calculate(treeNode);
         this.saveNodes(changedNodes);
     };
-
+    calcAllNodesAndSave(calcType = calcAllType.catAll){
+        let changedNodes = this.calcAllNodes(calcType);
+        this.saveNodes(changedNodes);
+    };
 }

+ 2 - 2
web/building_saas/main/js/models/fee_rate.js

@@ -192,7 +192,7 @@ var FeeRate = {
                     calcProgramObj.showData(node);
                 }
             }
-            project.calcProgram.calcAllNodes(calcAllType.catBills);
+            project.calcProgram.calcAllNodesAndSave(calcAllType.catBills);
             socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
         };
         FeeRate.prototype.onFeeRateFileChange=function () {
@@ -204,7 +204,7 @@ var FeeRate = {
                     calcProgramObj.showData(node);
                 }
             }
-            project.calcProgram.calcAllNodes(calcAllType.catBills);
+            project.calcProgram.calcAllNodesAndSave(calcAllType.catBills);
             socket.emit('feeRateChangeNotify', this.getActivateFeeRateFileID());
         };
 

+ 3 - 0
web/building_saas/main/js/models/project.js

@@ -28,6 +28,7 @@ var PROJECT = {
                     me.eachItem(item)
                 }
             });
+
         };
         tools.doAfterLoad = function(result, callback){
             var counter;
@@ -269,9 +270,11 @@ var PROJECT = {
                         } else {
                             alert('error: ' + result.message);
                         }
+                        $.bootstrapLoading.end();
                     },
                     error: function(jqXHR, textStatus, errorThrown){
                         alert('error ' + textStatus + " " + errorThrown);
+                        $.bootstrapLoading.end();
                     }
                 });
                 tools.updateData = [];

+ 7 - 2
web/building_saas/main/js/views/calc_program_manage.js

@@ -81,13 +81,18 @@ let calcProgramManage = {
         me.detailSpread.resumePaint();
     },
     onEditEnded: function(sender, args) {
+        $.bootstrapLoading.start();
+
         let me = calcProgramManage;
         let editInfo= me.getSelectionInfo();
         if(me.detailSetting.header[args.col].dataCode == 'feeRate'){
             projectObj.project.FeeRate.updateFeeRateFromCalc(args.editingText,editInfo);
         }else {
             if(me.detailSetting.header[args.col].dataCode == 'displayFieldName'){
-                if (editInfo.calcItem.displayFieldName == args.editingText) return;
+                if (editInfo.calcItem.displayFieldName == args.editingText) {
+                    $.bootstrapLoading.end();
+                    return;
+                }
                 editInfo.calcItem.fieldName = projectObj.project.calcProgram.compiledFeeTypeMaps[args.editingText];
                 editInfo.calcItem.displayFieldName = args.editingText;    // 这句不入库,仅用于切换后再切换回来时界面正确显示
             };
@@ -99,7 +104,7 @@ let calcProgramManage = {
             };
             me.saveCalcItem(data, function (rst) {
                 if (rst){
-
+                    projectObj.project.calcProgram.calcAllNodesAndSave();
                 }
             });
         }

+ 1 - 1
web/building_saas/main/js/views/main_tree_col.js

@@ -25,7 +25,7 @@ let MainTreeCol = {
           if(node.sourceType === projectObj.project.ration_glj.getSourceType()){
               return gljOprObj.getTotalQuantity(node.data);
           }else {
-              return node.data["quantity"];
+              return parseFloatPlus(node.data["quantity"]).toDecimal(decimalObj.decimal("quantity", node));
           }
         },
         // CSL, 2017-11-28

+ 0 - 18
web/building_saas/main/js/views/project_property_labour_coe_view.js

@@ -150,24 +150,6 @@ let labourCoeView = {
         $("#std_labour_coe_files").val('');
         calcProgramManage.buildSheet();
     }
-
-/*  save(){
-        let me = this;
-        if (me.needUpdateDatas.length > 0){
-            let projectID = projectInfoObj.projectInfo.ID;
-            let libID = $("#std_labour_coe_files").children("option:selected").val();
-            let libName = $("#std_labour_coe_files").children("option:selected").text();
-            let data = {projectID: projectID, libID: libID, libName: libName, newItemArr: me.needUpdateDatas};
-            CommonAjax.post('/labourCoe/save', data, function (){
-                projectObj.project.labourCoe.refreshData(data);
-                me.needUpdateDatas.splice(0, me.needUpdateDatas.length);
-                projectObj.project.calcProgram.compileAllTemps();
-                projectObj.project.calcProgram.calcAllNodes(calcAllType.catRations);
-                $("#std_labour_coe_files").val('');
-                calcProgramManage.buildSheet();
-            });
-        }
-    }*/
 };
 
 $(document).ready(function(){

+ 2 - 4
web/building_saas/main/js/views/project_view.js

@@ -682,9 +682,7 @@ var projectObj = {
                     name: '造价计算',
                     callback: function () {
                         $.bootstrapLoading.start();
-                        let changedNodes = project.calcProgram.calcAllNodes();
-                        project.calcProgram.saveNodes(changedNodes);
-                        $.bootstrapLoading.end();
+                        project.calcProgram.calcAllNodesAndSave();
                     }
                 }
             }
@@ -1073,7 +1071,7 @@ $('#property_ok').click(function () {
     };
     // 重新计算树节点
     let changedNodes = [];
-    if (reCalcRations)    // 定额动,全部计算。
+    if (reCalcRations)    // 定额动,全部计算。算完先不存储,和后面的数据一起提交,一次通讯。
         changedNodes = project.calcProgram.calcAllNodes(calcAllType.catAll)
     else if (reCalcBills)  // 清单动,可以只计算清单。
         changedNodes = project.calcProgram.calcAllNodes(calcAllType.catBills);