From 15a402d6ea1d3653bbfe261fb250da0a0526424f Mon Sep 17 00:00:00 2001 From: BTMuli Date: Fri, 13 Feb 2026 21:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20emoji=E5=8A=A0=E8=BD=BD=E9=87=8D?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/viewPost/tp-emoticon.vue | 1 + src/components/viewPost/tp-text.vue | 33 ++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/components/viewPost/tp-emoticon.vue b/src/components/viewPost/tp-emoticon.vue index 6c8e9022..153d78ec 100644 --- a/src/components/viewPost/tp-emoticon.vue +++ b/src/components/viewPost/tp-emoticon.vue @@ -107,6 +107,7 @@ async function handleEmoticonClick(): Promise { localUrl.value = undefined; await nextTick(); localUrl.value = await saveImgLocal(props.data.insert.custom_emoticon.url); + loadErr.value = false; return; } showOverlay.value = true; diff --git a/src/components/viewPost/tp-text.vue b/src/components/viewPost/tp-text.vue index 8e607b3a..ab466887 100644 --- a/src/components/viewPost/tp-text.vue +++ b/src/components/viewPost/tp-text.vue @@ -10,7 +10,14 @@ {{ decodeRegExp(props.data.insert) }} - + (); const mode = ref("text"); const localEmojis = ref(localStorage.getItem("emojis")); + +const emojiErr = ref(true); +const emojiEl = useTemplateRef("emojiRef"); const emojis = shallowRef>([]); console.log("tpText", JSON.stringify(props.data.insert), toRaw(props.data)?.attributes); @@ -132,8 +142,6 @@ function getEmojiUrl(): string { bbsReq.emojis().then((res) => { if ("retcode" in res) { console.error(res); - showSnackbar.error("获取表情包失败!"); - mode.value = "text"; return ""; } localEmojis.value = JSON.stringify(res); @@ -150,6 +158,23 @@ function getEmojiUrl(): string { function getEmojiName(): string { return props.data.insert.slice(2, -1); } + +function handleEmojiClick(): void { + if (!emojiErr.value || !emojiEl.value) return; + const name = getEmojiName(); + emojiEl.value.src = getEmojiUrl(); + emojiEl.value.title = name; + emojiEl.value.alt = name; + emojiEl.value.style.cursor = "unset"; + emojiErr.value = false; +} + +function handleEmojiError(): void { + if (!emojiEl.value) return; + emojiErr.value = true; + emojiEl.value.style.cursor = "pointer"; + emojiEl.value.title = "点击重新加载"; +}