소스 검색

动态投资签名输出问题

Tony Kang 1 년 전
부모
커밋
7be73a78c7
3개의 변경된 파일23개의 추가작업 그리고 109개의 파일을 삭제
  1. 8 96
      app/public/report/js/rpt_jsexcel.js
  2. 6 2
      app/public/report/js/rpt_main.js
  3. 9 11
      app/public/report/js/rpt_signature.js

+ 8 - 96
app/public/report/js/rpt_jsexcel.js

@@ -1221,102 +1221,6 @@ function mergeProperties(orgObj, newObj) {
     }
 }
 
-async function resetDummySignature(pageData, roleRel) {
-    // 备注:计算草图等其他图形需要额外做些处理
-    let dummySignIdx = 0;
-    const stampPicKeys = [], stampPicFeatures = [];
-    const _resetStampArea = function(stampCell, roleRelItem) {
-        const ctrl = pageData[JV.NODE_CONTROL_COLLECTION][stampCell[JV.PROP_CONTROL]];
-        const rst = { Left: stampCell.area.Left, Right: stampCell.area.Right, Top: stampCell.area.Top, Bottom: stampCell.area.Bottom };
-        let pLeft = stampCell.orgArea.Left,
-            pTop = stampCell.orgArea.Top;
-        let std_stamp_size_width = STD_COMP_STAMP_SIZE_WIDTH, std_stamp_size_height = STD_COMP_STAMP_SIZE_HEIGHT;
-        if (roleRelItem.stampFeature) {
-            std_stamp_size_width = parseFloat(roleRelItem.stampFeature.ImageWidth.value);
-            std_stamp_size_height = parseFloat(roleRelItem.stampFeature.ImageHeight.value);
-        }
-        switch (ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]]) {
-            case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_LEFT]:
-                pLeft = stampCell.orgArea.Left;
-                break;
-            case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_CENTER]:
-                pLeft = (stampCell.orgArea.Left + stampCell.orgArea.Right - std_stamp_size_width) / 2;
-                break;
-            case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_RIGHT]:
-                pLeft = stampCell.orgArea.Right - std_stamp_size_width;
-                break;
-            default:break;
-        }
-        switch (ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]]) {
-            case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_TOP]:
-                pTop = stampCell.orgArea.Top;
-                break;
-            case JV.OUTPUT_ALIGN.H[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]:
-                pTop = stampCell.orgArea.Bottom - std_stamp_size_height;
-                break;
-            default:break;
-        }
-        stampCell.area.Left = pLeft;
-        stampCell.area.Top = pTop;
-        stampCell.area.Right = pLeft + std_stamp_size_width;
-        stampCell.area.Bottom = pTop + std_stamp_size_height;
-        // 最后一步,如超过报表范围,则要调整坐标
-        // const maxRect = stampCell.maxRect;
-        // if (rst.Left < maxRect[0]) {
-        //     const width = maxRect[0] - rst.Left;
-        //     rst.Left += width;
-        //     rst.Right += width;
-        // }
-        // if (rst.Top < maxRect[1]) {
-        //     const height = maxRect[1] - rst.Top;
-        //     rst.Top += height;
-        //     rst.Bottom += height;
-        // }
-        // if (rst.Right > maxRect[2]) {
-        //     const width = maxRect[2] - rst.Right; // 负
-        //     rst.Left += width;
-        //     rst.Right += width;
-        // }
-        // if (rst.Bottom > maxRect[3]) {
-        //     const height = maxRect[3] - rst.Bottom;
-        //     rst.Top += height;
-        //     rst.Bottom += height;
-        // }
-        return rst;
-    };
-    for (let pageIdx = 0; pageIdx < pageData.items.length; pageIdx++) {
-        const page = pageData.items[pageIdx];
-        if (page[JV.PROP_SIGNATURE_CELLS] && page[JV.PROP_SIGNATURE_CELLS].length > 0) {
-            for (const signatureCell of page[JV.PROP_SIGNATURE_CELLS]) {
-                if (signatureCell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
-                    // 表示这是一个其他类型的非原生电子签名图,只是借用signature的处理机制,每个图都是唯一的,所以需要重新给个唯一的新signature_name
-                    // signatureCell.signature_name = signatureCell.signature_name + '_' + pageIdx + '_' + dummySignIdx;
-                    signatureCell.signature_name = signatureCell.signature_name + '_' + page.page_seq + '_' + dummySignIdx; // page_seq在分页后都不会变动
-                    dummySignIdx++;
-                    const roleRelItem = { type: '用户', sign_path: signatureCell.path, signature_name: signatureCell.signature_name };
-                    if (signatureCell.isStamp) {
-                        let stmpIdx = stampPicKeys.indexOf(signatureCell.path);
-                        if (stampPicKeys.indexOf(signatureCell.path) < 0) {
-                            stampPicKeys.push(signatureCell.path);
-                            stmpIdx = stampPicKeys.length - 1;
-                            const picRes = await getHttpBlobText(signatureCell.path + '?x-oss-process=image/info');
-                            stampPicFeatures.push(picRes);
-                        }
-                        // { "FileSize": {"value": "2514"}, "Format": {"value": "png"}, "ImageHeight": {"value": "94"}, "ImageWidth": {"value": "94"} }
-                        roleRelItem.stampFeature = stampPicFeatures[stmpIdx];
-                        // 重新处理cell坐标
-                        _resetStampArea(signatureCell, roleRelItem);
-                    }
-                    roleRel.push(roleRelItem);
-                }
-            }
-        }
-    }
-}
-
 function _createDummyCell(dummyOrgCells, parentPage) {
     for (const signature of dummyOrgCells) {
         if (!signature.isStamp) {
@@ -1687,6 +1591,14 @@ const excelExportUtil = {
                             }
                             cell[JV.PROP_AREA][JV.PROP_BOTTOM] += offsetY;
                             cell[JV.PROP_AREA][JV.PROP_TOP] += offsetY;
+                            if (cell.orgArea) {
+                                cell.orgArea[JV.PROP_BOTTOM] += offsetY;
+                                cell.orgArea[JV.PROP_TOP] += offsetY;
+                            }
+                            if (cell.maxRect) {
+                                cell.maxRect[JV.IDX_TOP] += offsetY;
+                                cell.maxRect[JV.IDX_BOTTOM] += offsetY;
+                            }
                         }
                     }
                 };

