Merge remote-tracking branch 'origin/StableVersion' into localDevelop

This commit is contained in:
X1627315083
2024-05-28 16:06:01 +08:00
22 changed files with 342 additions and 219 deletions

View File

@@ -1,45 +1,48 @@
import html2canvas from "html2canvas";
const getJpeg = dom =>{
return new Promise(resolve =>{
html2canvas(dom,{useCORS: true,}).then(canvas =>{
let base64 = canvas.toDataURL('image/jpeg',.9);
let quality = 0.9 // 压缩系数0-1之间
let newImage = new Image()
newImage.src = base64
newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要
let imgWidth,
imgHeight
let w = undefined
newImage.onload = function () {
w = this.width * 1
imgWidth = this.width
imgHeight = this.height
let canvas = document.createElement('canvas')
let ctx = canvas.getContext('2d')
if (Math.max(imgWidth, imgHeight) > w) {
if (imgWidth > imgHeight) {
canvas.width = w
canvas.height = w * (imgHeight / imgWidth)
} else {
canvas.height = w
canvas.width = w * (imgWidth / imgHeight)
}
} else {
canvas.width = imgWidth
canvas.height = imgHeight
quality = 0.6
}
ctx.clearRect(0, 0, canvas.width, canvas.height)
ctx.drawImage(this, 0, 0, canvas.width, canvas.height) // // 这里面的 this 指向 newImage
let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 压缩语句
let fileData = dataURLtoFile(smallBase64);
let fileOfBlob = new File([fileData], new Date() + ".jpg"); // 命名图片名
// console.log(smallBase64);
// resolve(base64ToFile(fileOfBlob))
resolve(fileOfBlob)
}
return new Promise(resolve =>{
setTimeout(() => {
html2canvas(dom,{useCORS: true,}).then(canvas =>{
let base64 = canvas.toDataURL('image/jpeg',.9);
// let quality = 0.9 // 压缩系数0-1之间
let newImage = new Image()
newImage.src = base64
newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要
// let imgWidth,
// imgHeight
// let w = undefined
newImage.onload = function () {
// w = this.width * 1
// imgWidth = this.width
// imgHeight = this.height
// let canvas = document.createElement('canvas')
// let ctx = canvas.getContext('2d')
// if (Math.max(imgWidth, imgHeight) > w) {
// if (imgWidth > imgHeight) {
// canvas.width = w
// canvas.height = w * (imgHeight / imgWidth)
// } else {
// canvas.height = w
// canvas.width = w * (imgWidth / imgHeight)
// }
// } else {
// canvas.width = imgWidth
// canvas.height = imgHeight
// quality = 0.6
// }
// ctx.clearRect(0, 0, canvas.width, canvas.height)
// ctx.drawImage(this, 0, 0, canvas.width, canvas.height) // // 这里面的 this 指向 newImage
// let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 压缩语句
let fileData = dataURLtoFile(base64);
let fileOfBlob = new File([fileData], new Date() + ".jpg"); // 命名图片名
// console.log(smallBase64);
// resolve(base64ToFile(fileOfBlob))
resolve(fileOfBlob)
}
})
}, 100);
})
})
}
//base64转成blob
function dataURLtoFile(dataURI, type) {

View File

@@ -149,7 +149,7 @@ const formatTime = (timestamp, fmt) => {//吧时间戳转为YYYY-MM-DD hh:mm:ss
const isMoible = () => {//判断是否是移动端
let is_mobile = navigator.userAgent.toLowerCase().match(/(ipad|ipod|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
// alert(navigator.userAgent.toLowerCase())
var isiPad = (navigator.maxTouchPoints && navigator.maxTouchPoints > 0);
var isiPad = (navigator.maxTouchPoints && navigator.maxTouchPoints > 1);
// if (is_mobile) {
// return true//判断是否在正则内
// } else if(window.matchMedia("(pointer:fine)").matches){
@@ -160,7 +160,7 @@ const isMoible = () => {//判断是否是移动端
if (is_mobile) {
return true//判断是否在正则内
} else{
isiPad//判断触摸点
return isiPad//判断触摸点
}
}