Browse Source

文本签名交互bug

TonyKang 3 years ago
parent
commit
ea51775e34
1 changed files with 51 additions and 3 deletions
  1. 51 3
      app/public/report/js/rpt_signature.js

+ 51 - 3
app/public/report/js/rpt_signature.js

@@ -382,6 +382,9 @@ let rptSignatureHelper = {
         // ROLE_REL_LIST = [];
         // ROLE_REL_LIST = ROLE_REL_LIST.concat(rptSignatureHelper.originalRoleRelList);
         ROLE_REL_LIST = JSON.parse(JSON.stringify(rptSignatureHelper.originalRoleRelList));
+        if (PAGE_SHOW.isTextSignature) {
+            resetTextSignature(zTreeOprObj.currentRptPageRst);
+        }
         zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
     },
     resetSignAudit: function () {
@@ -432,6 +435,9 @@ let rptSignatureHelper = {
                     }
                 }
             }
+            if (PAGE_SHOW.isTextSignature) {
+                resetTextSignature(zTreeOprObj.currentRptPageRst);
+            }
             zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
         }
         //2. 集中请求
@@ -484,6 +490,9 @@ let rptSignatureHelper = {
                     }
                 }
             }
+            if (PAGE_SHOW.isTextSignature) {
+                resetTextSignature(zTreeOprObj.currentRptPageRst);
+            }
             zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
         }
         //2. 更新数据
@@ -516,9 +525,9 @@ let rptSignatureHelper = {
                     ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
                     rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
                     if (current_stage_status === 3) {
-                        rptSignatureHelper.mergeSignDate(pageRst, ROLE_REL_LIST, true);
-                        rptSignatureHelper.mergeSignature(pageRst, ROLE_REL_LIST);
-                        rptSignatureHelper.mergeSignAudit(pageRst, ROLE_REL_LIST, STAGE_AUDIT);
+                        rptSignatureHelper.mergeSignDate(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true);
+                        rptSignatureHelper.mergeSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST);
+                        rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT);
                     }
                 } else {
                     // CURRENT_ROLE_REL_ID = -1;
@@ -779,3 +788,42 @@ function _getSignDateByAllScenarios(userAccId) {
 function _getSignDateDftName() {
     return '    年  月  日';
 }
+
+function resetTextSignature(pageData) {
+    for (const page of pageData.items) {
+        for (let sCell of page.signature_cells) {
+            let fitCell = null;
+            for (let idx = page.cells.length - 1; idx >= 0; idx--) {
+                const cell = page.cells[idx];
+                if (sCell.area.Left === cell.area.Left && sCell.area.Right === cell.area.Right && sCell.area.Top === cell.area.Top && sCell.area.Bottom === cell.area.Bottom) {
+                    fitCell = cell;
+                    break;
+                }
+            }
+            if (fitCell) {
+                fitCell.Value = '';
+                for (let role of ROLE_REL_LIST) {
+                    if (sCell.signature_name === role.signature_name) {
+                        fitCell.Value = role.user_name;
+                        break;
+                    }
+                }
+            } else {
+                // 要创建新的文本签名cell
+                for (let role of ROLE_REL_LIST) {
+                    if (sCell.signature_name === role.signature_name) {
+                        const newCell = {
+                            font: 'Footer',
+                            control: sCell.control,
+                            style: sCell.style,
+                            Value: role.user_name,
+                            area: { Left: sCell.area.Left, Right: sCell.area.Right, Top: sCell.area.Top, Bottom: sCell.area.Bottom },
+                        };
+                        page.cells.push(newCell);
+                        break;
+                    }
+                }
+            }
+        }
+    }
+}