61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
export default function (imgUrl, columns, data, propsData) {
|
|
console.log('imgUrl, columns, data, propsData','---',imgUrl,'---', columns,'---', data,'---', propsData);
|
|
|
|
const str = []
|
|
|
|
|
|
const meta = `
|
|
|
|
<body>
|
|
`
|
|
str.push(meta)
|
|
const header = columns.map(item => item.key)
|
|
const columnsMap = {};
|
|
columns.forEach((item) => {
|
|
columnsMap[item.key] = item.title;
|
|
});
|
|
|
|
data = data.map(item => {
|
|
const arr = []
|
|
header.forEach(head => {
|
|
let value
|
|
if(item.value){
|
|
value = item.value[head]
|
|
}else{
|
|
value = item[head]
|
|
}
|
|
arr.push(value)
|
|
})
|
|
return arr
|
|
})
|
|
if(propsData.stem||propsData.title) {
|
|
str.push(`<div style="font-size: 18px;">${propsData.title}:${propsData.stem}</div>`)
|
|
}
|
|
if(imgUrl) {
|
|
str.push(`<img src="${imgUrl}"/>`)
|
|
}
|
|
str.push(`<div style="width: 100%; display: flex; justify-content: center">`)
|
|
str.push("<table border='1' style='width:100%'>")
|
|
str.push('<tr>')
|
|
const thead = columns.map(item => `<th>${item.title}</th>`).join('')
|
|
str.push(thead)
|
|
str.push('</tr>')
|
|
console.log('data',data);
|
|
data.forEach(row => {
|
|
let tbody = ['<tr>']
|
|
for (let k of row) {
|
|
tbody.push(`<td>${k}</td>`)
|
|
}
|
|
tbody.push('</tr>')
|
|
tbody = tbody.join('')
|
|
str.push(tbody)
|
|
});
|
|
str.push('</table>')
|
|
str.push('</div>')
|
|
str.push(`</body>
|
|
`)
|
|
console.log('th 33');
|
|
return str.join('')
|
|
|
|
}
|