瀏覽代碼

计算程序另存为,费率应去掉同步功能。

chenshilong 6 年之前
父節點
當前提交
4ca8decfb3
共有 2 個文件被更改,包括 47 次插入25 次删除
  1. 46 24
      web/building_saas/main/js/views/calc_program_manage.js
  2. 1 1
      web/common/html/header.html

+ 46 - 24
web/building_saas/main/js/views/calc_program_manage.js

@@ -6,6 +6,8 @@ let calcProgramManage = {
     datas: [],
     mainSpread: null,
     detailSpread: null,
+    mainSheet: null,
+    detailSheet: null,
     mainSetting: {
         header:[
             // {headerName:"ID",headerWidth:80,dataCode:"ID", hAlign: "center"},
@@ -49,30 +51,30 @@ let calcProgramManage = {
             me.detailSpread = null;
         };
         me.mainSpread = sheetCommonObj.buildSheet($('#mainSpread')[0], me.mainSetting, me.datas.length);
+        me.mainSheet = me.mainSpread.getSheet(0);
         sheetCommonObj.spreadDefaultStyle(me.mainSpread);
         me.detailSpread = sheetCommonObj.buildSheet($('#detailSpread')[0], me.detailSetting, me.datas[0].calcItems.length);
+        me.detailSheet = me.detailSpread.getSheet(0);
         sheetCommonObj.spreadDefaultStyle(me.detailSpread);
         let arr = projectObj.project.calcProgram.compiledFeeTypeNames.slice();
         // arr.delete('暂估费');
         let fieldName = new GC.Spread.Sheets.CellTypes.ComboBox();
         fieldName.items(arr);
-        me.detailSpread.getSheet(0).getRange(-1, 4, -1, 1).cellType(fieldName);
+        me.detailSheet.getRange(-1, 4, -1, 1).cellType(fieldName);
 
-        me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
-        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.ValueChanged, me.onDetailValueChanged);
-        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
-        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onDetailEnterCell);
-        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
+        me.mainSheet.bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
+        me.detailSheet.bind(GC.Spread.Sheets.Events.ValueChanged, me.onDetailValueChanged);
+        me.detailSheet.bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
+        me.detailSheet.bind(GC.Spread.Sheets.Events.EnterCell, me.onDetailEnterCell);
+        me.detailSheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
+        sheetCommonObj.showData(me.mainSheet, me.mainSetting, me.datas);
 
-        let mSheet = me.mainSpread.getSheet(0);
-        sheetCommonObj.showData(mSheet, me.mainSetting, me.datas);
-
-        let dSheet = me.detailSpread.getSheet(0);
-        dSheet.name('calc_detail');
-        feeRateObject.setFeeRateCellCol(dSheet,_.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
-        dSheet.getRange(-1, _.findIndex(me.detailSetting.header, {'dataCode': 'dispExprUser'}), -1, 1).cellType(calcBaseView.getCalcBaseCellType('ration'));
-        sheetCommonObj.showData(dSheet, me.detailSetting, me.datas[0].calcItems);
-        customRowHeader(dSheet, me.datas[0].calcItems.length);
+        me.detailSheet.name('calc_detail');
+        feeRateObject.setFeeRateCellCol(me.detailSheet, _.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
+        me.detailSheet.getRange(-1, _.findIndex(me.detailSetting.header, {'dataCode': 'dispExprUser'}), -1, 1).cellType(calcBaseView.getCalcBaseCellType('ration'));
+        sheetCommonObj.showData(me.detailSheet, me.detailSetting, me.datas[0].calcItems);
+        me.getfeeRateColor(me.datas[0].calcItems);
+        customRowHeader(me.detailSheet, me.datas[0].calcItems.length);
         if(!projectReadOnly){
             me.loadMainContextMenu();
             me.loadDetailContextMenu();
@@ -109,11 +111,11 @@ let calcProgramManage = {
         var row = args.sheet.getActiveRowIndex();
 
         me.detailSpread.suspendPaint();
-        var dSheet = me.detailSpread.getSheet(0);
         var dData = me.datas[row].calcItems;
-        dSheet.setRowCount(dData.length, GC.Spread.Sheets.SheetArea.viewport);
-        sheetCommonObj.showData(dSheet, me.detailSetting, dData);
-        customRowHeader(dSheet, dData.length);
+        me.detailSheet.setRowCount(dData.length, GC.Spread.Sheets.SheetArea.viewport);
+        sheetCommonObj.showData(me.detailSheet, me.detailSetting, dData);
+        me.getfeeRateColor(dData);
+        customRowHeader(me.detailSheet, dData.length);
         me.detailSpread.resumePaint();
     },
     onRangeChanged:function (sender,args) {
@@ -254,14 +256,20 @@ let calcProgramManage = {
                         newTemplate.custom = true;
                         newTemplate.calcItems = [];
                         $.extend(true, newTemplate.calcItems, template.calcItems);
+                        // 清理掉费率ID关联
+                        for (let ci of newTemplate.calcItems){
+                            if (ci.feeRateID || ci.feeRateID == null)
+                                delete ci.feeRateID;
+                        };
 
                         let data = {
                             'projectID': projectObj.project.ID(),
                             'ID': newTemplate.ID,
                             'name': newTemplate.name,
                             'custom': newTemplate.custom,
-                            'calcItems': template.calcItems
+                            'calcItems': newTemplate.calcItems
                         };
+
                         calcProgramManage.addTemplate(data, function (rst) {
                             if (rst){
                                 let ts = projectObj.project.calcProgram.templates;
@@ -269,11 +277,12 @@ let calcProgramManage = {
                                 projectObj.project.calcProgram.compileTemplateMaps();
                                 projectObj.project.calcProgram.compileTemplate(newTemplate);
                                 calcProgramManage.buildSheet();
-                                calcProgramManage.mainSpread.getActiveSheet().setSelection(ts.length - 1, 0, 1, 1);
+                                calcProgramManage.mainSheet.setSelection(ts.length - 1, 0, 1, 1);
+                                calcProgramManage.mainSheet.showRow(ts.length - 1, GC.Spread.Sheets.VerticalPosition.center);
                                 calcProgramManage.refreshDetailSheet();
+                                $.bootstrapLoading.end();
                             }
                         });
-                        $.bootstrapLoading.end();
                     }
                 },
                 "reNameTemplate": {
@@ -335,6 +344,7 @@ let calcProgramManage = {
                         return !canDelete;
                     },
                     callback: function () {
+                        $.bootstrapLoading.start();
                         let template = calcProgramManage.getSelectionInfo().template;
                         if (analyzer.templateIsUsed(template.ID)) {
                             $.bootstrapLoading.end();
@@ -349,12 +359,14 @@ let calcProgramManage = {
                             };
                             calcProgramManage.deleteTemplate(data, function (rst) {
                                 if (rst){
-                                    let idx = calcProgramManage.mainSpread.getActiveSheet().getActiveRowIndex();
+                                    let idx = calcProgramManage.mainSheet.getActiveRowIndex();
                                     projectObj.project.calcProgram.templates.splice(idx, 1);
                                     projectObj.project.calcProgram.compileTemplateMaps();
                                     calcProgramManage.buildSheet();
-                                    calcProgramManage.mainSpread.getActiveSheet().setSelection(idx - 1, 0, 1, 1);
+                                    calcProgramManage.mainSheet.setSelection(idx - 1, 0, 1, 1);
+                                    calcProgramManage.mainSheet.showRow(idx - 1, GC.Spread.Sheets.VerticalPosition.center);
                                     calcProgramManage.refreshDetailSheet();
+                                    $.bootstrapLoading.end();
                                 }
                             });
                         };
@@ -505,8 +517,18 @@ let calcProgramManage = {
             let detailSheet = me.detailSpread.getActiveSheet();
             detailSheet.setRowCount(calcItems.length);
             sheetCommonObj.showData(detailSheet, me.detailSetting, calcItems);
+            me.getfeeRateColor(calcItems);
             customRowHeader(detailSheet, calcItems.length);
         }
+    },
+    getfeeRateColor: function (calcItems) {    // 有费率ID关联的变个色
+        var me = this;
+        for (let i = 0; i < calcItems.length; i++) {
+            if (calcItems[i].feeRateID != undefined && calcItems[i].feeRateID != null)
+                me.detailSheet.getCell(i, 3).foreColor("#0aa8ea")
+            else
+                me.detailSheet.getCell(i, 3).foreColor("black");
+        }
     }
 };
 

+ 1 - 1
web/common/html/header.html

@@ -2,7 +2,7 @@
     <% if(controller === 'boot' || controller === 'pm'){ %>
     <!--<a style="text-decoration: none" href="javascript:void(0);" class="header-logo">-->
     <% }else { %>
-    <div class="mx-2"><a href="/pm" class="btn btn-sm" data-toggle="tooltip" title="返回"><i class="fa fa-angle-left" style="font-size:24px"></i></a></div>
+    <div class="mx-2"><a href="/pm" class="btn btn-sm" data-toggle="tooltip" title="返回项目管理"><i class="fa fa-angle-left" style="font-size:24px"></i></a></div>
         <!--<a style="text-decoration: none" href="/pm" class="header-logo">-->
     <% } %>
     <div class="header-logo">