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}`],
['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