import store from '@/store' /** * @param{string} printJs 打印模版 * @param{boolean} isLog 是否带审批 * @param{object} form data数据 * @param{string} [logContent] 审批表格html * @return{void} **/ export async function print(printJs, isLog, form, logContent) { const staticMap = new Map([ ['apply_name', `${form.creator?.name}`], ['apply_department_name', `${form.creator_department?.name}`], ['apply_sign', form.creator?.sign_file ? `${form.creator?.name}` : `${form.creator?.name}`], ['created_at', `${form.created_at}`], ]) let printStr = printJs const regexField = /]*>(.*?)<\/field>/g; let fieldMaths = [] let match; while ((match = regexField.exec(printJs)) !== null) { fieldMaths.push(match[0]); // 提取 之间的内容 } for (let i = 0;i < fieldMaths.length; i++) { let fieldMath = fieldMaths[i] const matchName = fieldMath.match(/name="([^"]+)"/); if (matchName) { const nameValue = matchName[1]; if (Array.from(staticMap.keys()).indexOf(nameValue) !== -1) { printStr = printStr.replace(fieldMath, staticMap.get(nameValue)) } else { let value = store.getters.device === 'desktop' ? (document.querySelector(`[for="${nameValue}"]+div`) ? document.querySelector(`[for="${nameValue}"]+div`).innerHTML : '') : (document.querySelector(`[for="${nameValue}"] > div:nth-child(2)`) ? document.querySelector(`[for="${nameValue}"] > div:nth-child(2)`).innerHTML : '') if (//g)[0] let subFormStyle = subForm.content.match(/',`${subFormStyle}`) printStr = printStr.replace(fieldMath,subFormBody) console.log(fieldMath, printStr) } else { printStr = printStr.replace(fieldMath,`${value}`) } } } else { console.log('未找到name属性'); } } if(isLog) { const logStyle = logContent.match(/',`${totalLogStyle}`) const logBody = logContent.match(//g)[0] printStr = printStr.replace('
\n