chenshilong %!s(int64=7) %!d(string=hai) anos
pai
achega
3022f2cba6

+ 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.