浏览代码

费率更改,标红变更

vian 5 年之前
父节点
当前提交
3972150aef
共有 2 个文件被更改,包括 30 次插入4 次删除
  1. 1 1
      web/building_saas/main/js/models/fee_rate.js
  2. 29 3
      web/building_saas/main/js/views/fee_rate_view.js

+ 1 - 1
web/building_saas/main/js/models/fee_rate.js

@@ -149,7 +149,7 @@ var FeeRate = {
             CommonAjax.post('/feeRates/updateRates', data, function (result) {
             CommonAjax.post('/feeRates/updateRates', data, function (result) {
                 _.forEach(items,function (t) {
                 _.forEach(items,function (t) {
                     feeRateObject.mainFeeRateSheet.setValue(t.rateIndex, 1, t.rate.rate);
                     feeRateObject.mainFeeRateSheet.setValue(t.rateIndex, 1, t.rate.rate);
-                    const foreColor = commonUtil.isDef(t.rate.originalRate) && t.rate.originalRate !== +t.rate.rate ? 'red' : 'black';
+                    const foreColor = feeRateObject.rateShouldMark(t.rate, t.rate.rate) ? 'red' : 'black';
                     feeRateObject.mainFeeRateSheet.getCell(t.rateIndex, 1).foreColor(foreColor);
                     feeRateObject.mainFeeRateSheet.getCell(t.rateIndex, 1).foreColor(foreColor);
                  });
                  });
                  me.onFeeRateFileChange();
                  me.onFeeRateFileChange();

+ 29 - 3
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,32 @@ 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 && rateItem.subFeeRate.recodes && rateItem.subFeeRate.recodes.length) {
+            const selectedSubRateValues = [];
+            rateItem.subFeeRate.recodes.forEach(record => {
+                record.optionList.forEach(opt => {
+                    if (opt.selected) {
+                        selectedSubRateValues.push(opt.value);
+                    }
+                });
+            });
+            const selectedID = selectedSubRateValues.join('-');
+            const valInMap = rateItem.subFeeRate.valueMaps.find(item => item.ID === selectedID);
+            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) {
@@ -632,7 +658,7 @@ var feeRateObject={
             }
             }
             temData[fieldID] = value ;
             temData[fieldID] = value ;
             updateDatas.push({rateID:recode.ID,doc:temData});
             updateDatas.push({rateID:recode.ID,doc:temData});
-            refreshA.push({col:c.col,row:c.row,fieldID:fieldID,value:value,originalRate:recode.originalRate,rateID:recode.ID});
+            refreshA.push({col:c.col,row:c.row,fieldID:fieldID,value:value,rateItem:recode,rateID:recode.ID});
         }
         }
         if(updateDatas.length > 0){
         if(updateDatas.length > 0){
             $.bootstrapLoading.start();
             $.bootstrapLoading.start();
@@ -641,7 +667,7 @@ var feeRateObject={
                 for(let r of refreshA){
                 for(let r of refreshA){
                     me.mainFeeRateSheet.setValue(r.row, r.col, r.value);
                     me.mainFeeRateSheet.setValue(r.row, r.col, r.value);
                     if(r.fieldID == 'rate'){
                     if(r.fieldID == 'rate'){
-                        const foreColor = commonUtil.isDef(r.originalRate) && r.originalRate !== +r.value ? 'red' : 'black';
+                        const foreColor = feeRateObject.rateShouldMark(r.rateItem, r.value) ? 'red' : 'black';
                         me.mainFeeRateSheet.getCell(r.row, r.col).foreColor(foreColor);
                         me.mainFeeRateSheet.getCell(r.row, r.col).foreColor(foreColor);
                         feerateInfo.push({rateID:r.rateID,value:r.value});
                         feerateInfo.push({rateID:r.rateID,value:r.value});
                     }
                     }