+ 6 - 2
app/public/report/js/rpt_main.js

@@ -1351,8 +1351,12 @@ function downloadReport(urls) {
 
 function getStageStatus() {
     let ppStatus = zTreeOprObj._chkPrePayStatus();
-    if (ppStatus === 3) return ppStatus
-    else return current_stage_status;
+    if (ppStatus === 3) {
+        return ppStatus
+    } else {
+        if (STAGE_ID === -200) return 3
+        else return current_stage_status;
+    }
 }
 
 function getStageId() {

+ 9 - 11
app/public/report/js/rpt_signature.js

@@ -414,7 +414,7 @@ let rptSignatureHelper = {
         ROLE_REL_LIST = JSON.parse(JSON.stringify(rptSignatureHelper.originalRoleRelList));
         if (PAGE_SHOW.isTextSignature) {
             // resetTextSignature(zTreeOprObj.currentRptPageRst);
-            resetTextSignature(zTreeOprObj.currentRptPageRst, current_stage_status !== 3);
+            resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
         }
         zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
     },
@@ -455,7 +455,7 @@ let rptSignatureHelper = {
         rptSignatureHelper.resetSignDate(signatureDivId);
         rptSignatureHelper.resetSignAudit();
         //1. 重刷page
-        if (current_stage_status === 3) {
+        if (getStageStatus() === 3) {
             for (const page of zTreeOprObj.currentRptPageRst.items) {
                 if (page.signature_cells) {
                     for (const sCell of page.signature_cells) {
@@ -467,7 +467,7 @@ let rptSignatureHelper = {
                 }
             }
             if (PAGE_SHOW.isTextSignature) {
-                resetTextSignature(zTreeOprObj.currentRptPageRst, current_stage_status !== 3);
+                resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
             }
             zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
         }
@@ -532,13 +532,11 @@ let rptSignatureHelper = {
                 }
             }
         }
-        resetStampSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, current_stage_status !== 3);
+        resetStampSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
         if (PAGE_SHOW.isTextSignature) {
-            resetTextSignature(zTreeOprObj.currentRptPageRst, current_stage_status !== 3);
+            resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
         }
         zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
-        // if (current_stage_status === 3) {
-        // }
         //2. 更新数据
         const params = {};
         params.id = CURRENT_ROLE_REL_ID;
@@ -567,10 +565,10 @@ let rptSignatureHelper = {
                     // 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, current_stage_status !== 3);
-                    rptSignatureHelper.mergeSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, current_stage_status !== 3);
-                    await rptSignatureHelper.resetDummySignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, current_stage_status !== 3); // 这里重新整理签章坐标信息(因签章大小在后台暂时获取不到,挪到前端处理)
-                    rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT, current_stage_status !== 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);
                     zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
                 } else {
                     // CURRENT_ROLE_REL_ID = -1;