import store from '@/store' /** * @param{string} printJs 打印模版 * @param{boolean} isLog 是否带审批 * @param{string} logContent 审批表格html * @return{void} **/ export function print(printJs, isLog, logContent) { let printStr = printJs const regexField = /]*>(.*?)<\/field>/g; let fieldMaths = [] let match; while ((match = regexField.exec(printJs)) !== null) { fieldMaths.push(match[0]); // 提取 之间的内容 } fieldMaths.forEach(fieldMath => { const matchName = fieldMath.match(/name="([^"]+)"/); if (matchName) { const nameValue = matchName[1]; const value = store.getters.device === 'desktop' ? document.querySelector(`[for=${nameValue}]+div`).innerHTML : document.querySelector(`[for=${nameValue}] > div:nth-child(2)`).innerHTML 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('',`${logBody}`) } let printWindow = window.open('', '_blank'); printWindow.document.write(printStr); printWindow.focus(); }