chenshilong преди 7 години
родител
ревизия
3022f2cba6
променени са 2 файла, в които са добавени 40 реда и са изтрити 12 реда
  1. 11 0
      web/building_saas/main/js/models/calc_program.js
  2. 29 12
      web/building_saas/main/js/views/calc_program_manage.js

+ 11 - 0
web/building_saas/main/js/models/calc_program.js

@@ -1156,6 +1156,17 @@ let analyzer = {
         }
         return false;
     },
+    refreshUsedCalcItemsStatement: function(template, calcItem){
+        let atID = '@' + calcItem.ID;
+        for (var i = 0; i < template.calcItems.length; i++) {
+            let item = template.calcItems[i];
+            let atIDArr = analyzer.getAtIDArr(item.expression);
+            if (atIDArr.indexOf(atID) >= 0){
+                item.statement = analyzer.getStatement(item.expression, template);
+            };
+        }
+    },
+
     calcItemLabourCoe: function(calcItem){
         let lc = 0;
         if (calcItem.labourCoeID)

+ 29 - 12
web/building_saas/main/js/views/calc_program_manage.js

@@ -136,18 +136,35 @@ let calcProgramManage = {
         };
 
         curCalcItem[dataCode] = args.newValue;
-        let data = {
-            'projectID': projectObj.project.ID(),
-            'templatesID': template.ID,
-            'calcItem': curCalcItem
-        };
-        me.saveCalcItem(data, function (rst) {
-            if (rst){
-                let relationNodes = calcTools.getNodesByProgramID(template.ID);
-                projectObj.project.calcProgram.calcNodesAndSave(relationNodes);
-            }
-        });
-        $.bootstrapLoading.end();
+
+        if (dataCode == 'name'){
+            analyzer.refreshUsedCalcItemsStatement(template, curCalcItem);
+            let data = {
+                'projectID': projectObj.project.ID(),
+                'ID': template.ID,
+                'calcItems': template.calcItems
+            };
+            calcProgramManage.updateTemplate(data, function (rst) {
+                if (rst){
+                    calcProgramManage.refreshDetailSheet();
+                    $.bootstrapLoading.end();
+                }
+            });
+        }
+        else{
+            let data = {
+                'projectID': projectObj.project.ID(),
+                'templatesID': template.ID,
+                'calcItem': curCalcItem
+            };
+            me.saveCalcItem(data, function (rst) {
+                if (rst){
+                    let relationNodes = calcTools.getNodesByProgramID(template.ID);
+                    projectObj.project.calcProgram.calcNodesAndSave(relationNodes);
+                    $.bootstrapLoading.end();
+                }
+            });
+        }
     },
     onDetailEnterCell: function (sender, args) {
         // for test.