/** * Created by Tony on 2019/9/25. */ 'use strict' const DFT_ROLE_NAME = ''; let rptSignatureHelper = { currentSelectedESignAccDom: null, currentSelectedESignAccIdx: -1, currentSelectedESignAccName: null, originalRoleRelList: [], 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 (let accIdx = 0; accIdx < PRJ_ACCOUNT_LIST.length; accIdx++) { const prjAccount = PRJ_ACCOUNT_LIST[accIdx]; 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(''); } 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('')); }, createEsignatureByAccIdx: function (accIdx) { rptSignatureHelper.createPreSelectedSignature(PRJ_ACCOUNT_LIST[accIdx], null); }, createEsignatureByRoleIdx: function (roleIdx) { rptSignatureHelper.createPreSelectedSignature(null, ROLE_LIST[roleIdx]); }, createPreSelectedSignature: function (directAcc, roleAcc) { let dftSignSrc = '/public/upload/sign/user-sign.PNG'; let userAcc = directAcc; if (roleAcc) { userAcc = rptSignatureHelper.getUserAccount(roleAcc.bind_acc_id); } if (userAcc.sign_path !== '') { dftSignSrc = '/public/upload/sign/' + userAcc.sign_path; } 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 $(rptSignatureHelper.currentSelectedESignAccDom).empty(); // 2. 创建已选择签名相关 dom rptSignatureHelper.cleanOldSignature(rptSignatureHelper.currentSelectedESignAccName); // 2.1 dom element const elementsStrArr = []; if (directAcc) { rptSignatureHelper.pushDomElementByUser(elementsStrArr, userAcc.name, userAcc.role); // 还有ROLE_REL_LIST let roleRelObj = {}; roleRelObj.signature_name = rptSignatureHelper.currentSelectedESignAccName; roleRelObj.sign_path = dftSignSrc; roleRelObj.sign_date = ''; roleRelObj.sign_date_format = 'yyyy年M月d日'; roleRelObj.user_name = userAcc.name; roleRelObj.acc_id = userAcc.id; roleRelObj.type = '用户'; roleRelObj.role = (userAcc.role === '')?DFT_ROLE_NAME:userAcc.role; ROLE_REL_LIST.push(roleRelObj); } else if (roleAcc) { // 创建相关dom元素 rptSignatureHelper.pushDomElementByRole(elementsStrArr, roleAcc.name, userAcc.name); // 还有ROLE_REL_LIST let roleRelObj = {}; roleRelObj.signature_name = rptSignatureHelper.currentSelectedESignAccName; roleRelObj.sign_path = dftSignSrc; roleRelObj.sign_date = ''; roleRelObj.sign_date_format = 'yyyy年M月d日'; roleRelObj.user_name = userAcc.name; roleRelObj.acc_id = userAcc.id; roleRelObj.type = '角色'; roleRelObj.role = (userAcc.role === '')?DFT_ROLE_NAME:userAcc.role; roleRelObj.role_name = roleAcc.name; ROLE_REL_LIST.push(roleRelObj); } // elementsStrArr.push(''); rptSignatureHelper.pushDatePickerDom(elementsStrArr); $(rptSignatureHelper.currentSelectedESignAccDom).append(elementsStrArr.join(' ')); //.appendChild(pNode); //*/ // 2.2 date-picker } }, cleanOldSignature: function (signature_name) { // 清掉ROLE_REL_LIST原有的签名 for (let idx = ROLE_REL_LIST.length - 1; idx >= 0 ; idx--) { if (ROLE_REL_LIST[idx].signature_name === signature_name) { ROLE_REL_LIST.splice(idx, 1); } } }, 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 elementsDateStrArr = []; 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(' ')); } }, pushDomElementByUser: function (elementsStrArr, userName, userRole) { elementsStrArr.push('

' + userName + '-' + ((userRole === '')?DFT_ROLE_NAME:userRole) + '

'); // rptSignatureHelper.pushDatePickerDom(elementsStrArr); }, pushDomElementByRole: function (elementsStrArr, roleName, userName) { elementsStrArr.push('

' + roleName + '-' + userName + '

'); // rptSignatureHelper.pushDatePickerDom(elementsStrArr); }, pushDatePickerDom: function (elementsStrArr) { let idSuffixStr = 'dtp_' + rptSignatureHelper.currentSelectedESignAccName; 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)); zTreeOprObj.showPage(zTreeOprObj.currentPage, zTreeOprObj.canvas); }, resetSignDate: function() { for (let idx = 0; idx < ROLE_REL_LIST.length; idx++) { const role_rel = ROLE_REL_LIST[idx]; const idSuffixStr = 'dtp_' + role_rel.signature_name; let dtDom = $('#' + idSuffixStr); if (dtDom.length === 1) { const dtStr = dtDom[0].value; if (dtStr && dtStr !== '' && dtStr.length === 10) { const year = parseInt(dtStr.slice(0, 4)); const month = parseInt(dtStr.slice(5, 7)) - 1; const dt = parseInt(dtStr.slice(8, 10)); role_rel.sign_date = new Date(year, month, dt); } else { role_rel.sign_date = ''; } // 要处理相关签名Cell属性(默认跟普通cell一样,就多了个signature_name) for (const page of zTreeOprObj.currentRptPageRst.items) { if (page.signature_date_cells) { for (const sCell of page.signature_date_cells) { 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); } else { sCell.Value = ''; } } } } } } } // 还有ROLE_REL_LIST // rptSignatureHelper.cleanOldSignature(accTxtName); }, setupAfterSelectSignature: function () { //0. 签名日期 rptSignatureHelper.resetSignDate(); //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.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'), 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(); } ); }, 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'), 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) { for (const page of pageData.items) { if (page.signature_cells) { for (const sCell of page.signature_cells) { for (const role_rel of ROLE_REL_LIST) { if (role_rel.signature_name === sCell.signature_name) { sCell.path = role_rel.sign_path; sCell.pre_path = role_rel.sign_path; } } } } } }, mergeSignDate: function () { if (ROLE_REL_LIST && ROLE_REL_LIST.length > 0 && STAGE_AUDIT && STAGE_AUDIT.length > 0) { for (let rridx = 0; rridx < ROLE_REL_LIST.length; rridx++) { const role_rel = ROLE_REL_LIST[rridx]; if (role_rel.sign_date === undefined || role_rel.sign_date === null || role_rel.sign_date === '') { for (const stg_audit of STAGE_AUDIT) { if (role_rel.acc_id === stg_audit.aid) { role_rel.sign_date = stg_audit.end_time; rptSignatureHelper.originalRoleRelList[rridx].sign_date = stg_audit.end_time; break; } } } } } } }