/** * 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(''); } 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('
'); elementsStrArr.push(''); elementsStrArr.push('
'); elementsStrArr.push(''); elementsStrArr.push('
'); 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 } }