Browse Source

批量设置变更令后实时刷新当前页面

Tony Kang 1 year ago
parent
commit
8ba2e4bc67
2 changed files with 45 additions and 94 deletions
  1. 10 12
      app/controller/report_controller.js
  2. 35 82
      app/public/report/js/rpt_signature.js

+ 10 - 12
app/controller/report_controller.js

@@ -1768,18 +1768,16 @@ async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids
     const _getMaxRect = function(page) {
         const rect = [100000000, 100000000, 0, 0];
         for (const cell of page.cells) {
-            if (rect[0] > cell.area.Left) {
-                rect[0] = cell.area.Left;
-            }
-            if (rect[1] > cell.area.Top) {
-                rect[1] = cell.area.Top;
-            }
-            if (rect[2] < cell.area.Right) {
-                rect[2] = cell.area.Right;
-            }
-            if (rect[3] < cell.area.Bottom) {
-                rect[3] = cell.area.Bottom;
-            }
+            rect[0] = rect[0] > cell.area.Left ? cell.area.Left : rect[0];
+            rect[1] = rect[1] > cell.area.Top ? cell.area.Top : rect[1];
+            rect[2] = rect[2] < cell.area.Right ? cell.area.Right : rect[2];
+            rect[3] = rect[3] < cell.area.Bottom ? cell.area.Bottom : rect[3];
+        }
+        for (const sCell of page.signature_cells) {
+            rect[0] = rect[0] > sCell.area.Left ? sCell.area.Left : rect[0];
+            rect[1] = rect[1] > sCell.area.Top ? sCell.area.Top : rect[1];
+            rect[2] = rect[2] < sCell.area.Right ? sCell.area.Right : rect[2];
+            rect[3] = rect[3] < sCell.area.Bottom ? sCell.area.Bottom : rect[3];
         }
         return rect;
     };

+ 35 - 82
app/public/report/js/rpt_signature.js

@@ -475,27 +475,33 @@ let rptSignatureHelper = {
         }
     },
 
-    _operationBefore: function(signatureDivId) {
+    _commonRefreshAfterSelectSignature: async function(signatureDivId) {
         //0. 签名日期
         rptSignatureHelper.resetSignDate(signatureDivId);
         rptSignatureHelper.resetSignAudit();
-        //1. 重刷page
-        if (getStageStatus() === 3) {
-            for (const page of zTreeOprObj.currentRptPageRst.items) {
-                if (page.signature_cells) {
-                    for (const sCell of page.signature_cells) {
-                        if (sCell.hasOwnProperty('pre_path')) {
-                            sCell.path = sCell.pre_path;
-                            delete sCell.pre_path;
-                        }
+        //1. 重刷page(不用考虑审核状态)
+        for (const page of zTreeOprObj.currentRptPageRst.items) {
+            if (page.signature_cells) {
+                for (let cIdx = page.signature_cells.length - 1; cIdx >= 0; cIdx--) {
+                    const sCell = page.signature_cells[cIdx];
+                    if (sCell.isStamp) {
+                        page.signature_cells.splice(cIdx);
+                    } else if (sCell.hasOwnProperty('pre_path')) {
+                        sCell.path = sCell.pre_path;
+                        delete sCell.pre_path;
                     }
                 }
             }
-            if (PAGE_SHOW.isTextSignature) {
-                resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
-            }
-            zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
         }
+        resetStampSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
+        rptSignatureHelper.mergeSignDate(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
+        rptSignatureHelper.mergeSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
+        await rptSignatureHelper.resetDummySignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
+        // rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT, getStageStatus() !== 3);
+        if (PAGE_SHOW.isTextSignature) {
+            resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
+        }
+        zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
     },
 
     _getCommonParams: function() {
@@ -512,7 +518,7 @@ let rptSignatureHelper = {
 
     setupAfterSelectMultiChanges: async function (selectedChanges, signatureDivId) {
         // 多变更令选择
-        this._operationBefore(signatureDivId);
+        await this._commonRefreshAfterSelectSignature(signatureDivId);
         const params = this._getCommonParams();
         params.selectedChanges = selectedChanges;
         const new_ROLE_REL_LIST = JSON.parse(JSON.stringify(ROLE_REL_LIST));
@@ -536,9 +542,9 @@ let rptSignatureHelper = {
     },
 
 
-    setupAfterSelectMultiTenders: function (selectedTenders, signatureDivId) {
+    setupAfterSelectMultiTenders: async function (selectedTenders, signatureDivId) {
         // 跨标段选择,有不少要注意的交互:
-        this._operationBefore(signatureDivId);
+        await this._commonRefreshAfterSelectSignature(signatureDivId);
         //2. 集中请求
         const params = this._getCommonParams();
         params.selectedTenders = selectedTenders;
@@ -571,49 +577,9 @@ let rptSignatureHelper = {
     setupAfterSelectSignature: async function (signatureDivId) {
         //0. 签名日期
         let me = rptSignatureHelper;
-        rptSignatureHelper.resetSignDate(signatureDivId);
-        rptSignatureHelper.resetSignAudit();
-        //1. 重刷page
-        // let hasStamp = false;
-        for (const page of zTreeOprObj.currentRptPageRst.items) {
-            if (page.signature_cells) {
-                for (let cIdx = page.signature_cells.length - 1; cIdx >= 0; cIdx--) {
-                    const sCell = page.signature_cells[cIdx];
-                    if (sCell.isStamp) {
-                        page.signature_cells.splice(cIdx);
-                        // hasStamp = true;
-                    } else if (sCell.hasOwnProperty('pre_path')) {
-                        sCell.path = sCell.pre_path;
-                        delete sCell.pre_path;
-                    }
-                    for (let role of ROLE_REL_LIST) {
-
-                    }
-                }
-            }
-        }
-        resetStampSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
-        if (PAGE_SHOW.isTextSignature) {
-            resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
-        }
-        zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
+        await this._commonRefreshAfterSelectSignature(signatureDivId);
         //2. 更新数据
-        const params = {};
-        params.id = CURRENT_ROLE_REL_ID;
-        params.tender_id = TENDER_ID;
-        params.stage_id = getStageId();
-        params.business_id = BUSINESS_ID;
-        params.source_type = SOURCE_TYPE;
-        params.rpt_id = zTreeOprObj.currentNode.refId;
-        params.rel_content = ROLE_REL_LIST;
-        params.rel_content = [];
-        ROLE_REL_LIST.forEach((role) => {
-            if (role.signature_name.indexOf('dummy_pic') < 0) {
-                params.rel_content.push(role);
-            }
-        });
-        // rptSignatureHelper.originalRoleRelList = [];
-        // rptSignatureHelper.originalRoleRelList = rptSignatureHelper.originalRoleRelList.concat(ROLE_REL_LIST);
+        const params = this._getCommonParams();
         rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(params.rel_content));
         $.bootstrapLoading.start();
         CommonAjax.postXsrfEx("/tender/report_api/updateRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
@@ -624,14 +590,9 @@ let rptSignatureHelper = {
                     CURRENT_ROLE_REL_ID = result.data.insertId;
                 }
                 if (result.signatureRelInfo && result.signatureRelInfo.length > 0) {
-                    // CURRENT_ROLE_REL_ID = result.signatureRelInfo[0].id;
+                    CURRENT_ROLE_REL_ID = result.signatureRelInfo[0].id;
                     ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
-                    rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
-                    rptSignatureHelper.mergeSignDate(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
-                    rptSignatureHelper.mergeSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
-                    await rptSignatureHelper.resetDummySignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3); // 这里重新整理签章坐标信息(因签章大小在后台暂时获取不到,挪到前端处理)
-                    rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT, getStageStatus() !== 3);
-                    zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
+                    // 原本要刷新的,但在前面的_commonRefreshAfterSelectSignature方法中已经处理好了,无需重复
                 } else {
                     // CURRENT_ROLE_REL_ID = -1;
                     ROLE_REL_LIST = [];
@@ -1137,18 +1098,10 @@ function resetStampSignature(pageData, roleRelList, checkAudit = false) {
     const _getMaxRect = function(page) {
         const rect = [100000000, 100000000, 0, 0];
         for (const cell of page.cells) {
-            if (rect[0] > cell.area.Left) {
-                rect[0] = cell.area.Left;
-            }
-            if (rect[1] > cell.area.Top) {
-                rect[1] = cell.area.Top;
-            }
-            if (rect[2] < cell.area.Right) {
-                rect[2] = cell.area.Right;
-            }
-            if (rect[3] < cell.area.Bottom) {
-                rect[3] = cell.area.Bottom;
-            }
+            rect[0] = rect[0] > cell.area.Left ? cell.area.Left : rect[0];
+            rect[1] = rect[1] > cell.area.Top ? cell.area.Top : rect[1];
+            rect[2] = rect[2] < cell.area.Right ? cell.area.Right : rect[2];
+            rect[3] = rect[3] < cell.area.Bottom ? cell.area.Bottom : rect[3];
         }
         return rect;
     };
@@ -1175,7 +1128,7 @@ function resetStampSignature(pageData, roleRelList, checkAudit = false) {
                                             }
                                             // 签字信息中如果有签章位置信息,则直接用位置信息
                                             let signatureArea;
-                                            if(role_rel.areaData&&role_rel.areaData[signType]){
+                                            if (role_rel.areaData && role_rel.areaData[signType]){
                                                 signatureArea =  role_rel.areaData[signType]
                                             }
                                             const newStampCell = {
@@ -1300,13 +1253,13 @@ function _resetStampArea(ctrl, stampCell, roleRelItem) {
             default:break;
         }
         switch (ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]]) {
-            case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_TOP]:
+            case JV.OUTPUT_ALIGN.V[JV.V_ALIGN_IDX_TOP]:
                 pTop = stampCell.orgArea.Top;
                 break;
-            case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_CENTER]:
+            case JV.OUTPUT_ALIGN.V[JV.V_ALIGN_IDX_CENTER]:
                 pTop = (stampCell.orgArea.Top + stampCell.orgArea.Bottom - std_stamp_size_height) / 2;
                 break;
-            case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_BOTTOM]:
+            case JV.OUTPUT_ALIGN.V[JV.V_ALIGN_IDX_BOTTOM]:
                 pTop = stampCell.orgArea.Bottom - std_stamp_size_height;
                 break;
             default:break;