chenshilong 7 年之前
父节点
当前提交
d058aaa455

+ 1 - 1
public/scHintBox.html

@@ -4,7 +4,7 @@
     自定义对话框包括:
         1、只有一个按钮的信息提示框。
         2、有两个按钮的操作确认询问框。
-        3、有三个按钮的操作确认询问框。
+        3、有三个按钮的多分支选择询问框。
         4、输入文本值对话框。
 ----------------------------------------------------------------------------------------------------------------------->
 

+ 25 - 4
web/building_saas/main/js/models/calc_program.js

@@ -1035,10 +1035,12 @@ class CalcProgram {
         // me.templates.push(defaultBillTemplate);
         // 先编译公用的基础数据
         me.compilePublics();
+        me.compileTemplateMaps();
         for (let t of me.templates){
             me.compileTemplate(t);
         };
 
+
         // 存储费率临时数据,报表用。
         if (me.saveForReports.length > 0){
             let saveDatas = {};
@@ -1072,13 +1074,32 @@ class CalcProgram {
             me.compiledCalcBases[cb.dispName] = cb;         // 中文预编译,可靠性有待验证
         }*/
     };
+    compileTemplateMaps(){
+        let me = this;
+
+        function clearObj(obj){
+            for (let key in obj) {
+                delete obj[key];
+            }
+        };
 
+        clearObj(me.compiledTemplates);
+        clearObj(me.compiledTemplateMaps);
+        me.compiledTemplateNames.splice(0, me.compiledTemplateNames.length);
+
+        for (let t of me.templates){
+            me.compiledTemplates[t.ID] = t;
+            me.compiledTemplateMaps[t.ID] = t.name;
+            me.compiledTemplateMaps[t.name] = t.ID;
+            me.compiledTemplateNames.push(t.name);
+        };
+    };
     compileTemplate(template){
         let me = this;
-        me.compiledTemplates[template.ID] = template;
-        me.compiledTemplateMaps[template.ID] = template.name;
-        me.compiledTemplateMaps[template.name] = template.ID;
-        me.compiledTemplateNames.push(template.name);
+        // me.compiledTemplates[template.ID] = template;
+        // me.compiledTemplateMaps[template.ID] = template.name;
+        // me.compiledTemplateMaps[template.name] = template.ID;
+        // me.compiledTemplateNames.push(template.name);
         template.hasCompiled = false;
         template.errs = [];
 

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

@@ -174,6 +174,7 @@ let calcProgramManage = {
                             if (rst){
                                 let ts = projectObj.project.calcProgram.templates;
                                 ts.push(newTemplate);
+                                projectObj.project.calcProgram.compileTemplateMaps();
                                 projectObj.project.calcProgram.compileTemplate(newTemplate);
                                 calcProgramManage.buildSheet();
                                 calcProgramManage.mainSpread.getActiveSheet().setSelection(ts.length - 1, 0, 1, 1);
@@ -221,7 +222,7 @@ let calcProgramManage = {
                         };
                         calcProgramManage.updateTemplate(data, function (rst) {
                             if (rst){
-                                projectObj.project.calcProgram.compileTemplate(template);
+                                projectObj.project.calcProgram.compileTemplateMaps();
                                 sheetCommonObj.showData(calcProgramManage.mainSpread.getSheet(0), calcProgramManage.mainSetting, calcProgramManage.datas);
                             }
                         });
@@ -253,7 +254,7 @@ let calcProgramManage = {
                             if (rst){
                                 let idx = calcProgramManage.mainSpread.getActiveSheet().getActiveRowIndex();
                                 projectObj.project.calcProgram.templates.splice(idx, 1);
-                                projectObj.project.calcProgram.compileAllTemps();
+                                projectObj.project.calcProgram.compileTemplateMaps();
                                 calcProgramManage.buildSheet();
                                 calcProgramManage.mainSpread.getActiveSheet().setSelection(idx - 1, 0, 1, 1);
                                 calcProgramManage.refreshDetailSheet();