/**
* Created by Tony on 2019/9/25.
*/
'use strict'
let rptSignatureHelper = {
currentSelectedESignAccDom: null,
currentSelectedESignAccName: null,
buildSelectableAccount: function () {
//PRJ_ACCOUNT_LIST
//1. 清理所有选择项
// $("#project_account_select_div").empty();
let accDiv = $('#project_account_select_div');
let accSelect = $('#project_account_select_dom'); //绑定成员
accDiv.empty();
accSelect.empty();
//2. 一个个加可选用户项
const prj_accounts = [];
const prj_sel_option_accounts = [];
const acc_role_keys = [];
for (const prjAccount of PRJ_ACCOUNT_LIST) {
let companyKey = prjAccount.company;
let roleKey = prjAccount.role;
if (companyKey === '') {
companyKey = '其他单位';
}
if (roleKey === '') {
roleKey = '工程师';
}
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('
');
prj_accounts[keyIdx].push('- ' + companyKey + '
');
prj_sel_option_accounts[keyIdx].push('
');
}
for (const prjAccList of prj_sel_option_accounts) {
prjAccList.push('');
}
for (let idx = 0; idx < prj_accounts.length; idx++) {
prj_accounts[idx] = prj_accounts[idx].join('');
prj_sel_option_accounts[idx] = prj_sel_option_accounts[idx].join('');
}
accDiv.append(prj_accounts.join(''));
accSelect.append(prj_sel_option_accounts.join(''));
},
drawEsignature: function (accIdx) {
let dftSignSrc = '/public/images/user-sign.PNG';
if (PRJ_ACCOUNT_LIST[accIdx].sign_path !== '') {
dftSignSrc = PRJ_ACCOUNT_LIST[accIdx].sign_path;
}
//找到相关签名地方,stamp!
if (rptSignatureHelper.currentSelectedESignAccName !== null) {
for (const page of zTreeOprObj.currentRptPageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (sCell.signature_name === rptSignatureHelper.currentSelectedESignAccName) {
sCell.pre_path = dftSignSrc;
}
}
}
}
// 1. 删除不需要的child dom
let list = rptSignatureHelper.currentSelectedESignAccDom.childNodes;
if (list && list.length > 0) {
for (let domIdx = list.length - 1; domIdx >= 0; domIdx--) {
rptSignatureHelper.currentSelectedESignAccDom.removeChild(list[domIdx]);
}
}
// 2. 创建已选择签名相关 dom
const canvasWidth = 60;
const canvasHeight = 30;
// 2.1 canvas / X
const elementsStrArr = [];
elementsStrArr.push('
');
let imgObj = new Image();
imgObj.src = dftSignSrc;
imgObj.onload = function(){
let canvasNode = document.getElementById('signCanvas' + accIdx);
let ctx = canvasNode.getContext('2d');
ctx.drawImage(this, 0, 0, canvasWidth, canvasHeight);
}
//.appendChild(pNode);
$(rptSignatureHelper.currentSelectedESignAccDom).append(elementsStrArr.join(' '));
//*/
// 2.2 date-picker
}
},
resetESignature: function (pageRst) {
let body = $('#eSignatureBodyDiv');
body.empty();
const signature_cells = [];
const singatureNameArr = [];
for (const page of pageRst.items) {
if (page.signature_cells) {
for (const sCell of page.signature_cells) {
if (singatureNameArr.indexOf(sCell.signature_name) < 0) {
signature_cells.push(sCell);
singatureNameArr.push(sCell.signature_name);
}
}
}
}
if (signature_cells.length > 0) {
const elementsStrArr = [];
const canvasWidth = 60;
const canvasHeight = 30;
for (let scIdx = 0; scIdx < signature_cells.length; scIdx++) {
const sCell = signature_cells[scIdx];
elementsStrArr.push('');
}
body.append(elementsStrArr.join(' '));
}
},
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 = '';
}
}
}
}
},
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;
}
}
}
}
zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas);
},
setupAfterSelectSignature: function () {
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);
},
switchAddRoleDiv: function (dom) {
if (dom.nextElementSibling.style.display === 'none') {
dom.nextElementSibling.style.display = '';
} else {
dom.nextElementSibling.style.display = 'none';
}
},
createNewRole: function (dom) {
//acc_role_name fa fa-remove
}
}