This commit is contained in:
liuye
2023-06-30 13:46:46 +08:00
parent 60b14432b6
commit 87f046d128
2 changed files with 21 additions and 23 deletions

View File

@@ -26,8 +26,6 @@
"dui": "file:ui", "dui": "file:ui",
"echarts": "^5.1.2", "echarts": "^5.1.2",
"hash.js": "^1.1.7", "hash.js": "^1.1.7",
"html2canvas": "^1.4.1",
"jspdf": "^2.5.1",
"mp4box": "^0.4.1", "mp4box": "^0.4.1",
"print-js": "^1.0.63", "print-js": "^1.0.63",
"serialize-javascript": "^6.0.0", "serialize-javascript": "^6.0.0",

View File

@@ -166,7 +166,7 @@
</div> </div>
<div class="img-list" v-if="item.msgType == 'image'"> <div class="img-list" v-if="item.msgType == 'image'">
<img :src="item.sdkFileUrl" alt="" v-viewer /> <img :src="item.src" alt="" v-viewer />
</div> </div>
<div class="voice-info" v-if="item.msgType == 'voice'"> <div class="voice-info" v-if="item.msgType == 'voice'">
@@ -188,7 +188,7 @@
<div class="revoke-text" v-if="item.msgType == 'revoke'"> <div class="revoke-text" v-if="item.msgType == 'revoke'">
{{ item.userName {{ item.userName
}}{{ item.msgSendTime.substring(0, 16) }}撤回了一条消息 }}撤回了一条消息
</div> </div>
<div class="revoke-text" v-if="item.msgType == 'disagree'"> <div class="revoke-text" v-if="item.msgType == 'disagree'">
@@ -285,14 +285,20 @@
</ai-list> </ai-list>
</template> </template>
<script src="https://cdn.bootcdn.net/ajax/libs/html2canvas/1.4.1/html2canvas.esm.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jspdf/2.5.1/jspdf.es.js"></script>
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
import Viewer from "v-viewer"; import Viewer from "v-viewer";
import AMapLoader from "@amap/amap-jsapi-loader"; import AMapLoader from "@amap/amap-jsapi-loader";
import Vue from "vue"; import Vue from "vue";
Vue.use(Viewer); Vue.use(Viewer);
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
import jsPDF from "jspdf"; import jsPDF from "jspdf";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
const PdfLoader = (ele, pdfFileName) => { const PdfLoader = (ele, pdfFileName) => {
@@ -577,8 +583,12 @@ export default {
this.initMap(item.lng, item.lat, item.zoom, index); this.initMap(item.lng, item.lat, item.zoom, index);
} }
if (item.msgType == "image") { if (item.msgType == "image") {
item.src = this.getBase64Image(item.sdkFileUrl); var image = new Image();
console.log(item.src); image.crossOrigin = '';
image.src = item.sdkFileUrl
image.onload = ()=>{
item.src = this.getBase64Image(image);
}
} }
}); });
this.msgList = this.msgList =
@@ -606,28 +616,18 @@ export default {
this.isLoading = false; this.isLoading = false;
}); });
}, },
getBase64Image(url) { getBase64Image(img) {
function newImg(url) { var canvas = document.createElement("canvas");
return new Promise((resolve, reject) => {
let image = new Image();
image.crossOrigin = "Anonymous";
image.src = url;
image.onload = function () {
resolve(image);
};
});
}
return newImg(url).then((img) => {
let canvas = document.createElement("canvas");
canvas.width = img.width; canvas.width = img.width;
canvas.height = img.height; canvas.height = img.height;
let ctx = canvas.getContext("2d");
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height); ctx.drawImage(img, 0, 0, img.width, img.height);
let ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase(); var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
let dataURL = canvas.toDataURL("image/" + ext); var dataURL = canvas.toDataURL("image/"+ext);
return dataURL; return dataURL;
});
}, },
initMap(lng, lat, zoom, index) { initMap(lng, lat, zoom, index) {
AMapLoader.load({ AMapLoader.load({
key: "54a02a43d9828a8f9cd4f26fe281e74e", key: "54a02a43d9828a8f9cd4f26fe281e74e",