|
@@ -1,9 +1,6 @@
|
|
|
<template>
|
|
<template>
|
|
|
<popup v-if="show">
|
|
<popup v-if="show">
|
|
|
- <div
|
|
|
|
|
- class="ui-message ui-message-confirm message-material"
|
|
|
|
|
- style="width: 500px"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="ui-message ui-message-confirm message-material" style="width: 500px">
|
|
|
<div class="ui-message-header header-material">
|
|
<div class="ui-message-header header-material">
|
|
|
<span>分享</span>
|
|
<span>分享</span>
|
|
|
<span @click="$emit('close')">
|
|
<span @click="$emit('close')">
|
|
@@ -14,15 +11,7 @@
|
|
|
<ul>
|
|
<ul>
|
|
|
<li>
|
|
<li>
|
|
|
<span>作品链接</span>
|
|
<span>作品链接</span>
|
|
|
- <input
|
|
|
|
|
- :title="item.share"
|
|
|
|
|
- class="ui-input"
|
|
|
|
|
- disabled
|
|
|
|
|
- type="text"
|
|
|
|
|
- maxlength="15"
|
|
|
|
|
- placeholder="输入名字"
|
|
|
|
|
- v-model="item.share"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <input :title="item.share" class="ui-input" disabled type="text" maxlength="15" placeholder="输入名字" v-model="item.share" />
|
|
|
</li>
|
|
</li>
|
|
|
<li>
|
|
<li>
|
|
|
<span>作品二维码</span>
|
|
<span>作品二维码</span>
|
|
@@ -30,7 +19,7 @@
|
|
|
</li>
|
|
</li>
|
|
|
</ul>
|
|
</ul>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<div class="ui-message-footer footer-material">
|
|
<div class="ui-message-footer footer-material">
|
|
|
<button @click="downloadImg(item)" class="ui-button">
|
|
<button @click="downloadImg(item)" class="ui-button">
|
|
|
下载二维码
|
|
下载二维码
|
|
@@ -46,6 +35,18 @@
|
|
|
<script>
|
|
<script>
|
|
|
import Popup from "@/components/shared/popup";
|
|
import Popup from "@/components/shared/popup";
|
|
|
|
|
|
|
|
|
|
+let dataUrlToBold = function(url) {
|
|
|
|
|
+ let arr = url.split(","),
|
|
|
|
|
+ mime = arr[0].match(/:(.*?);/)[1],
|
|
|
|
|
+ bStr = atob(arr[1]),
|
|
|
|
|
+ n = bStr.length,
|
|
|
|
|
+ u8arr = new Uint8Array(n);
|
|
|
|
|
+ while (n--) {
|
|
|
|
|
+ u8arr[n] = bStr.charCodeAt(n);
|
|
|
|
|
+ }
|
|
|
|
|
+ return new Blob([u8arr], { type: mime });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
props: ["show", "item"],
|
|
props: ["show", "item"],
|
|
|
components: {
|
|
components: {
|
|
@@ -59,11 +60,34 @@ export default {
|
|
|
mounted() {},
|
|
mounted() {},
|
|
|
methods: {
|
|
methods: {
|
|
|
downloadImg(workItem) {
|
|
downloadImg(workItem) {
|
|
|
- var a = document.createElement("a");
|
|
|
|
|
- var event = new MouseEvent("click");
|
|
|
|
|
- a.download = workItem.name;
|
|
|
|
|
- a.href = workItem.qrCode;
|
|
|
|
|
- a.dispatchEvent(event);
|
|
|
|
|
|
|
+ let val = workItem.qrCode
|
|
|
|
|
+ // var a = document.createElement("a");
|
|
|
|
|
+ // a.download = 'qrcode';
|
|
|
|
|
+ // a.href = 'https://4dkk.4dage.com/720yun_fd_manage/620/qrCode.jpg';
|
|
|
|
|
+ // a.target
|
|
|
|
|
+ // console.log(workItem,11222);
|
|
|
|
|
+ // val 为传入的图片地址
|
|
|
|
|
+ let _type_index = val.lastIndexOf(".");
|
|
|
|
|
+ let _type = val.substr(_type_index + 1); //原始图片类型
|
|
|
|
|
+ let image = new Image();
|
|
|
|
|
+ image.setAttribute("crossOrigin", "anonymous"); //消除跨域
|
|
|
|
|
+ image.src = val;
|
|
|
|
|
+ image.onload = function() {
|
|
|
|
|
+ //借助canvas实现 消除 图片地址会先直接窗口打开图片地址
|
|
|
|
|
+ let canvas = document.createElement("canvas");
|
|
|
|
|
+ canvas.width = image.width;
|
|
|
|
|
+ canvas.height = image.height;
|
|
|
|
|
+ let context = canvas.getContext("2d");
|
|
|
|
|
+ context.drawImage(image, 0, 0, image.width, image.height);
|
|
|
|
|
+ let url = canvas.toDataURL("image/" + _type);
|
|
|
|
|
+ let blob = dataUrlToBold(url);
|
|
|
|
|
+ let obj_url = URL.createObjectURL(blob); // 消除Chrome下文件太大 导致下载失败(网络失败)的问题
|
|
|
|
|
+ let a = document.createElement("a");
|
|
|
|
|
+ let event = new MouseEvent("click");
|
|
|
|
|
+ a.download = workItem.name || "qrcode";
|
|
|
|
|
+ a.href = obj_url;
|
|
|
|
|
+ a.dispatchEvent(event);
|
|
|
|
|
+ };
|
|
|
},
|
|
},
|
|
|
copy(text) {
|
|
copy(text) {
|
|
|
var textArea = document.createElement("textarea");
|
|
var textArea = document.createElement("textarea");
|
|
@@ -85,11 +109,9 @@ export default {
|
|
|
textArea.select();
|
|
textArea.select();
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- document.execCommand("copy")
|
|
|
|
|
- ? this.$msg.success("复制成功")
|
|
|
|
|
- : this.$msg.error("复制失败");
|
|
|
|
|
|
|
+ document.execCommand("copy") ? this.$msg.success("复制成功") : this.$msg.error("复制失败");
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
- this.$msg.error("复制失败")
|
|
|
|
|
|
|
+ this.$msg.error("复制失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
document.body.removeChild(textArea);
|
|
document.body.removeChild(textArea);
|
|
@@ -125,7 +147,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
> img {
|
|
> img {
|
|
|
width: 120px;
|
|
width: 120px;
|
|
|
- border: 1px solid #EBEDF0;
|
|
|
|
|
|
|
+ border: 1px solid #ebedf0;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
}
|
|
}
|
|
|
.ui-input {
|
|
.ui-input {
|