Parcourir la source

批量归档在处理归档文本签名标记的问题

Tony Kang il y a 1 an
Parent
commit
8225ec3fa4

+ 6 - 2
app/controller/report_controller.js

@@ -1121,7 +1121,7 @@ module.exports = app => {
             }
 
             mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList);
-            mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList);
+            mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList, !!params.closeArchiveSignature, !!params.isArchive);
 
             await encodeSignatureDataUri(roleRel, this.app.baseDir);
             if (params.getPicFlag) {
@@ -1635,7 +1635,7 @@ async function getWatermarkPicData(pageRst, baseDir) {
     return rst;
 }
 
-function mergeTextSignature(isTxtSignature, status, pageData, singleRoleRel, rpt_ids, stgAudit, stageList) {
+function mergeTextSignature(isTxtSignature, status, pageData, singleRoleRel, rpt_ids, stgAudit, stageList, closeArchiveSignature = false, isArchive = false) {
     // 依据需求,有些用户不需要签名图片,那么从源头上把签名从signature_cells转移到cells下,省得后续 预览、打印、导出PDF、导出EXCEL每个地方都改动
     const _mergeSingle = function(_page, _roleRelList, isDeleteSignCell, checkAudit = false) {
         // console.log(_roleRelList);
@@ -1674,6 +1674,10 @@ function mergeTextSignature(isTxtSignature, status, pageData, singleRoleRel, rpt
                                 Value: sCell.Value,
                                 area: { Left: sCell.area.Left, Right: sCell.area.Right, Top: sCell.area.Top, Bottom: sCell.area.Bottom },
                             };
+                            if (isArchive && closeArchiveSignature) {
+                                // 如果正在归档 且 归档不显示签名标记为true时,不输出文本签名,但要有这个空格子(边框用)
+                                newCell.Value = '';
+                            }
                             page.cells.push(newCell); // 迁移
                             deleteSCellsIdx.push(scIdx);
                         }

+ 1 - 1
app/public/report/js/rpt_archive.js

@@ -148,7 +148,7 @@ let rptArchiveObj = {
     batchArchive: function() {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
             if (zTreeOprObj.checkedRptTplNodes.length <= 10) {
-                indexDbOprObj.storeReportRequest(current_stage_id, zTreeOprObj.checkedRptTplNodes, indexDbOprObj.startRequestReport);
+                indexDbOprObj.storeReportRequest(current_stage_id, zTreeOprObj.checkedRptTplNodes, true, indexDbOprObj.startRequestReport);
             } else {
                 alert('批量归档上限为10,请勾选10张以内');
             }

+ 4 - 3
app/public/report/js/rpt_indexDb.js

@@ -78,7 +78,7 @@ const indexDbOprObj = {
             }
         };
     },
-    storeReportRequest: function (stage_id, rptNodes, cb = null) {
+    storeReportRequest: function (stage_id, rptNodes, isArchive = false, cb = null) {
         if (rptNodes && rptNodes.length > 0) {
             indexDbOprObj.removeAll(()=>{
                 let datas = [];
@@ -102,13 +102,13 @@ const indexDbOprObj = {
                     console.log(rstArr);
                     //其他操作
                     if (rstArr.length > 0 && cb) {
-                        cb(stage_id, rptNodes);
+                        cb(stage_id, rptNodes, isArchive);
                     }
                 });
             });
         }
     },
-    startRequestReport: async function(stage_id, rptNodes) {
+    startRequestReport: async function(stage_id, rptNodes, isArchive = false) {
         //划重点:这里要能处理所有相关的报表请求,除非是带选择的,否则就要静悄悄地处理完,带选择的只需要选择一次同类型的!!!
         //第一步:只需要请求数据并保存
         //第二步:所有请求数据完备后,才开始转PDF并上传
@@ -145,6 +145,7 @@ const indexDbOprObj = {
             if (customSelects) await rptCustomObj.getCustomSelect(params);
             // params.customSelect = [];
             params.needWaterMark = needWaterMark;
+            params.isArchive = isArchive;
             indexDbOprObj._getRptDataForDb(params, rpt_names, stage_id, (records, rstRoleRel)=>{
                 console.log('the normal type page results have been saved!');
                 // console.log(records);

+ 4 - 0
app/public/report/js/rpt_main.js

@@ -753,6 +753,7 @@ let rptControlObj = {
         rst.custCfg = CUST_CFG;
         rst.closeWatermark = getCloseWatermark();
         rst.isTextSignature = getTxtSignature();
+        rst.closeArchiveSignature = getCloseArchiveSignature();
         rst.detail_id = DETAIL_ID;
         rst.change_id = CHANGE_ID;
         rst.business_id = BUSINESS_ID;
@@ -1491,6 +1492,9 @@ function getCloseWatermark() {
 function getTxtSignature() {
     return PAGE_SHOW['isTextSignature'];
 }
+function getCloseArchiveSignature() {
+    return PAGE_SHOW['closeArchiveSignature'];
+}
 function getCloseWatermarkForExcel() {
     if (PAGE_SHOW['closeWatermark'] === 1 || CUST_CFG.closeWarterMark) {
         return 1;