Parcourir la source

清单汇总,显示调整

maixinrong il y a 5 ans
Parent
commit
d5c3e47675
1 fichiers modifiés avec 11 ajouts et 13 suppressions
  1. 11 13
      app/public/js/stage_gather.js

+ 11 - 13
app/public/js/stage_gather.js

@@ -53,7 +53,9 @@ $(document).ready(function () {
     // 初始化工程量清单
     const gclSpread = SpreadJsObj.createNewSpread($('#gcl-spread')[0]);
     gclSpreadSetting.getColor = function (sheet, data, col, defaultColor) {
-        return data && data.differ ? '#FFE699' : defaultColor;
+        return data 
+            ? (data.overRange ? '#f8d7da' : data.differ ? '#FFE699' : defaultColor)
+            : defaultColor;
     }
     SpreadJsObj.initSheet(gclSpread.getActiveSheet(), gclSpreadSetting);
     // 初始化所属项目节
@@ -95,13 +97,10 @@ $(document).ready(function () {
         }
     }
     // 超计显示
-    function checkOverRange() {
-        const sheet = gclSpread.getActiveSheet();
+    function checkOverRange(data) {
         const bQty = $('#customRadio1')[0].checked, bDealQty = $('#customRadio2')[0].checked;
         const nPercent = Math.min(Math.max(ZhCalc.div(parseFloat($('#over-percent').val()), 100), 0.5), 1);
-        SpreadJsObj.beginMassOperation(sheet);
-        for (let iRow = 0, iLength = sheet.getRowCount(); iRow < iLength; iRow++) {
-            const node = sheet.zh_data[iRow];
+        for (const node of data) {
             if (node) {
                 const bOverRangeTz = node.end_gather_qty
                     ? (node.quantity ? node.end_gather_qty > ZhCalc.mul(node.quantity, nPercent) : node.end_gather_qty)
@@ -109,17 +108,14 @@ $(document).ready(function () {
                 const bOverRangeDeal = node.end_gather_qty
                     ? (node.deal_bills_qty ? node.end_gather_qty > ZhCalc.mul(node.deal_bills_qty, nPercent) : node.end_gather_qty)
                     : (node.deal_bills_tp ? node.end_gather_tp > ZhCalc.mul(node.deal_bills_tp, nPercent) : node.end_gather_tp);
-                const bOverRange = bQty ? bOverRangeTz : (bDealQty ? bOverRangeDeal : bOverRangeTz || bOverRangeDeal);
-                const color = bOverRange ? '#f8d7da' : '';
-                sheet.getRange(iRow, -1, 1, -1).backColor(color);
+                node.overRange = bQty ? bOverRangeTz : (bDealQty ? bOverRangeDeal : bOverRangeTz || bOverRangeDeal);
             }
         }
-        SpreadJsObj.endMassOperation(sheet);
     }
     // 加载清单数据
+    checkOverRange(gclGatherData);
     SpreadJsObj.loadSheetData(gclSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gclGatherData);
     loadLeafXmjData(0);
-    checkOverRange();
     // 切换清单行,读取所属项目节数据
     gclSpread.getActiveSheet().bind(spreadNS.Events.SelectionChanged, function (e, info) {
         const iOldRow = info.oldSelections[0].row, iNewRow = info.newSelections[0].row;
@@ -129,14 +125,16 @@ $(document).ready(function () {
     });
     $('.custom-radio').click(() => {
         setLocalCache('StageGatherOverType', $('input[name=customRadio]:checked').attr('id'));
-        checkOverRange();
+        checkOverRange(gclGatherData);
+        SpreadJsObj.reloadSheetData(gclSpread.getActiveSheet());
         // 收起菜单
         $('.dropdown-menu').click();
     });
     $('#over-percent').change(function () {
         this.value = this.value >= 50 ? (this.value <= 100 ? ZhCalc.round(this.value, 2) : 100) : 50;
         setLocalCache('StageGatherOverPercent', this.value);
-        checkOverRange();
+        checkOverRange(gclGatherData);
+        SpreadJsObj.reloadSheetData(gclSpread.getActiveSheet());
     });
     const chapterData = gclGatherModel.gatherChapterData(chapter, ['total_price', 'contract_tp', 'qc_tp', 'pre_contract_tp', 'pre_qc_tp']);
     for (const c of chapterData) {