| 
					
				 | 
			
			
				@@ -432,20 +432,21 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const roleRel = await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id, params.stage_id); // 新需求中,允许在非审核状态下设置签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const stgAuditForOrg = await ctx.service.stageAudit.getStageAudit(params.stage_id, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log('after role stage!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(roleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            mergeStampSignature(ctx, params.stage_status, pageRst, roleRel[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            mergeTextSignature(params.isTextSignature, params.stage_status, pageRst, roleRel[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            await encodeSignatureDataUri(roleRel, this.app.baseDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (params.getPicFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await encodeDummySignatureDataUri(pageRst, this.app.baseDir); // 注意草图数据量问题! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const stageFlow = await ctx.service.stageAudit.getAuditGroupByListWithOwner(params.stage_id, params.stage_times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             stageFlow.forEach(x => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!x) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 x.visible = (!ctx.session.sessionUser.is_admin && ctx.session.sessionProject.page_show.individualSign === 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ? x.aid === ctx.session.sessionUser.accountId : true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mergeStampSignature(ctx, params.stage_status, pageRst, roleRel[0], null, stgAudit, stageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mergeTextSignature(params.isTextSignature, params.stage_status, pageRst, roleRel[0], stgAudit, stageFlow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            await encodeSignatureDataUri(roleRel, this.app.baseDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (params.getPicFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await encodeDummySignatureDataUri(pageRst, this.app.baseDir); // 注意草图数据量问题! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log('encodeSignatureDataUri!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // fsUtil.writeObjToFile(pageRst, 'D:/GitHome/Temp/testBuiltPageResult2.js'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -535,7 +536,8 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log('roleRel: '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(roleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRel, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRel, params.rpt_ids, stgAudit, stageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRel, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await encodeSignatureDataUri(roleRel, this.app.baseDir); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -580,9 +582,11 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const stgAudit = (params.stage_status === 3) ? (await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // const stgAudit = (params.stage_status === 3) ? (await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const stgAuditForOrg = (params.stage_status === 3) ? (await ctx.service.stageAudit.getStageAudit(params.stage_id, 1)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const stageList = (params.stage_status === 3) ? (await ctx.service.stage.getValidStagesShort(params.tender_id)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // const stageList = (params.stage_status === 3) ? (await ctx.service.stage.getValidStagesShort(params.tender_id)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -604,7 +608,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids, stgAudit, stageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await this.ctx.helper.recursiveMkdirSync(baseDir + '/app/public/download'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -772,9 +776,9 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(`baseDir: ${baseDir}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // fsUtil.writeObjToFile(roleRelArr, 'D:/GitHome/temp/签名信息.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const stgAudit = (params.stage_status === 3) ? (await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const stgAuditForOrg = (params.stage_status === 3) ? (await ctx.service.stageAudit.getStageAudit(params.stage_id, 1)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const stageList = (params.stage_status === 3) ? (await ctx.service.stage.getValidStagesShort(params.tender_id)) : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stgAuditForOrg = await ctx.service.stageAudit.getStageAudit(params.stage_id, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const stageList = await ctx.service.stage.getValidStagesShort(params.tender_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/pageRstArrForExcel.js'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -792,7 +796,7 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     waterMarkStr = await getWatermarkPicData(pageRstArr[0], this.app.baseDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mergeStampSignature(ctx, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids, stgAudit, stageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const runnableRst = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1553,8 +1557,37 @@ function mergeTextSignature(isTxtSignature, status, pageData, singleRoleRel, rpt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function _chkIfAudit(role_rel, STAGE_AUDIT, STAGE_LIST) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let rst = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (const stg_audit of STAGE_AUDIT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (role_rel.acc_id === stg_audit.aid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (stg_audit.status === 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!rst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 还有原报需要检测 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (const stg_ort_rpt of STAGE_LIST) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (role_rel.acc_id === stg_ort_rpt.aid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (stg_ort_rpt.status === 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rst = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // rst = true; //测试,未来将屏蔽 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 因机制问题,此方法必须在mergeTextSignature之前调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids, stgAudit, stageList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const dupPicPaths = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const _getMaxRect = function(page) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const rect = [100000000, 100000000, 0, 0]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1631,7 +1664,7 @@ async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const _mergeSingleStamp = async function(_page, _roleRelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const _mergeSingleStamp = async function(_page, _roleRelList, checkAudit = false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let roleRelContent = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (_roleRelList && _roleRelList.rel_content !== null && _roleRelList.rel_content !== undefined && _roleRelList.rel_content !== '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             roleRelContent = JSON.parse(_roleRelList.rel_content); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1644,40 +1677,42 @@ async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const sCell = page.signature_cells[scIdx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (const role_rel of roleRelContent) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (sCell.signature_name === role_rel.signature_name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (Array.isArray(role_rel.sign_output) && role_rel.sign_output.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                for (const signType of role_rel.sign_output) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    switch (signType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        case COMPANY_SIGN_STR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        case PRIVATE_SIGN_STR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            // 创建一个新的cell 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            let stampPath = (signType === COMPANY_SIGN_STR) ? role_rel.company_stamp_path : role_rel.private_stamp_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            stampPath = ctx.app.config.fujianOssPath + stampPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            if (dupPicPaths.indexOf(stampPath) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                dupPicPaths.push(stampPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                // await _chkRawPicSizeOSS(ctx, stampPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            // 保存在签字信息中的签章信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            let signatureArea; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            if (role_rel.areaData && role_rel.areaData[signType]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                signatureArea = role_rel.areaData[signType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            const newStampCell = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                signature_name: JV.SIGNATURE_NAME_DUMMY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                control: sCell.control, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                style: sCell.style, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                path: stampPath, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                isStamp: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                maxRect, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                orgArea: sCell.area, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                area: signatureArea || createStampArea(sCell, _page[JV.NODE_CONTROL_COLLECTION], maxRect), // 有签章信息就直接取,没有的话就走原来的逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                signatureName: role_rel.signature_name, // 节点名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                signType, // 签章信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                isSaveSignature: !!signatureArea, // 是否有签章位置信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            newStampCells.push(newStampCell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        default: break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (!checkAudit || _chkIfAudit(role_rel, stgAudit, stageList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (Array.isArray(role_rel.sign_output) && role_rel.sign_output.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    for (const signType of role_rel.sign_output) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        switch (signType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            case COMPANY_SIGN_STR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            case PRIVATE_SIGN_STR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                // 创建一个新的cell 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                let stampPath = (signType === COMPANY_SIGN_STR) ? role_rel.company_stamp_path : role_rel.private_stamp_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                stampPath = ctx.app.config.fujianOssPath + stampPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                if (dupPicPaths.indexOf(stampPath) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    dupPicPaths.push(stampPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    // await _chkRawPicSizeOSS(ctx, stampPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                // 保存在签字信息中的签章信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                let signatureArea; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                if (role_rel.areaData && role_rel.areaData[signType]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    signatureArea = role_rel.areaData[signType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                const newStampCell = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    signature_name: JV.SIGNATURE_NAME_DUMMY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    control: sCell.control, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    style: sCell.style, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    path: stampPath, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    isStamp: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    maxRect, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    orgArea: sCell.area, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    area: signatureArea || createStampArea(sCell, _page[JV.NODE_CONTROL_COLLECTION], maxRect), // 有签章信息就直接取,没有的话就走原来的逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    signatureName: role_rel.signature_name, // 节点名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    signType, // 签章信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    isSaveSignature: !!signatureArea, // 是否有签章位置信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                newStampCells.push(newStampCell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            default: break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1690,21 +1725,19 @@ async function mergeStampSignature(ctx, status, pageData, singleRoleRel, rpt_ids 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (status === 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (pageData instanceof Array) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            pageData.forEach((dtlPage, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let dftRolRel = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const rpt_id = rpt_ids[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                for (const roleRel of singleRoleRel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (roleRel.rpt_id === rpt_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        dftRolRel = roleRel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (pageData instanceof Array) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageData.forEach((dtlPage, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let dftRolRel = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const rpt_id = rpt_ids[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const roleRel of singleRoleRel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (roleRel.rpt_id === rpt_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dftRolRel = roleRel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _mergeSingleStamp(dtlPage, dftRolRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _mergeSingleStamp(pageData, singleRoleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _mergeSingleStamp(dtlPage, dftRolRel, status !== 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _mergeSingleStamp(pageData, singleRoleRel, status !== 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |