<template> <div> <div class="qrcodeposter_wrap" v-if="showDom" id="canvasPoster"> <img class="avatar_pic" :src="avatarImg" @load="imgLoad" alt /> <div class="name">{{userName}}</div> <div class="interview">邀請你加入代表通</div> <div class="title">#掃描下方二維碼邀請目標醫生 加入專區#</div> <!-- <div class="qrcode_img">{{avatarImg}}</div> --> <!-- wx --> <div class="codeImg" style="width:1.45rem;height:1.45rem;margin:.15rem auto" id="qrCode"></div> <div class="footer_txt"> 邀請語:聖誕快樂!感謝您仍奮戰在守護人類健康的第一線 ,願您重視自己的健康生活和能力,以提供最高水准的醫療 </div> </div> <img style="width:100%;height:100%" :src="dataImg" v-if="dataImg" alt> </div> </template>
import QRCode from "qrcode2"; import html2canvas from "html2canvas"; export default { data() { return { avatarImg: "", userName: "", showDom: true, dataImg:'' }; }, created() { this.userName = this.curUser.userName; this.avatarImg = this.curUser.url; }, computed: { ...mapGetters({ curUser: "user/curUser", }), }, mounted() { this.QCode(); }, methods: { // 創建海報 createPoster() { const poster = document.getElementById("canvasPoster"); html2canvas(poster, { dpi: window.devicePixelRatio * 2, backgroundColor: "#fff", useCORS: true, scale: 2, async: true, }).then((canvas) => { this.dataImg = canvas.toDataURL("image/jpeg"); this.showDom = false; }); }, imgLoad() { this.createPoster(); }, // wx 二維碼 QCode() { let qrcode = new QRCode("qrCode", { width: 150, height: 150, // 高度 text: `${location.origin}${location.pathname}/#/?inviteUid=${this.curUser.userId}`, colorDark: "#000", colorLight: "#fff", }); }, }, }; </script>