|
@@ -326,9 +326,13 @@ module.exports = app => {
|
|
|
for (const page of pageRst.items) {
|
|
|
page[JV.PROP_WATERMARK_CELLS] = [];
|
|
|
}
|
|
|
+ let waterMarkStr = null;
|
|
|
if (params.stage_status !== 3 && params.closeWatermark === 0) {
|
|
|
// 加水印
|
|
|
fillWaterMark([pageRst]);
|
|
|
+ if (params.needWaterMark) {
|
|
|
+ waterMarkStr = await getWatermarkPicData(pageRst, this.app.baseDir);
|
|
|
+ }
|
|
|
}
|
|
|
// console.log(pageRst);
|
|
|
// const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : [];
|
|
@@ -351,6 +355,7 @@ module.exports = app => {
|
|
|
customDefine: rptTpl[JV.NODE_CUSTOM_DEFINE],
|
|
|
stageFlow,
|
|
|
customSelect,
|
|
|
+ waterMarkStr,
|
|
|
};
|
|
|
}
|
|
|
|
|
@@ -426,9 +431,13 @@ module.exports = app => {
|
|
|
page[JV.PROP_WATERMARK_CELLS] = [];
|
|
|
}
|
|
|
}
|
|
|
+ let waterMarkStr = null;
|
|
|
if (params.stage_status !== 3 && params.closeWatermark === 0) {
|
|
|
// 加水印
|
|
|
fillWaterMark(pageRstArr);
|
|
|
+ if (params.needWaterMark) {
|
|
|
+ waterMarkStr = await getWatermarkPicData(pageRstArr[0], this.app.baseDir);
|
|
|
+ }
|
|
|
}
|
|
|
const stgAudit = await ctx.service.stageAudit.getStageAudit(params.stage_id, params.stage_times);
|
|
|
const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
|
|
@@ -443,7 +452,7 @@ module.exports = app => {
|
|
|
// await encodeDummySignatureDataUri(pageRst, this.app.baseDir);
|
|
|
// }
|
|
|
// console.log(pageRstArr);
|
|
|
- ctx.body = { data: pageRstArr, signatureRelInfo: roleRel, stageAudit: stgAudit };
|
|
|
+ ctx.body = { data: pageRstArr, signatureRelInfo: roleRel, stageAudit: stgAudit, waterMarkStr };
|
|
|
ctx.status = 201;
|
|
|
}
|
|
|
|
|
@@ -492,10 +501,14 @@ module.exports = app => {
|
|
|
page[JV.PROP_WATERMARK_CELLS] = [];
|
|
|
}
|
|
|
}
|
|
|
+ let waterMarkStr = null;
|
|
|
if (params.stage_status !== 3 && params.closeWatermark === 0) {
|
|
|
// if (params.stage_status !== 3 && params.closeWatermark === 0 && params.option === JV.PAGING_OPTION_NORMAL) {
|
|
|
// 加水印(注意:还得看用户设置是否需要加水印)
|
|
|
fillWaterMark(pageRstArr);
|
|
|
+ if (params.needWaterMark) {
|
|
|
+ waterMarkStr = await getWatermarkPicData(pageRstArr[0], this.app.baseDir);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
@@ -519,7 +532,7 @@ module.exports = app => {
|
|
|
}
|
|
|
// fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/计量导出pageArr.js');
|
|
|
const uuidRst = await Promise.all(runnableRst);
|
|
|
- ctx.body = { data: uuidRst };
|
|
|
+ ctx.body = { data: uuidRst, waterMarkStr };
|
|
|
ctx.status = 201;
|
|
|
}
|
|
|
|
|
@@ -548,10 +561,14 @@ module.exports = app => {
|
|
|
page[JV.PROP_WATERMARK_CELLS] = [];
|
|
|
}
|
|
|
}
|
|
|
+ let waterMarkStr = null;
|
|
|
if (params.stage_status !== 3 && params.closeWatermark === 0) {
|
|
|
// if (params.stage_status !== 3 && params.closeWatermark === 0 && params.option === JV.PAGING_OPTION_NORMAL) {
|
|
|
// 加水印
|
|
|
fillWaterMark(pageRstArr);
|
|
|
+ if (params.needWaterMark) {
|
|
|
+ waterMarkStr = await getWatermarkPicData(pageRstArr[0], this.app.baseDir);
|
|
|
+ }
|
|
|
}
|
|
|
await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
|
const runnableRst = [];
|
|
@@ -598,7 +615,7 @@ module.exports = app => {
|
|
|
}
|
|
|
runnableRst.push(getExcelByPageData(pageRstArr, params.rptName, rptRoleRelArr));
|
|
|
const uuidRst = await Promise.all(runnableRst);
|
|
|
- ctx.body = { data: uuidRst };
|
|
|
+ ctx.body = { data: uuidRst, waterMarkStr };
|
|
|
ctx.status = 201;
|
|
|
}
|
|
|
|
|
@@ -1269,6 +1286,34 @@ async function encodeDummySignatureDataUri(pageRst, baseDir) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+async function getWatermarkPicData(pageRst, baseDir) {
|
|
|
+ let rst = '';
|
|
|
+ if (pageRst) {
|
|
|
+ for (const page of pageRst.items) {
|
|
|
+ for (const signature of page[JV.PROP_WATERMARK_CELLS]) {
|
|
|
+ if (signature.path !== '') {
|
|
|
+ const filePath = baseDir + '/app' + signature.path;
|
|
|
+ try {
|
|
|
+ const res = await isFileExisted(filePath);
|
|
|
+ if (res) {
|
|
|
+ const bData = fs.readFileSync(filePath);
|
|
|
+ const base64Str = bData.toString('base64');
|
|
|
+ rst = 'data:image/png;base64,' + base64Str;
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ console.log('文件不存在:' + filePath);
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.error(err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (rst !== null) break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
async function createExportRequestJob(ctx) {
|
|
|
const params = JSON.parse(ctx.request.body.params);
|
|
|
// const uuidArr = params.uuidArr;
|