/**
* Created by Tony on 2019/9/25.
*/
'use strict'
const DFT_ROLE_NAME = '';
const NORMAL_SIGN_STR = 'normal_sign';
const COMPANY_SIGN_STR = 'company_stamp';
const PRIVATE_SIGN_STR = 'private_stamp';
const STD_STAMP_SIZE_WIDTH = 5 * 96 / 2.54; // 公章大小:宽度(5 CM)
const STD_STAMP_SIZE_HEIGHT = 5 * 96 / 2.54; // 公章大小:高度(5 CM)
let rptSignatureHelper = {
currentSelectedESignAccDom: null,
currentSelectedESignAccIdx: -1,
currentSelectedESignAccName: null,
currentSelectedESignParentDivId: '',
originalRoleRelList: [],
collapseExpandTreeNode: (dom, isDblClick = false) => {
const classMap = {
'fa fa-caret-down': ['fa fa-caret-right', 'none'],
'fa fa-caret-right': ['fa fa-caret-down', ''],
};
const curPicDom = isDblClick ? $(dom).children()[0] : dom;
const doms = $($(curPicDom).parent()).nextAll();
for (let idx = 0; idx < doms.length; idx++) {
doms[idx].style.display = classMap[curPicDom.className][1];
}
curPicDom.className = classMap[curPicDom.className][0];
},
buildSelectableAccount: function () {
//PRJ_ACCOUNT_LIST
//1. 清理所有选择项
// $("#project_account_select_div").empty();
let accDiv = $('#project_account_select_div');
let accSelect = $('#project_account_select_dom'); //绑定成员
let searchInput = $('#search_account').val();
accDiv.empty();
accSelect.empty();
//2. 一个个加可选用户项
const prj_accounts = [];
const prj_sel_option_accounts = [];
const acc_role_keys = [];
for (let accIdx = 0; accIdx < PRJ_ACCOUNT_LIST.length; accIdx++) {
const prjAccount = PRJ_ACCOUNT_LIST[accIdx];
if (searchInput === '' || (searchInput !== '' && prjAccount.name.indexOf(searchInput) !== -1)) {
let companyKey = prjAccount.account_group;
let roleKey = prjAccount.role;
if (companyKey === '') {
companyKey = '其他单位';
}
if (roleKey === '') {
roleKey = DFT_ROLE_NAME;
}
let keyIdx = acc_role_keys.indexOf(companyKey);
if (keyIdx < 0) {
acc_role_keys.push(companyKey);
prj_accounts.push([]);
prj_sel_option_accounts.push([]);
keyIdx = prj_accounts.length - 1;
//这里先push一些 html prefix,在后面统一在push html suffix
prj_accounts[keyIdx].push('
');
elementsStrArr.push('
');
//-------------------------------------------------
if (!Array.isArray(role_rel.sign_output)) {
role_rel.sign_output = [NORMAL_SIGN_STR];
}
const normalSignChkStr = (role_rel.sign_output.indexOf(NORMAL_SIGN_STR) >= 0) ? 'checked' : '';
const companySignChkStr = (role_rel.sign_output.indexOf(COMPANY_SIGN_STR) >= 0) ? 'checked' : '';
const privateSignChkStr = (role_rel.sign_output.indexOf(PRIVATE_SIGN_STR) >= 0) ? 'checked' : '';
// 1. 签章类型:签字 单位章 个人章....
elementsStrArr.push('
');
elementsStrArr.push('
');
elementsStrArr.push('
');
// 2. 日期
elementsStrArr.push('
');
let dftDate = '';
if (role_rel.sign_date !== '' && role_rel.sign_date.length > 20) {
dftDate = (new Date(role_rel.sign_date)).Format('yyyy-MM-dd');
} else if (role_rel.sign_date instanceof Date){
dftDate = role_rel.sign_date.Format('yyyy-MM-dd');
} else {
if (userAcc) dftDate = _getSignDateByAllScenarios(userAcc.id);
if (dftDate !== '' && dftDate.length > 20) {
dftDate = (new Date(dftDate)).Format('yyyy-MM-dd');
}
}
elementsStrArr.push('
');
//-------------------------------------------------
elementsStrArr.push('
');
elementsStrArr.push('
');
},
removeSignature: function (dom) {
let accTxtName = $(dom.parentNode.parentNode.parentNode.parentNode.parentNode).find('label')[0].innerText;
let jDom = $(dom.parentNode.parentNode);
jDom.empty();
jDom.append('
添加签字');
// 要记得清空相关pre_path属性
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (sCell.signature_name === accTxtName) {
sCell.pre_path = '';
}
}
}
}
// 还有ROLE_REL_LIST
rptSignatureHelper.cleanOldSignature(accTxtName);
},
removeSelectSignature: function () {
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (sCell.hasOwnProperty('pre_path')) {
delete sCell.pre_path;
}
}
}
}
// ROLE_REL_LIST = [];
// ROLE_REL_LIST = ROLE_REL_LIST.concat(rptSignatureHelper.originalRoleRelList);
ROLE_REL_LIST = JSON.parse(JSON.stringify(rptSignatureHelper.originalRoleRelList));
if (PAGE_SHOW.isTextSignature) {
// resetTextSignature(zTreeOprObj.currentRptPageRst);
resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
}
zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
},
resetSignAudit: function () {
rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT);
},
resetSignDate: function(signatureDivId) {
for (const page of zTreeOprObj.currentRptPageRst.items) {
// 调整了下次序,无论有没有签名时间显示,签名对象的sign_date必须得更新及保存
for (let idx = 0; idx < ROLE_REL_LIST.length; idx++) {
const role_rel = ROLE_REL_LIST[idx];
const idSuffixStr = 'dtp_' + role_rel.signature_name + '_' + signatureDivId;
// let dtDom = $('#' + idSuffixStr);
let dtDom = document.getElementById(idSuffixStr); // 考虑到signature_name有括号的情况下,用jQuery会出异常,换成传统的方式取dom对象
if (dtDom) {
const dtStr = dtDom.value;
if (dtStr && dtStr !== '' && dtStr.length >= 8 && dtStr.length <= 10) {
role_rel.sign_date = new Date(dtStr);
} else {
role_rel.sign_date = '';
}
// 要处理相关签名Cell属性(默认跟普通cell一样,就多了个signature_name)
if (page.signature_date_cells) {
for (const sCell of page.signature_date_cells) {
// 在重设之前要先清空旧的日期
sCell.Value = '';
}
for (const sCell of page.signature_date_cells) {
if (sCell.signature_name === role_rel.signature_name + '_签字日期') {
sCell.Value = _getSignDateDftName();
if (role_rel.sign_date !== '') {
sCell.Value = role_rel.sign_date.Format(role_rel.sign_date_format);
}
}
}
}
}
}
}
},
_commonRefreshAfterSelectSignature: async function(signatureDivId) {
//0. 签名日期
rptSignatureHelper.resetSignDate(signatureDivId);
rptSignatureHelper.resetSignAudit();
//1. 重刷page(不用考虑审核状态)
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (let cIdx = page.signature_cells.length - 1; cIdx >= 0; cIdx--) {
const sCell = page.signature_cells[cIdx];
if (sCell.isStamp) {
page.signature_cells.splice(cIdx);
} else if (sCell.hasOwnProperty('pre_path')) {
sCell.path = sCell.pre_path;
delete sCell.pre_path;
}
}
}
}
resetStampSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
rptSignatureHelper.mergeSignDate(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
rptSignatureHelper.mergeSignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, true, getStageStatus() !== 3);
await rptSignatureHelper.resetDummySignature(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, getStageStatus() !== 3);
// rptSignatureHelper.mergeSignAudit(zTreeOprObj.currentRptPageRst, ROLE_REL_LIST, STAGE_AUDIT, getStageStatus() !== 3);
if (PAGE_SHOW.isTextSignature) {
resetTextSignature(zTreeOprObj.currentRptPageRst, getStageStatus() !== 3);
}
zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
},
_getCommonParams: function() {
const params = {};
params.id = CURRENT_ROLE_REL_ID;
params.tender_id = TENDER_ID;
params.stage_id = getStageId();
params.business_id = BUSINESS_ID;
params.source_type = SOURCE_TYPE;
params.rpt_id = zTreeOprObj.currentNode.refId;
// params.rel_content = ROLE_REL_LIST;
params.rel_content = [];
ROLE_REL_LIST.forEach(role_rel => {
if (role_rel.signature_name.indexOf('dummy_pic') < 0) {
params.rel_content.push(role_rel);
}
});
return params;
},
setupAfterSelectMultiChanges: async function (selectedChanges, signatureDivId) {
// 多变更令选择
await this._commonRefreshAfterSelectSignature(signatureDivId);
const params = this._getCommonParams();
params.selectedChanges = selectedChanges;
const new_ROLE_REL_LIST = JSON.parse(JSON.stringify(ROLE_REL_LIST));
new_ROLE_REL_LIST.forEach(nrole => {
nrole.sign_pic = null;
});
params.rel_content = new_ROLE_REL_LIST;
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
CommonAjax.postXsrfEx("/tender/report_api/updateMultiChangesRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
function(result){
$.bootstrapLoading.end();
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
}, function(err){
$.bootstrapLoading.end();
}, function(ex){
$.bootstrapLoading.end();
}
);
},
setupAfterSelectMultiOther: async function (selectedOther, signatureDivId) {
// 多变更令选择
await this._commonRefreshAfterSelectSignature(signatureDivId);
const params = this._getCommonParams();
params.stg_id = STAGE_ID;
params.selected = selectedOther;
const new_ROLE_REL_LIST = JSON.parse(JSON.stringify(ROLE_REL_LIST));
new_ROLE_REL_LIST.forEach(nrole => {
nrole.sign_pic = null;
});
params.rel_content = new_ROLE_REL_LIST;
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
CommonAjax.postXsrfEx("/tender/report_api/updateMultiOtherRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
function(result){
$.bootstrapLoading.end();
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
}, function(err){
$.bootstrapLoading.end();
}, function(ex){
$.bootstrapLoading.end();
}
);
},
setupAfterSelectMultiTenders: async function (selectedTenders, signatureDivId) {
// 跨标段选择,有不少要注意的交互:
await this._commonRefreshAfterSelectSignature(signatureDivId);
//2. 集中请求
const params = this._getCommonParams();
params.selectedTenders = selectedTenders;
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
$.bootstrapLoading.start();
CommonAjax.postXsrfEx("/tender/report_api/updateMultiRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
function(result){
$.bootstrapLoading.end();
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
}, function(err){
$.bootstrapLoading.end();
}, function(ex){
$.bootstrapLoading.end();
}
);
},
_parseRoleRelList: function(org_rel_content) {
const rst = JSON.parse(org_rel_content);
for (const role_rel of rst) {
if (role_rel.sign_date !== null && role_rel.sign_date !== undefined && role_rel.sign_date.length >= 8) {
role_rel.sign_date = new Date(role_rel.sign_date);
}
}
return rst;
},
setupAfterSelectSignature: async function (signatureDivId) {
//0. 签名日期
let me = rptSignatureHelper;
await this._commonRefreshAfterSelectSignature(signatureDivId);
//2. 更新数据
const params = this._getCommonParams();
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(params.rel_content));
$.bootstrapLoading.start();
CommonAjax.postXsrfEx("/tender/report_api/updateRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
async function(result){
// console.log(result);
$.bootstrapLoading.end();
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
if (result.signatureRelInfo && result.signatureRelInfo.length > 0) {
CURRENT_ROLE_REL_ID = result.signatureRelInfo[0].id;
ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
// 原本要刷新的,但在前面的_commonRefreshAfterSelectSignature方法中已经处理好了,无需重复
} else {
// CURRENT_ROLE_REL_ID = -1;
ROLE_REL_LIST = [];
}
}, function(err){
// hintBox.unWaitBox();
$.bootstrapLoading.end();
}, function(ex){
// hintBox.unWaitBox();
$.bootstrapLoading.end();
}
);
},
switchAddRoleDiv: function (dom) {
if (dom.nextElementSibling.children[0].style.display === 'none') {
dom.nextElementSibling.children[0].style.display = '';
} else {
dom.nextElementSibling.children[0].style.display = 'none';
}
},
createNewRole: function (dom) {
if ($('#acc_role_name')[0].value !== '') {
const params = {};
params.name = $('#acc_role_name')[0].value;
const selectedAcc = PRJ_ACCOUNT_LIST[$('#project_account_select_dom')[0].selectedOptions[0].value];
const roleName = (selectedAcc.role === '')?DFT_ROLE_NAME:selectedAcc.role;
params.bind_acc_id = selectedAcc.id;
params.prj_id = PROJECT_ID;
params.tender_id = TENDER_ID;
CommonAjax.postXsrfEx("/tender/report_api/createSignatureRole", params, 10000, true, getCookie('csrfToken_j'),
function(result){
console.log(result);
const newRole = {};
newRole.name = params.name;
newRole.bind_acc_id = selectedAcc.id;
newRole.prj_id = PROJECT_ID;
newRole.tender_id = TENDER_ID;
ROLE_LIST.push(newRole);
const domArr = [];
domArr.push('
');
//1. apply签名
domArr.push('');
domArr.push('');
domArr.push('');
//2. 编辑角色(暂缓处理click事件)
domArr.push('');
domArr.push('');
domArr.push('');
//3. 显示名称
domArr.push(' ' + $('#acc_role_name')[0].value + '' + selectedAcc.name + '-' + roleName + '
');
$('#existed_roles_ul').append(domArr.join(' '));
}, function(err){
// hintBox.unWaitBox();
}, function(ex){
// hintBox.unWaitBox();
}
);
} else {
alert('请输入合适的名称!');
}
},
buildRoleDom: function (roleList) {
const ulDom = $('#existed_roles_ul');
ulDom.empty();
for (let domIdx = 0; domIdx < roleList.length; domIdx++) {
const role = roleList[domIdx];
const domArr = [];
domArr.push('');
//1. apply签名
domArr.push('');
domArr.push('');
domArr.push('');
//2. 编辑角色(暂缓)
domArr.push('');
domArr.push('');
domArr.push('');
//3. 显示名称
let acc = rptSignatureHelper.getUserAccount(role.bind_acc_id);
if (acc) domArr.push(' ' + role.name + '' + acc.name + '-' + ((acc.role === '')?DFT_ROLE_NAME:acc.role) + '
');
ulDom.append(domArr.join(' '));
}
},
getUserAccount: function (accId) {
let rst = null;
for (const acc of PRJ_ACCOUNT_LIST) {
if (acc.id === accId) {
rst = acc;
break;
}
}
return rst;
},
_getCompanySign: function(companyName) {
let rst = '';
for (const cUnit of CONSTRUCT_UNIT_LIST) {
if (cUnit.name === companyName) {
rst = cUnit.sign_path;
break;
}
}
return rst;
},
mergeSignature: function (pageData, currRoleRelList, setPic = false, checkAudit = false) {
for (const page of pageData.items) {
if (page.signature_cells) {
const adHocScells = [];
for (const sCell of page.signature_cells) {
if (sCell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) < 0) {
sCell.path = null;
sCell.pre_path = null;
sCell.pic = null;
}
for (const role_rel of currRoleRelList) {
if (!checkAudit || checkAudit && rptSignatureHelper._chkIfAudit(role_rel)) {
// 如果签名者是在审核流程中并已审批通过(个人通过,非期通过),则也需要显示
if (role_rel.signature_name === sCell.signature_name) {
// 处理签章
if (!Array.isArray(role_rel.sign_output)) {
role_rel.sign_output = [];
role_rel.sign_output.push(NORMAL_SIGN_STR);
}
for (const signType of role_rel.sign_output) {
switch (signType) {
case NORMAL_SIGN_STR:
sCell.path = role_rel.sign_path;
sCell.pre_path = role_rel.sign_path;
if (setPic) {
sCell.pic = role_rel.sign_pic; // 有些场景(如:批量归档)需要直接设置签名数据
}
break;
case COMPANY_SIGN_STR:
case PRIVATE_SIGN_STR:
/*
const stampPath = (signType === COMPANY_SIGN_STR) ? role_rel.company_stamp_path : role_rel.private_stamp_path;
// 生成一个新的dummy cell(类似草图)
const newStampCell = _createDummyCell();
newStampCell.signature_name = JV.SIGNATURE_NAME_DUMMY;
newStampCell.path = OSS_PATH + stampPath;
newStampCell.control = sCell.control;
newStampCell.style = sCell.style;
newStampCell.isStamp = true; // 这个标记纯属为了刷新用,其他sign cell是没有的
// 设置坐标
rptSignatureHelper._resetStampPos(sCell, newStampCell, pageData[JV.NODE_CONTROL_COLLECTION]);
// 加到cells去
adHocScells.push(newStampCell);
//*/
break;
default:
break;
}
}
break;
}
}
}
}
page.signature_cells = page.signature_cells.concat(adHocScells);
}
}
},
resetDummySignature: async function(pageData, roleRel, ifPushRoleRel = false, checkAudit = false) {
// 备注:计算草图等其他图形需要额外做些处理
let dummySignIdx = 0;
const stampPicKeys = [], stampPicFeatures = [];
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 signatureCell of page[JV.PROP_SIGNATURE_CELLS]) {
if (signatureCell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
let passAuditChk = true;
if (checkAudit) {
passAuditChk = false;
if (roleRel) {
for (const role_rel of roleRel) {
if (role_rel.signature_name === signatureCell.signatureName) {
// signatureName(非signature_name)是印章cell特意给的属性,还有isStamp属性
if (rptSignatureHelper._chkIfAudit(role_rel)) {
passAuditChk = true;
break;
}
}
}
}
}
if (passAuditChk) {
// 表示这是一个其他类型的非原生电子签名图,只是借用signature的处理机制,每个图都是唯一的,所以需要重新给个唯一的新signature_name
// signatureCell.signature_name = signatureCell.signature_name + '_' + pageIdx + '_' + dummySignIdx;
signatureCell.signature_name = signatureCell.signature_name + '_' + page.page_seq + '_' + dummySignIdx; // page_seq在分页后都不会变动
dummySignIdx++;
const roleRelItem = { type: '用户', sign_path: signatureCell.path, signature_name: signatureCell.signature_name };
if (signatureCell.isStamp) {
let stmpIdx = stampPicKeys.indexOf(signatureCell.path);
if (stampPicKeys.indexOf(signatureCell.path) < 0) {
stampPicKeys.push(signatureCell.path);
stmpIdx = stampPicKeys.length - 1;
const picRes = await getHttpBlobText(signatureCell.path + '?x-oss-process=image/info');
stampPicFeatures.push(picRes);
}
// { "FileSize": {"value": "2514"}, "Format": {"value": "png"}, "ImageHeight": {"value": "94"}, "ImageWidth": {"value": "94"} }
roleRelItem.stampFeature = stampPicFeatures[stmpIdx];
// 重新处理cell坐标
// 如果签章信息中存在位置信息,则不执行该方法
if(!signatureCell.isSaveSignature) _resetStampArea(pageData[JV.NODE_CONTROL_COLLECTION][signatureCell[JV.PROP_CONTROL]], signatureCell, roleRelItem);
}
if (ifPushRoleRel) roleRel.push(roleRelItem);
}
}
}
}
}
},
mergeSignAudit: function (pageData, currRoleRelList, currAuditList, checkAudit = false) {
const reg1 = new RegExp('\n\r', 'g');
const reg2 = new RegExp('\r\n', 'g');
const reg3 = new RegExp('\n', 'g');
const reg4 = new RegExp('\r', 'g');
const reg5 = new RegExp('
', 'g');
const reg6 = new RegExp('
', 'g');
for (const page of pageData.items) {
if (page.signature_audit_cells) {
for (const sCell of page.signature_audit_cells) {
sCell.Value = ''; // 这里要先清除原有信息
for (const role_rel of currRoleRelList) {
if (!checkAudit || checkAudit && rptSignatureHelper._chkIfAudit(role_rel)) {
// 如果签名者是在审核流程中并已审批通过(个人通过,非期通过),则也需要显示
if (sCell.signature_name === role_rel.signature_name + '_审核意见') {
let preDate = '';
sCell.Value = '同意'; // 只有选择了签名的,才需要初始化一个默认的意见(之前的逻辑在有多个签名,哪怕只选择了一个,其他的意见都会有默认意见)
for (const audit_rel of currAuditList) {
if (role_rel.acc_id === audit_rel.aid) {
if (audit_rel.end_time > preDate && audit_rel.status === 3) {
sCell.Value = audit_rel.opinion;
if (typeof sCell.Value === 'string') {
sCell.Value = sCell.Value.replace(reg1, '|').replace(reg2, '|').replace(reg3, '|').replace(reg4, '|').replace(reg5, '|').replace(reg6, '|');
}
preDate = audit_rel.end_time;
} else {
sCell.Value = ''; // 如有匹配,但又不能输出,则需要清空
}
//不能break,实际会有多个审核意见,以最后一个为准
}
}
break;
}
}
}
}
}
}
},
mergeSignDate: function (pageData, currRoleRelList, isMergeOrgAlso, checkAudit = false) {
if (currRoleRelList && currRoleRelList.length > 0 && STAGE_AUDIT && STAGE_AUDIT.length > 0) {
for (let rridx = 0; rridx < currRoleRelList.length; rridx++) {
const role_rel = currRoleRelList[rridx];
if (role_rel.sign_date === undefined || role_rel.sign_date === null || role_rel.sign_date === '') {
let dftDate = _getSignDateByAllScenarios(role_rel.acc_id);
if (dftDate !== '' && dftDate.length >= 10) {
dftDate = new Date(dftDate); // 不Format,保留时分秒
} else if (dftDate === '') {
if (current_stage_id <= -300 && current_stage_id > -400 && BGL_OBJ && BGL_OBJ.currentBz && BGL_OBJ.currentBz.status === 3) {
if (STAGE_AUDIT && STAGE_AUDIT.length > 0) {
dftDate = new Date(STAGE_AUDIT[STAGE_AUDIT.length - 1].end_time);
} else {
dftDate = new Date();
}
} else {
dftDate = new Date();
}
}
role_rel.sign_date = dftDate;
if (isMergeOrgAlso) {
for (const orgRR of rptSignatureHelper.originalRoleRelList) {
if (orgRR.signature_name === role_rel.signature_name) {
orgRR.sign_date = dftDate;
break;
}
}
// rptSignatureHelper.originalRoleRelList[rridx].sign_date = dftDate; // 这个在实际情况下originalRoleRelList不一定与currRoleRelList一致
//备注:在多选导出的情况下,originalRoleRelList不需要merge
}
}
}
}
for (const page of pageData.items) {
if (page.signature_date_cells) {
for (const sCell of page.signature_date_cells) {
if (typeof sCell.Value === 'string' && sCell.Value.replace(/ /g, '') === '年月日') {
sCell.Value = _getSignDateDftName();
} else {
sCell.Value = '';
}
for (const role_rel of currRoleRelList) {
if (sCell.signature_name === role_rel.signature_name + '_签字日期') {
if (!checkAudit || rptSignatureHelper._chkIfAudit(role_rel)) {
// 如果签名者是在审核流程中并已审批通过(个人通过,非期通过),则也需要显示
if (role_rel.sign_date !== '') {
if (typeof role_rel.sign_date === 'string') {
role_rel.sign_date = new Date(role_rel.sign_date);
}
sCell.Value = role_rel.sign_date.Format(role_rel.sign_date_format);
}
}
break;
}
}
}
}
}
},
_chkIfAudit: function(role_rel) {
// 检测是否在审核列表中
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 && current_stage_id > 0) {
// 还有原报需要检测(这里是计量期单独的判断)
for (const stg_ort_rpt of STAGE_LIST) {
if (role_rel.acc_id === stg_ort_rpt.user_id) {
if (stg_ort_rpt.status !== 1 && stg_ort_rpt.status !== 4) {
// 只要不是待上报(1)、退回审批(4) 状态,都需要显示
rst = true;
} else {
rst = false;
}
// break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准
}
}
}
// rst = true; //测试,未来将屏蔽
return rst;
},
_chkIfOrgRpt: function(role_rel) {
// 检测是否原报
let rst = false;
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id) {
if (stg.user_id === role_rel.acc_id) {
rst = true;
}
break;
}
}
return rst;
},
_changeSignType: function(dom, signature_name, chkStr, userStamp) {
for (const roleRel of ROLE_REL_LIST) {
if (roleRel.signature_name === signature_name) {
if (dom.checked) {
if (roleRel.sign_output.indexOf(chkStr) < 0) {
roleRel.sign_output.push(chkStr);
}
if(chkStr==='private_stamp'&&!roleRel.private_stamp_path && userStamp){
roleRel.private_stamp_path = userStamp.split('!;!')[0] ;
console.log(roleRel.private_stamp_path);
}
} else {
let idx = roleRel.sign_output.indexOf(chkStr);
if (idx >= 0) {
roleRel.sign_output.splice(idx, 1);
}
}
break;
}
}
},
_resetStampPos: function(orgCell, targetCell, controls) {
const ctrl = controls[orgCell.control];
let pLeft = orgCell.area.Left, pTop = orgCell.area.Top;
switch(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]]) {
case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_LEFT]:
pLeft = orgCell.area.Left;
break;
case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_CENTER]:
pLeft = (orgCell.area.Left + orgCell.area.Right - STD_STAMP_SIZE_WIDTH) / 2 ;
break;
case JV.OUTPUT_ALIGN.H[JV.H_ALIGN_IDX_RIGHT]:
pLeft = orgCell.area.Right - STD_STAMP_SIZE_WIDTH;
break;
}
switch(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]]) {
case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_TOP]:
pTop = orgCell.area.Top;
break;
case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_CENTER]:
pTop = (orgCell.area.Top + orgCell.area.Bottom - STD_STAMP_SIZE_HEIGHT) / 2 ;
break;
case JV.OUTPUT_ALIGN.H[JV.V_ALIGN_IDX_BOTTOM]:
pTop = orgCell.area.Bottom - STD_STAMP_SIZE_HEIGHT;
break;
}
targetCell.area.Left = pLeft;
targetCell.area.Top = pTop;
targetCell.area.Right = pLeft + STD_STAMP_SIZE_WIDTH;
targetCell.area.Bottom = pTop + STD_STAMP_SIZE_HEIGHT;
},
initChosePrivateStampPath:function(stampPathList,signature_name){
let currentStamp='';
const targetNode= ROLE_REL_LIST.find(item=>item.signature_name===signature_name);
if(targetNode) currentStamp=targetNode.private_stamp_path
let content=``;
stampPathList.split('!;!').forEach(item=>{
content+=`
`;
})
for(let i=0;i
`;
}
content+=`