|
@@ -401,6 +401,7 @@ module.exports = app => {
|
|
|
const stgAuditForOrg = await ctx.service.stageAudit.getStageAudit(params.stage_id, 1);
|
|
|
// console.log('after role stage!');
|
|
|
// console.log(roleRel);
|
|
|
+ mergeTextSignature(params.isTextSignature, params.stage_status, pageRst, roleRel[0]);
|
|
|
await encodeSignatureDataUri(roleRel, this.app.baseDir);
|
|
|
if (params.getPicFlag) {
|
|
|
await encodeDummySignatureDataUri(pageRst, this.app.baseDir); // 注意草图数据量问题!
|
|
@@ -509,6 +510,8 @@ module.exports = app => {
|
|
|
});
|
|
|
// console.log('roleRel: ');
|
|
|
// console.log(roleRel);
|
|
|
+ mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRel, params.rpt_ids);
|
|
|
+
|
|
|
await encodeSignatureDataUri(roleRel, this.app.baseDir);
|
|
|
if (params.getPicFlag) {
|
|
|
for (const pageRst of pageRstArr) {
|
|
@@ -575,6 +578,8 @@ module.exports = app => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids);
|
|
|
+
|
|
|
await this.ctx.helper.recursiveMkdirSync(baseDir + '/app/public/download');
|
|
|
|
|
|
const runnableRst = [];
|
|
@@ -760,6 +765,7 @@ module.exports = app => {
|
|
|
waterMarkStr = await getWatermarkPicData(pageRstArr[0], this.app.baseDir);
|
|
|
}
|
|
|
}
|
|
|
+ mergeTextSignature(params.isTextSignature, params.stage_status, pageRstArr, roleRelArr, params.rpt_ids);
|
|
|
await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
|
const runnableRst = [];
|
|
|
let rptRoleRelArr = [];
|
|
@@ -1427,6 +1433,71 @@ async function createExportRequestJob(ctx) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function mergeTextSignature(isTxtSignature, status, pageData, singleRoleRel, rpt_ids) {
|
|
|
+ // 依据需求,有些用户不需要签名图片,那么从源头上把签名从signature_cells转移到cells下,省得后续 预览、打印、导出PDF、导出EXCEL每个地方都改动
|
|
|
+ const _mergeSingle = function(_page, _roleRelList, isDeleteSignCell) {
|
|
|
+ // console.log(_roleRelList);
|
|
|
+ let roleRelContent = [];
|
|
|
+ if (_roleRelList && _roleRelList.rel_content !== null && _roleRelList.rel_content !== undefined && _roleRelList.rel_content !== '') {
|
|
|
+ roleRelContent = JSON.parse(_roleRelList.rel_content);
|
|
|
+ };
|
|
|
+ for (const page of _page.items) {
|
|
|
+ if (page.signature_cells) {
|
|
|
+ const deleteSCellsIdx = [];
|
|
|
+ for (let scIdx = 0; scIdx < page.signature_cells.length; scIdx++) {
|
|
|
+ const sCell = page.signature_cells[scIdx];
|
|
|
+ sCell.Value = ''; // 这里要先清除原有信息
|
|
|
+ if (sCell.signature_name !== JV.SIGNATURE_NAME_DUMMY) {
|
|
|
+ // console.log(sCell);
|
|
|
+ sCell.path = '';
|
|
|
+ sCell.pic = '';
|
|
|
+ }
|
|
|
+ for (const role_rel of roleRelContent) {
|
|
|
+ if (sCell.signature_name === role_rel.signature_name) {
|
|
|
+ if (status === 3) {
|
|
|
+ sCell.Value = role_rel.user_name; // 只有审核通过了才需要文本签名内容,但不管如何,都不影响迁移
|
|
|
+ }
|
|
|
+ const newCell = {
|
|
|
+ font: 'Footer',
|
|
|
+ control: sCell.control,
|
|
|
+ style: sCell.style,
|
|
|
+ Value: sCell.Value,
|
|
|
+ area: { Left: sCell.area.Left, Right: sCell.area.Right, Top: sCell.area.Top, Bottom: sCell.area.Bottom },
|
|
|
+ };
|
|
|
+ page.cells.push(newCell); // 迁移
|
|
|
+ deleteSCellsIdx.push(scIdx);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 删除 page.signature_cells 签名(草图不能删);
|
|
|
+ if (isDeleteSignCell) {
|
|
|
+ for (let dIdx = deleteSCellsIdx.length - 1; dIdx >= 0; dIdx--) {
|
|
|
+ page.signature_cells.splice(deleteSCellsIdx[dIdx], 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ if (isTxtSignature) {
|
|
|
+ if (pageData instanceof Array) {
|
|
|
+ pageData.forEach((dtlPage, index) => {
|
|
|
+ let dftRolRel = [];
|
|
|
+ const rpt_id = rpt_ids[index];
|
|
|
+ for (let roleRel of singleRoleRel) {
|
|
|
+ if (roleRel.rpt_id === rpt_id) {
|
|
|
+ dftRolRel = roleRel;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // console.log(rptTpls[rtIdx].id)
|
|
|
+ _mergeSingle(dtlPage, dftRolRel, true);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ _mergeSingle(pageData, singleRoleRel, false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function mergeSignAudit(pageData, currRoleRelList, currAuditList) {
|
|
|
for (const page of pageData.items) {
|
|
|
if (page.signature_audit_cells) {
|
|
@@ -1543,7 +1614,7 @@ async function _chkRawPicSize(pageData, baseDir) {
|
|
|
for (let ci = 0; ci < pageData.items[pi][JV.PROP_SIGNATURE_CELLS].length; ci++) {
|
|
|
const picPath = pageData.items[pi][JV.PROP_SIGNATURE_CELLS][ci].path;
|
|
|
// if (picPath && picPath.indexOf('/sign') < 0 && picKeys.indexOf(picPath) < 0) {
|
|
|
- if (picPath && picKeys.indexOf(picPath) < 0) {
|
|
|
+ if (picPath && picPath !== '' && picKeys.indexOf(picPath) < 0) {
|
|
|
// 签名图片也要计算在内,反正不重复
|
|
|
picKeys.push(picPath);
|
|
|
}
|