');
//还有签名日期(用不用得上不管,先放上去再说)
}
body.append(elementsStrArr.join(' '));
}
}
},
checkAndShowCrossTendersESignature: function () {
let btnDom = $('#btn_cross_tender')[0];
if (zTreeOprObj.currentNode) {
btnDom.style.display = '';
} else {
btnDom.style.display = 'none';
}
},
pushDomElementByUser: function (elementsStrArr, userName, userRole) {
elementsStrArr.push('
');
// rptSignatureHelper.pushDatePickerDom(elementsStrArr);
},
pushDomElementByRole: function (elementsStrArr, roleName, userName) {
elementsStrArr.push('
');
// rptSignatureHelper.pushDatePickerDom(elementsStrArr);
},
pushDatePickerDom: function (elementsStrArr, userAccId) {
let idSuffixStr = 'dtp_' + rptSignatureHelper.currentSelectedESignAccName + '_' + rptSignatureHelper.currentSelectedESignParentDivId;
elementsStrArr.push('
');
// 日期控件存在页面高度不过高无法选中bug,先不用
// elementsStrArr.push('
20) {
dftDate = (new Date(dftDate)).Format('yyyy-MM-dd');
}
/*/
let dftDate = '';
let hasAudit = false;
if (STAGE_AUDIT && STAGE_AUDIT.length > 0) {
for (const stga of STAGE_AUDIT) {
if (stga.aid === userAccId) {
hasAudit = true;
if (stga.status === 3 && stga.end_time && stga.end_time !== '' && stga.end_time.length > 20) {
//只有在审批人通过后才获取审批时间
// let dt = new Date(stga.end_time);
dftDate = (new Date(stga.end_time)).Format('yyyy-MM-dd');
} else {
dftDate = '';
}
// break; // 实际情况:有可能会有多次审核,要取最后一次
}
}
}
let isOrgRpt = false;
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id) {
if (stg.user_id === userAccId) {
isOrgRpt = true;
}
break;
}
}
if (isOrgRpt && !hasAudit && STAGE_AUDIT_ORG && STAGE_AUDIT_ORG.length > 0) {
if (STAGE_AUDIT_ORG[0].begin_time && STAGE_AUDIT_ORG[0].begin_time !== '' && STAGE_AUDIT_ORG[0].begin_time.length > 20) {
dftDate = (new Date(STAGE_AUDIT_ORG[0].begin_time)).Format('yyyy-MM-dd');
}
}
if (!isOrgRpt && !hasAudit) {
//非审批流程人员以及非原报,则显示期截至时间
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id && stg.period) {
const period = stg.period.split(' ~ ');
if (period.length === 2) {
dftDate = period[1];
}
}
}
}
//*/
if (dftDate !== '') {
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));
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) {
if (page.signature_date_cells) {
for (const sCell of page.signature_date_cells) {
sCell.Value = _getSignDateDftName();
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);
if (dtDom.length === 1) {
const dtStr = dtDom[0].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 (sCell.signature_name === role_rel.signature_name + '_签字日期') {
if (role_rel.sign_date !== '') {
sCell.Value = role_rel.sign_date.Format(role_rel.sign_date_format);
}
}
}
}
}
}
}
},
setupAfterSelectMultiTenders: function (selectedTenders, signatureDivId) {
//跨标段选择,有不少要注意的交互:
//0. 签名日期
rptSignatureHelper.resetSignDate(signatureDivId);
rptSignatureHelper.resetSignAudit();
//1. 重刷page
if (current_stage_status === 3) {
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (sCell.hasOwnProperty('pre_path')) {
sCell.path = sCell.pre_path;
delete sCell.pre_path;
}
}
}
}
zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
}
//2. 集中请求
let params = {};
params.id = CURRENT_ROLE_REL_ID;
params.tender_id = TENDER_ID;
params.stage_id = getStageId();
params.rpt_id = zTreeOprObj.currentNode.refId;
params.rel_content = ROLE_REL_LIST;
params.selectedTenders = selectedTenders;
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
CommonAjax.postXsrfEx("/tender/report_api/updateMultiRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
function(result){
console.log(result);
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
}, function(err){
// hintBox.unWaitBox();
}, function(ex){
// hintBox.unWaitBox();
}
);
},
_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: function (signatureDivId) {
//0. 签名日期
let me = rptSignatureHelper;
rptSignatureHelper.resetSignDate(signatureDivId);
rptSignatureHelper.resetSignAudit();
if (current_stage_status === 3) {
//1. 重刷page
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (sCell.hasOwnProperty('pre_path')) {
sCell.path = sCell.pre_path;
delete sCell.pre_path;
}
}
}
}
zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
}
//2. 更新数据
const params = {};
params.id = CURRENT_ROLE_REL_ID;
params.tender_id = TENDER_ID;
params.stage_id = getStageId();
params.rpt_id = zTreeOprObj.currentNode.refId;
params.rel_content = ROLE_REL_LIST;
// rptSignatureHelper.originalRoleRelList = [];
// rptSignatureHelper.originalRoleRelList = rptSignatureHelper.originalRoleRelList.concat(ROLE_REL_LIST);
rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
CommonAjax.postXsrfEx("/tender/report_api/updateRoleRelationship", params, 10000, true, getCookie('csrfToken_j'),
function(result){
// console.log(result);
if (result.data && result.data.insertId > 0) {
CURRENT_ROLE_REL_ID = result.data.insertId;
}
// ROLE_REL_LIST = [];
// for (const signatureRel of result.signatureRelInfo) {
// ROLE_REL_LIST.push(JSON.parse(signatureRel.rel_content));
// }
// rptSignatureHelper.originalRoleRelList = JSON.parse(JSON.stringify(ROLE_REL_LIST));
// ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
// rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
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);
rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
if (current_stage_status === 3) {
rptSignatureHelper.mergeSignDate(pageRst, ROLE_REL_LIST, true);
rptSignatureHelper.mergeSignature(pageRst, ROLE_REL_LIST);
rptSignatureHelper.mergeSignAudit(pageRst, ROLE_REL_LIST, STAGE_AUDIT);
}
} else {
// CURRENT_ROLE_REL_ID = -1;
ROLE_REL_LIST = [];
}
}, function(err){
// hintBox.unWaitBox();
}, function(ex){
// hintBox.unWaitBox();
}
);
},
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);
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;
},
mergeSignature: function (pageData, currRoleRelList) {
for (const page of pageData.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
for (const role_rel of currRoleRelList) {
if (role_rel.signature_name === sCell.signature_name) {
sCell.path = role_rel.sign_path;
sCell.pre_path = role_rel.sign_path;
}
}
}
}
}
},
mergeSignAudit: function (pageData, currRoleRelList, currAuditList) {
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 (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;
preDate = audit_rel.end_time;
}
//不能break,实际会有多个审核意见,以最后一个为准
}
}
break;
}
}
}
}
}
},
mergeSignDate: function (pageData, currRoleRelList, isMergeOrgAlso) {
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);
role_rel.sign_date = dftDate;
if (isMergeOrgAlso) {
rptSignatureHelper.originalRoleRelList[rridx].sign_date = dftDate;
//备注:在多选导出的情况下,originalRoleRelList不需要merge
}
/*/
let hasAudit = false;
for (const stg_audit of STAGE_AUDIT) {
if (role_rel.acc_id === stg_audit.aid) {
hasAudit = true;
if (stg_audit.status === 3) {
role_rel.sign_date = stg_audit.end_time;
rptSignatureHelper.originalRoleRelList[rridx].sign_date = stg_audit.end_time;
} else {
role_rel.sign_date = '';
rptSignatureHelper.originalRoleRelList[rridx].sign_date = '';
}
// break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准
}
}
let isOrgRpt = false;
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id) {
if (stg.user_id === role_rel.acc_id) {
isOrgRpt = true;
}
break;
}
}
if (isOrgRpt && !hasAudit && STAGE_AUDIT_ORG && STAGE_AUDIT_ORG.length > 0) {
if (STAGE_AUDIT_ORG[0].begin_time && STAGE_AUDIT_ORG[0].begin_time !== '' && STAGE_AUDIT_ORG[0].begin_time.length > 20) {
role_rel.sign_date = STAGE_AUDIT_ORG[0].begin_time;
rptSignatureHelper.originalRoleRelList[rridx].sign_date = STAGE_AUDIT_ORG[0].begin_time;
}
}
if (!isOrgRpt && !hasAudit) {
//非审批流程人员以及非原报,则显示期截至时间
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id && stg.period) {
const period = stg.period.split(' ~ ');
if (period.length === 2) {
role_rel.sign_date = period[1];
rptSignatureHelper.originalRoleRelList[rridx].sign_date = period[1];
}
}
}
}
//*/
}
}
}
for (const page of pageData.items) {
if (page.signature_date_cells) {
for (const sCell of page.signature_date_cells) {
if (sCell.Value === undefined || sCell.Value === null && sCell.Value === '') {
sCell.Value = _getSignDateDftName();
}
for (const role_rel of currRoleRelList) {
if (sCell.signature_name === role_rel.signature_name + '_签字日期') {
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;
}
}
}
}
}
}
}
function _getSignDateByAllScenarios(userAccId) {
let rst = '';
let hasAudit = false;
for (const stg_audit of STAGE_AUDIT) {
if (stg_audit.aid === userAccId) {
hasAudit = true;
if (stg_audit.status === 3) {
rst = stg_audit.end_time;
} else {
rst = '';
}
// break; //因为实际业务中会有反复,所以就不break了,一直判断,以最后一个为准
}
}
let isOrgRpt = false;
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id) {
if (stg.user_id === userAccId) {
isOrgRpt = true;
}
break;
}
}
if (isOrgRpt && !hasAudit && STAGE_AUDIT_ORG && STAGE_AUDIT_ORG.length > 0) {
if (STAGE_AUDIT_ORG[0].begin_time && STAGE_AUDIT_ORG[0].begin_time !== '' && STAGE_AUDIT_ORG[0].begin_time.length > 20) {
rst = STAGE_AUDIT_ORG[0].begin_time;
}
}
if (!isOrgRpt && !hasAudit) {
//非审批流程人员以及非原报,则显示期截至时间
for (const stg of STAGE_LIST) {
if (stg.id === current_stage_id && stg.period) {
const period = stg.period.split(' ~ ');
if (period.length === 2) {
rst = period[1];
}
}
}
}
return rst;
}
function _getSignDateDftName() {
return ' 年 月 日';
}