|
@@ -960,7 +960,7 @@ function writeImage(path, pic, baseDir) {
|
|
|
}
|
|
|
function writeDrawings(pageData, signKeyArr, signPathArr, isSinglePage, signSheetIdxArr) {
|
|
|
const rst = [];
|
|
|
- console.log('isSinglePage: ' + isSinglePage);
|
|
|
+ // console.log('isSinglePage: ' + isSinglePage);
|
|
|
if (isSinglePage) {
|
|
|
rst.push(writeDrawing(pageData, null, signKeyArr[0]));
|
|
|
} else {
|
|
@@ -1121,15 +1121,35 @@ function mergeProperties(orgObj, newObj) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+function resetDummuySignature(pageData, roleRel) {
|
|
|
+ // 备注:计算草图等其他图形需要额外做些处理
|
|
|
+ let dummySignIdx = 0;
|
|
|
+ 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 signature of page[JV.PROP_SIGNATURE_CELLS]) {
|
|
|
+ if (signature.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
|
|
|
+ // 表示这是一个其他类型的非原生电子签名图,只是借用signature的处理机制,每个图都是唯一的,所以需要重新给个唯一的新signature_name
|
|
|
+ signature.signature_name = signature.signature_name + '_' + pageIdx + '_' + dummySignIdx;
|
|
|
+ dummySignIdx++;
|
|
|
+ const roleRelItem = { type: '用户', sign_path: signature.path, signature_name: signature.signature_name };
|
|
|
+ roleRel.push(roleRelItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, signSheetIdxArr) {
|
|
|
// 备注:电子签名是以图形的方式处理,一页可以有多个签名,多页的签名基本是引用同样的图片,在这里先处理一下,后期统一引用。
|
|
|
- // 另:以后的图片(在电子签名(signature_cells)以外的图片)会单独处理(如计算图等)
|
|
|
+ // 另:以后的图片(在电子签名(signature_cells)以外的图片)会单独处理(如计算草图等)
|
|
|
let rst = false;
|
|
|
let chkRoles = [];
|
|
|
if (roleRel instanceof Array) {
|
|
|
chkRoles = roleRel;
|
|
|
} else {
|
|
|
- chkRoles.push(roleRel);
|
|
|
+ if (roleRel) chkRoles.push(roleRel);
|
|
|
}
|
|
|
// console.log(chkRoles);
|
|
|
// console.log(signKeyArr);
|
|
@@ -1139,16 +1159,18 @@ function checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, s
|
|
|
signKeyArr.push([]);
|
|
|
signPathArr.push([]);
|
|
|
signSheetIdxArr[pageIdx] = false;
|
|
|
+ // console.log('page index: ' + pageIdx);
|
|
|
+ // console.log(page[JV.PROP_SIGNATURE_CELLS]);
|
|
|
if (page[JV.PROP_SIGNATURE_CELLS] && page[JV.PROP_SIGNATURE_CELLS].length > 0) {
|
|
|
- // console.log('page index: ' + pageIdx);
|
|
|
- // console.log(page[JV.PROP_SIGNATURE_CELLS]);
|
|
|
- let dummySignIdx = 0;
|
|
|
+ // let dummySignIdx = 0;
|
|
|
for (const signature of page[JV.PROP_SIGNATURE_CELLS]) {
|
|
|
- if (signature.signature_name === JV.SIGNATURE_NAME_DUMMY) {
|
|
|
- // 表示这是一个其他类型的非原生电子签名图,只是借用signature的处理机制,每个图都是唯一的,所以需要重新给个唯一的新signature_name
|
|
|
- signature.signature_name = signature.signature_name + '_' + pageIdx + '_' + dummySignIdx;
|
|
|
- dummySignIdx++;
|
|
|
- }
|
|
|
+ // if (signature.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
|
|
|
+ // // 表示这是一个其他类型的非原生电子签名图,只是借用signature的处理机制,每个图都是唯一的,所以需要重新给个唯一的新signature_name
|
|
|
+ // signature.signature_name = signature.signature_name + '_' + pageIdx + '_' + dummySignIdx;
|
|
|
+ // dummySignIdx++;
|
|
|
+ // rst = true;
|
|
|
+ // signSheetIdxArr[pageIdx] = true;
|
|
|
+ // }
|
|
|
if (signKeyArr[pageIdx].indexOf(signature.signature_name) < 0) {
|
|
|
if (signature.pic) {
|
|
|
const signPath = { path: null, pic: null };
|
|
@@ -1207,10 +1229,17 @@ module.exports = {
|
|
|
const signSheetIdxArr = []; // 确定哪些sheet有签名(在多表导出的时候,有些表可能没有签名,但其他的表有签名)
|
|
|
// console.log('in exportExcel!');
|
|
|
// console.log(roleRel);
|
|
|
- const hasSignature = (roleRel !== null) ? checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, signSheetIdxArr) : false;
|
|
|
- // console.log('signSheetIdxArr');
|
|
|
- // console.log(signSheetIdxArr);
|
|
|
- // const hasSignature = false;
|
|
|
+ // const hasSignature = (roleRel !== null) ? checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, signSheetIdxArr) : false;
|
|
|
+ let thisRoleRel = [];
|
|
|
+ if (roleRel !== null && roleRel !== undefined) {
|
|
|
+ thisRoleRel = roleRel;
|
|
|
+ }
|
|
|
+ resetDummuySignature(pageData, thisRoleRel); // 把草图转换一下roleRel
|
|
|
+ // console.log(thisRoleRel);
|
|
|
+ // const hasSignature = checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, thisRoleRel, signSheetIdxArr); // 因草图的关系,thisRoleRel是否为null就不是充要的条件
|
|
|
+ // console.log('signKeyArr');
|
|
|
+ // console.log(signKeyArr);
|
|
|
+ const hasSignature = false;
|
|
|
// console.log('hasSignature: ' + hasSignature);
|
|
|
if (isSinglePage) {
|
|
|
sheets.push({ sheetName: '全部页' });
|