Files
app-govern/components/Cn-htmlToImg/Cn-htmlToImg.vue

58 lines
1.4 KiB
Vue
Raw Normal View History

2023-03-14 09:09:05 +08:00
<template>
<view>
<view class="html2canvas" :prop="domId" :id="domId" :change:prop="canvasImage.generateImage">
<slot></slot>
</view>
</view>
</template>
<script>
export default {
name: 'html2canvas',
props: {
domId: {
type: String,
required: true
}
},
methods: {
htmlToCanvas (option) {
let posterImg = option.posterImg;
this.$emit('renderFinish', posterImg);
}
}
}
</script>
<script lang="renderjs" module="canvasImage">
import html2canvas from 'html2canvas'
export default {
methods: {
// 生成图片需要调用的方法
generateImage(domId) {
// 获取设备dpi
setTimeout(() => {
let dom = document.getElementById(domId);
2023-07-24 08:47:20 +08:00
console.log(dom.offsetWidth, dom.offsetHeight);
2023-03-14 09:09:05 +08:00
html2canvas(dom, {
scale: 8,
useCORS: true,
2023-07-24 08:47:20 +08:00
width: dom.offsetWidth,
height: dom.offsetHeight,
2023-03-14 09:09:05 +08:00
}).then((canvas) => {
// this.$refs.header.appendChild(canvas);
const posterImg = canvas.toDataURL()
this.$ownerInstance.callMethod('htmlToCanvas', {
posterImg: posterImg
})
}).catch((err) => {
console.log(err)
})
2023-07-31 09:00:30 +08:00
}, 1000);
2023-03-14 09:09:05 +08:00
}
}
}
</script>
<style lang="scss"></style>