Browse Source

切换计算程序文件

chenshilong 7 years ago
parent
commit
c6876d733d

+ 19 - 0
modules/main/controllers/calc_program_controller.js

@@ -11,6 +11,7 @@ module.exports = {
     saveCalcItem: saveCalcItem,
     saveCalcItems: saveCalcItems,
     updateTemplate: updateTemplate,
+    updateTemplateFile: updateTemplateFile,
     addTemplate: addTemplate,
     deleteTemplate: deleteTemplate
 };
@@ -96,6 +97,24 @@ async function updateTemplate(req, res) {
 
 };
 
+async function updateTemplateFile(req, res) {
+    let result = {};
+    await calcProgramFacade.updateTemplateFile(req.body.data, function (err, msg, data) {
+        if (err) {
+            result.error = 1;
+            result.message = msg;
+            result.data = null;
+        }
+        else{
+            result.error = 0;
+            result.message = msg;
+            result.data = data;
+        }
+        res.json(result);
+    });
+
+};
+
 async function addTemplate(req, res) {
     let result = {};
     calcProgramFacade.addTemplate(req.body.data, function (err, msg) {

+ 23 - 0
modules/main/facade/calc_program_facade.js

@@ -21,6 +21,7 @@ module.exports = {
     saveCalcItem: saveCalcItem,
     saveCalcItems: saveCalcItems,
     updateTemplate: updateTemplate,
+    updateTemplateFile: updateTemplateFile,
     addTemplate: addTemplate,
     deleteTemplate: deleteTemplate
 };
@@ -189,6 +190,28 @@ function updateTemplate(dataObj, callback) {
     });
 };
 
+// 一次性替换所有模板:用于切换模板文件。(这里实际上只替换了所有模板,基本信息如projectID、name等保留)
+// {projectID: 2706, libID: 2}
+async function updateTemplateFile(dataObj, callback) {
+    dataObj=JSON.parse(dataObj);
+    let stdCP = await getStdCalcProgramFile(dataObj.libID);
+    projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
+        if(!err){
+            data.templates = stdCP.templates;
+            data.save(function (err) {
+                if (err) {
+                    callback(1, '计算模板文件保存失败', null);
+                } else {
+                    callback(0, '计算模板文件保存成功', stdCP.templates);
+                }
+            });
+        }
+        else {
+            callback(1, '没有找到项目的计算模板文件', null);
+        }
+    });
+};
+
 // {  projectID: 1233, ID: 19, name: '建筑工程2', custom: true, calcItems: [{},{}] }
 function addTemplate(dataObj, callback) {
     dataObj=JSON.parse(dataObj);

+ 1 - 0
modules/main/routes/calc_program_route.js

@@ -14,6 +14,7 @@ module.exports = function (app) {
     cpRouter.post('/saveCalcItem', cpController.saveCalcItem);
     cpRouter.post('/saveCalcItems', cpController.saveCalcItems);
     cpRouter.post('/updateTemplate', cpController.updateTemplate);
+    cpRouter.post('/updateTemplateFile', cpController.updateTemplateFile);
     cpRouter.post('/addTemplate', cpController.addTemplate);
     cpRouter.post('/deleteTemplate', cpController.deleteTemplate);
 

+ 9 - 4
web/building_saas/main/js/views/calc_program_manage.js

@@ -497,15 +497,20 @@ $(document).ready(function(){
         // 取标准库数据过来显示。
         let libID = $(this).val();
         if (libID == ''){
-
+            calcProgramManage.mainSpread.getSheet(0).setRowCount(0);
+            calcProgramManage.detailSpread.getSheet(0).setRowCount(0);
             return false;
         };
 
-        CommonAjax.post('/calcProgram/getStdCalcProgram', {"ID":  parseFloat(libID)}, function (data) {
-            projectObj.project.calcProgram.datas.templates = data.templates;
+        $.bootstrapLoading.start();
+        libID = parseFloat(libID);
+        let projectID = projectObj.project.ID();
+        CommonAjax.post('/calcProgram/updateTemplateFile', {"projectID": projectID, "libID": libID}, function (data) {
+            projectObj.project.calcProgram.datas.templates = data;
             projectObj.project.calcProgram.compileAllTemps();
+            projectObj.project.calcProgram.calcAllNodesAndSave();
             calcProgramManage.buildSheet();
-            // $('#this').val(libID);
+            $.bootstrapLoading.end();
         });
     });
 });