Commit 9b1653f6 authored by chenjundi's avatar chenjundi

canvas截图合并pre

parent b7a7226b
...@@ -33,7 +33,8 @@ ...@@ -33,7 +33,8 @@
</div> </div>
<div class="text1">已在唱唱学习</div> <div class="text1">已在唱唱学习</div>
<div class="text2"> <div class="text2">
<span>{{dataSession.total_day}}</span> <span>{{dataSession.total_day}}</span>
<br />
</div> </div>
</div> </div>
<div class="item"> <div class="item">
...@@ -42,7 +43,8 @@ ...@@ -42,7 +43,8 @@
</div> </div>
<div class="text1">今天学习了</div> <div class="text1">今天学习了</div>
<div class="text2"> <div class="text2">
<span>{{minute}}</span>分钟 <span>{{minute}}</span>
<br />分钟
</div> </div>
</div> </div>
<div class="item"> <div class="item">
...@@ -101,6 +103,7 @@ ...@@ -101,6 +103,7 @@
</div>--> </div>-->
</div> </div>
</div> </div>
<canvas id="canvas"></canvas>
<img class="canvasImg" @touchstart="touchStart" @touchend="touchEnd" :src="canvasData" alt /> <!-- @touchstart="touchStart" --> <img class="canvasImg" @touchstart="touchStart" @touchend="touchEnd" :src="canvasData" alt /> <!-- @touchstart="touchStart" -->
<div class="test"></div> <div class="test"></div>
<div class="white-pannel"> <div class="white-pannel">
...@@ -148,6 +151,8 @@ ...@@ -148,6 +151,8 @@
import share_code_bg from "../../assets/newLesson/share-code-bg.png"; import share_code_bg from "../../assets/newLesson/share-code-bg.png";
import img_logo from "../../assets/newLesson/logo@2x.png"; import img_logo from "../../assets/newLesson/logo@2x.png";
import share_tips from "../../assets/Bitmap@2x.png"; import share_tips from "../../assets/Bitmap@2x.png";
import canvas_bg_1 from "@/assets/share/canvas_bg_1.png";
import canvas_bg_2 from "@/assets/share/canvas_bg_2.png";
export default { export default {
name: "share", name: "share",
...@@ -410,7 +415,7 @@ ...@@ -410,7 +415,7 @@
setTimeout(() => { setTimeout(() => {
this.oimgPoint = true; this.oimgPoint = true;
}, 900); }, 900);
setTimeout(() => { /* setTimeout(() => {
that.$nextTick(() => { that.$nextTick(() => {
if (document.getElementById("capture")) { if (document.getElementById("capture")) {
html2canvas(document.getElementById("capture"), { html2canvas(document.getElementById("capture"), {
...@@ -434,8 +439,53 @@ ...@@ -434,8 +439,53 @@
}); });
} }
}); });
}, 1200);*/
setTimeout(() => {
this.animationBg = true;
this.canvasImg();
}, 1200); }, 1200);
}, },
canvasImg() {
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const canvasImage = new Image();
if (this.totalStarNum == 3) {
canvasImage.src = canvas_bg_1;
} else {
canvasImage.src = canvas_bg_2;
}
let that = this;
canvasImage.onload = function () {
canvas.width = this.width;
canvas.height = this.height;
ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
that.fillTextFn(ctx, "7vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#fff", `${that.nicknameActive}家宝宝`, 360, 265);
that.fillTextFn(ctx, "bold 11vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#ec7e1f", that.dataSession.total_day, 150, 540);
that.fillTextFn(ctx, "bold 11vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#ec7e1f", that.minute, 360, 540);
that.fillTextFn(ctx, "bold 11vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#ec7e1f", `${that.percent}%`, 580, 540);
that.fillTextFn(ctx, "bold 11vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#1d6588", that.lesson.title, 360, 840);
that.fillTextFn(ctx, "9vw Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif", "#1d6588", that.lesson.domTitle, 360, 900);
const avatarImage = new Image();
avatarImage.setAttribute("crossOrigin",'Anonymous');
avatarImage.src = that.avatarActive;
avatarImage.onload = function() {
ctx.arc(357, 173, 60, 0, 2 * Math.PI);
ctx.clip();
ctx.drawImage(this, 297, 113, 120, 120);
let dataURL = canvas.toDataURL("image/jpg", 1.0);
that.canvasData = dataURL;
};
};
},
fillTextFn(ctx, font, color, title, x, y) {
ctx.font = font;
ctx.textAlign = "center";
ctx.fillStyle = color;
ctx.fillText(title, x, y);
},
enableShare: function(option) { enableShare: function(option) {
let query = JSON.parse(sessionStorage.getItem("classQuery")); let query = JSON.parse(sessionStorage.getItem("classQuery"));
let that = this; let that = this;
...@@ -867,6 +917,9 @@ ...@@ -867,6 +917,9 @@
width: 100%; width: 100%;
z-index: 1300; z-index: 1300;
} }
#canvas {
display: none;
}
.white-pannel { .white-pannel {
position: absolute; position: absolute;
z-index: 1301; z-index: 1301;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment