mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 21:02:49 +00:00
no message
This commit is contained in:
parent
fa2959515e
commit
f3683bcc84
69
resources/assets/js/functions/common.js
vendored
69
resources/assets/js/functions/common.js
vendored
@ -1409,7 +1409,74 @@ const timezone = require("dayjs/plugin/timezone");
|
|||||||
|
|
||||||
// 直接返回clear函数
|
// 直接返回clear函数
|
||||||
return clear;
|
return clear;
|
||||||
}
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过URL生成base64图片
|
||||||
|
* @param url 图片URL
|
||||||
|
* @param quality 图片质量,默认0.8
|
||||||
|
* @param maxWidth 最大宽度,0表示不限制
|
||||||
|
* @param maxHeight 最大高度,0表示不限制
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*/
|
||||||
|
generateBase64Image(url, quality = 1, maxWidth = 0, maxHeight = 0) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
let canvas = document.createElement('canvas'),
|
||||||
|
ctx = canvas.getContext('2d'),
|
||||||
|
img = new Image;
|
||||||
|
img.crossOrigin = 'Anonymous';
|
||||||
|
img.onload = () => {
|
||||||
|
let width = img.width;
|
||||||
|
let height = img.height;
|
||||||
|
|
||||||
|
// 处理等比例缩放
|
||||||
|
if ((maxWidth > 0 || maxHeight > 0) && (width > 0 && height > 0)) {
|
||||||
|
// 计算宽高比
|
||||||
|
const ratio = width / height;
|
||||||
|
|
||||||
|
if (maxWidth > 0 && maxHeight > 0) {
|
||||||
|
// 同时指定了最大宽度和高度,按照最小比例缩放
|
||||||
|
if (width > maxWidth || height > maxHeight) {
|
||||||
|
const ratioWidth = maxWidth / width;
|
||||||
|
const ratioHeight = maxHeight / height;
|
||||||
|
const ratioMin = Math.min(ratioWidth, ratioHeight);
|
||||||
|
|
||||||
|
width = Math.round(width * ratioMin);
|
||||||
|
height = Math.round(height * ratioMin);
|
||||||
|
}
|
||||||
|
} else if (maxWidth > 0 && width > maxWidth) {
|
||||||
|
// 只指定了最大宽度
|
||||||
|
width = maxWidth;
|
||||||
|
height = Math.round(width / ratio);
|
||||||
|
} else if (maxHeight > 0 && height > maxHeight) {
|
||||||
|
// 只指定了最大高度
|
||||||
|
height = maxHeight;
|
||||||
|
width = Math.round(height * ratio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
canvas.width = width;
|
||||||
|
canvas.height = height;
|
||||||
|
ctx.drawImage(img, 0, 0, width, height);
|
||||||
|
|
||||||
|
let format = "png";
|
||||||
|
if ($A.rightExists(url, "jpg") || $A.rightExists(url, "jpeg")) {
|
||||||
|
format = "jpeg"
|
||||||
|
} else if ($A.rightExists(url, "webp")) {
|
||||||
|
format = "webp"
|
||||||
|
} else if ($A.rightExists(url, "git")) {
|
||||||
|
format = "git"
|
||||||
|
}
|
||||||
|
resolve(canvas.toDataURL(`image/${format}`, quality));
|
||||||
|
|
||||||
|
// 清理资源
|
||||||
|
canvas = null;
|
||||||
|
img = null;
|
||||||
|
ctx = null;
|
||||||
|
};
|
||||||
|
img.src = url;
|
||||||
|
})
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -3549,7 +3549,7 @@ export default {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case 'image':
|
case 'image':
|
||||||
if (this.$Electron) {
|
if (this.$Electron) {
|
||||||
this.getBase64Image(value).then(base64 => {
|
$A.generateBase64Image(value).then(base64 => {
|
||||||
this.$Electron.sendMessage('copyBase64Image', {base64});
|
this.$Electron.sendMessage('copyBase64Image', {base64});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -4242,31 +4242,6 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
getBase64Image(url) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
let canvas = document.createElement('CANVAS'),
|
|
||||||
ctx = canvas.getContext('2d'),
|
|
||||||
img = new Image;
|
|
||||||
img.crossOrigin = 'Anonymous';
|
|
||||||
img.onload = () => {
|
|
||||||
canvas.height = img.height;
|
|
||||||
canvas.width = img.width;
|
|
||||||
ctx.drawImage(img, 0, 0);
|
|
||||||
let format = "png";
|
|
||||||
if ($A.rightExists(url, "jpg") || $A.rightExists(url, "jpeg")) {
|
|
||||||
format = "jpeg"
|
|
||||||
} else if ($A.rightExists(url, "webp")) {
|
|
||||||
format = "webp"
|
|
||||||
} else if ($A.rightExists(url, "git")) {
|
|
||||||
format = "git"
|
|
||||||
}
|
|
||||||
resolve(canvas.toDataURL(`image/${format}`));
|
|
||||||
canvas = null;
|
|
||||||
};
|
|
||||||
img.src = url;
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
getSelectedTextInElement(element) {
|
getSelectedTextInElement(element) {
|
||||||
const selection = document.getSelection();
|
const selection = document.getSelection();
|
||||||
if (selection.rangeCount > 0) {
|
if (selection.rangeCount > 0) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user