From 8f2ea6deea1896dc24e0799db42d82a39a0b9631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=AE=E6=A3=83?= Date: Sun, 2 Mar 2025 14:16:20 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A5=85=20=E6=8D=95=E8=8E=B7=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E5=9B=BE=E7=94=9F=E6=88=90=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/func/snackbar.vue | 5 ++++- src/utils/TGShare.ts | 15 +++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/components/func/snackbar.vue b/src/components/func/snackbar.vue index 5ae9ebc1..47559b04 100644 --- a/src/components/func/snackbar.vue +++ b/src/components/func/snackbar.vue @@ -103,13 +103,16 @@ defineExpose({ displayBox }); .func-snackbar { display: flex; min-width: 200px; - height: 40px; + max-width: calc(100% - 40px); + min-height: 40px; + box-sizing: border-box; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 5px; background-color: v-bind(bgColor); box-shadow: 0 0 10px rgb(0 0 0 / 20%); + word-break: break-all; } .func-snackbar-text { diff --git a/src/utils/TGShare.ts b/src/utils/TGShare.ts index cdab6da6..6d13e725 100644 --- a/src/utils/TGShare.ts +++ b/src/utils/TGShare.ts @@ -1,7 +1,7 @@ /** * @file utils/TGShare.ts * @description 生成分享截图并保存到本地 - * @since Beta v0.6.8 + * @since Beta v0.7.1 */ import showSnackbar from "@comp/func/snackbar.js"; @@ -85,7 +85,7 @@ function getShareImgBgColor(): string { /** * @description 生成分享截图 - * @since Beta v0.6.7 + * @since Beta v0.7.1 * @param {string} fileName - 文件名 * @param {HTMLElement} element - 元素 * @param {number} scale - 缩放比例 @@ -117,8 +117,15 @@ export async function generateShareImg( y: -15, dpi: 350, }; - // @ts-expect-error This expression is not callable. - const canvasData = await html2canvas(element, opts); + let canvasData; + try { + // @ts-expect-error This expression is not callable. + canvasData = await html2canvas(element, opts); + } catch (e) { + await TGLogger.Error(`[generateShareImg][${fileName}] 生成分享截图失败 ${e}`); + showSnackbar.error(`生成分享截图失败: ${e}`); + return; + } if (scrollable) element.style.maxHeight = maxHeight; const buffer = new Uint8Array( atob(canvasData.toDataURL("image/png").split(",")[1])