Pārlūkot izejas kodu

预付款子类型报表模板显示调整

Tony Kang 11 mēneši atpakaļ
vecāks
revīzija
571d087660
2 mainītis faili ar 40 papildinājumiem un 16 dzēšanām
  1. 22 7
      app/public/report/js/rpt_main.js
  2. 18 9
      app/view/report/index.ejs

+ 22 - 7
app/public/report/js/rpt_main.js

@@ -101,14 +101,25 @@ let zTreeOprObj = {
                 // 根据当前业务类型判断及检测其他非同类报表,如动态决算类型、支付审批类型
                 switch(currentRptType) {
                     case 'normal':
-                        if (rptItem.flags && (rptItem.flags.dynamicType || rptItem.flags.payAuditType)) {
-                            if (rptItem.flags.dynamicType && rptItem.flags.dynamicType !== 'N/A') {
-                                rst = true;
-                                break;
+                        if (rptItem.flags) {
+                            if (rptItem.flags.dynamicType || rptItem.flags.payAuditType) {
+                                if (rptItem.flags.dynamicType && rptItem.flags.dynamicType !== 'N/A') {
+                                    rst = true;
+                                    break;
+                                }
+                                if (rptItem.flags.payAuditType && rptItem.flags.payAuditType !== 'N/A') {
+                                    rst = true;
+                                    break;
+                                }
                             }
-                            if (rptItem.flags.payAuditType && rptItem.flags.payAuditType !== 'N/A') {
-                                rst = true;
-                                break;
+                        }
+                        // 检测:预付款
+                        if (CURRENT_SELECTED_BIZ_TYPE === 'change_prepay' && rptItem.nodeType === 2) {
+                            rst = true;
+                            if (rptItem.flags && rptItem.flags.rptTplType) {
+                                if (current_advance_id > 0) {
+                                    rst = !((rptItem.flags.rptTplType || '') === getAdvanceType());
+                                }
                             }
                         }
                         break;
@@ -1449,6 +1460,10 @@ function downloadReport(urls) {
     private_download();
 }
 
+function getAdvanceType() {
+    return current_advance_type || '';
+}
+
 function getStageStatus() {
     if (current_advance_id > -1 || current_material_id > 0) {
         return 3;

+ 18 - 9
app/view/report/index.ejs

@@ -38,10 +38,10 @@
                             开工预付款
                         </button>
                         <div class="dropdown-menu" aria-labelledby="allPrepayButton" id="prepay-select-item">
-                            <a class="dropdown-item" href="javascript:void(0);" data-type="start" style="display: none">开工预付款</a>
-                            <a class="dropdown-item" href="javascript:void(0);" data-type="material">材料预付款</a>
-                            <a class="dropdown-item" href="javascript:void(0);" data-type="safe">安全生产费预付款</a>
-                            <a class="dropdown-item" href="javascript:void(0);" data-type="dust">扬尘污染预付款</a>
+                            <a class="dropdown-item" href="javascript:void(0);" data-type="tplType_prePay1" style="display: none">开工预付款</a>
+                            <a class="dropdown-item" href="javascript:void(0);" data-type="tplType_prePay2">材料预付款</a>
+                            <a class="dropdown-item" href="javascript:void(0);" data-type="tplType_prePay3">安全生产费预付款</a>
+                            <a class="dropdown-item" href="javascript:void(0);" data-type="tplType_prePay4">扬尘污染预付款</a>
                         </div>
                     </div>
                 </div>
@@ -372,9 +372,9 @@
         const thisEle = ele === null ? this : ele;
         $(thisEle).hide();
         $('#prepay-select-item').siblings('button').text($(thisEle).text());
-        const type = $(thisEle).data('type');
-        const typeStr = ['start', 'material', 'safe', 'dust'];
-        const tIdx = typeStr.indexOf(type)
+        current_advance_type = $(thisEle).data('type');
+        const typeStr = ['tplType_prePay1', 'tplType_prePay2', 'tplType_prePay3', 'tplType_prePay4']; // 分别对应 开工、材料、安全生产、扬尘污染 预付款,可直接用来判断模板的flags.rptTplType属性
+        const tIdx = typeStr.indexOf(current_advance_type)
         const adList = [];
         ADVANCE_LIST.forEach(advance => {
             if (advance.type === tIdx) {
@@ -382,6 +382,7 @@
             }
         });
         buildAdvancePaySelection(adList);
+        filterReportsByType();
     }
     $('#prepay-select-item a').on('click', function (){
         advancePayClick(this);
@@ -404,11 +405,13 @@
             $('#report_selects_ul').show();
             $('#divPresets').show();
             current_advance_id = -1;
+            current_advance_type = '';
             current_material_id = -1;
             current_stage_id = bk_current_stage_id;
             // 还有归档按钮处理
             // current_stage_id
             rptArchiveObj.toggleBtn(true);
+            filterReportsByType();
         } else if (type === 'change_prepay') {
             // 预付款
             $('#divSelectableStages').hide();
@@ -434,13 +437,15 @@
             $('#divPresets').hide();
             // 要触发一下
             current_advance_id = -1;
+            current_advance_type = '';
             current_material_id = -1;
             bk_current_stage_id = current_stage_id;
             current_stage_id = -500;
             buildMaterialSelection();
             rptArchiveObj.toggleBtn(true);
+            filterReportsByType();
         }
-        filterReportsByType();
+        // filterReportsByType();
     });
 
     $.divResizer({
@@ -605,6 +610,7 @@
     let CURRENT_ROLE_REL_ID = -1;
     let current_stage_order = -1;
     let current_advance_id = -1;  // 预付款期id
+    let current_advance_type = '';// 预付款报表类型
     let current_material_id = -1; // 材差期id
     let current_stage_id = STAGE_ID;
     let bk_current_stage_id = current_stage_id;
@@ -805,7 +811,10 @@
         $("#optionSelectableAdvancePays").empty();
         $("#btnCurrentAdvancePay")[0].innerText = '';
         let hasMatch = false;
-        if (current_advance_id !== -1) {}
+        if (current_advance_id !== -1) {
+            // 这里要考虑不同预付款的切换
+            current_advance_id = -1;
+        }
         for (const advance of adList) {
             if (current_advance_id === advance.id) {
                 hasMatch = true; // 预付款有好几种类型,需要考虑不同类型的转换检测