ソースを参照

费率更改,标红变更

vian 5 年 前
コミット
a420a33c35
1 ファイル変更25 行追加2 行削除
  1. 25 2
      web/building_saas/main/js/views/fee_rate_view.js

+ 25 - 2
web/building_saas/main/js/views/fee_rate_view.js

@@ -178,7 +178,7 @@ var feeRateObject={
                     sheet.getCell(row, 0).cellType(treeType);
                     sheet.getCell(row, 0).cellType(treeType);
                     visibleMap[data[row].ID] = treeType.collapsed;
                     visibleMap[data[row].ID] = treeType.collapsed;
                     feeRateObject.setRowVisible(data,row,visibleMap,sheet);
                     feeRateObject.setRowVisible(data,row,visibleMap,sheet);
-                } else if (col === 1 && commonUtil.isDef(data[row].originalRate) && data[row].originalRate !== +val) {
+                } else if (col === 1 && this.rateShouldMark(data[row], val)) {
                     sheet.getCell(row, col).foreColor('red');
                     sheet.getCell(row, col).foreColor('red');
                 }
                 }
             }
             }
@@ -186,6 +186,29 @@ var feeRateObject={
         sheet.resumeEvent();
         sheet.resumeEvent();
         sheet.resumePaint();
         sheet.resumePaint();
     },
     },
+    rateShouldMark: function (rateItem, val) {
+        if (!rateItem) {
+            return false;
+        }
+        if (rateItem.rate === null) {
+            return false;
+        }
+        if (rateItem.sum) {
+            return false;
+        }
+        if (rateItem.subFeeRate) {
+            const selectedSubRate = rateItem.subFeeRate.recodes && rateItem.subFeeRate.recodes[0] ?
+                rateItem.subFeeRate.recodes[0].optionList.find(item => item.selected)
+                : null;
+            if (!selectedSubRate) {
+                false;
+            }
+            const valInMap = rateItem.subFeeRate.valueMaps.find(item => item.ID === selectedSubRate.name);
+            return !!(valInMap && valInMap.value !== +val);
+        } else {
+            return commonUtil.isDef(rateItem.originalRate) && rateItem.originalRate !== +val;
+        }
+    },
     setRowVisible:function (data,row,visibleMap,sheet) {
     setRowVisible:function (data,row,visibleMap,sheet) {
         sheet.getRange(row , -1, 1, -1).visible(getVisible(data[row].ParentID));//显示或隐藏
         sheet.getRange(row , -1, 1, -1).visible(getVisible(data[row].ParentID));//显示或隐藏
         function getVisible(ParentID) {
         function getVisible(ParentID) {
@@ -542,7 +565,7 @@ var feeRateObject={
                         let col = _.findIndex(me.mainFeeRateSetting.header,{'dataCode':key});
                         let col = _.findIndex(me.mainFeeRateSetting.header,{'dataCode':key});
                         me.mainFeeRateSheet.setValue(row, col, u.doc[key]);
                         me.mainFeeRateSheet.setValue(row, col, u.doc[key]);
                         if(key == 'rate'){
                         if(key == 'rate'){
-                            const foreColor = commonUtil.isDef(rateItem.originalRate) && rateItem.originalRate !== +u.doc[key] ? 'red' : 'black';
+                            const foreColor = feeRateObject.rateShouldMark(rateItem, u.doc[key]) ? 'red' : 'black';
                             me.mainFeeRateSheet.getCell(row, col).foreColor(foreColor);
                             me.mainFeeRateSheet.getCell(row, col).foreColor(foreColor);
                             feerateInfo.push({rateID:u.rateID,value:u.doc[key]});
                             feerateInfo.push({rateID:u.rateID,value:u.doc[key]});
                         }
                         }