diff --git a/src/components/app/t-postcard.vue b/src/components/app/t-postcard.vue index 57b84313..bfc20866 100644 --- a/src/components/app/t-postcard.vue +++ b/src/components/app/t-postcard.vue @@ -15,7 +15,7 @@
{{ card.title }}
- +
@@ -80,8 +80,15 @@ import { useRoute, useRouter } from "vue-router"; import { generateShareImg } from "@/utils/TGShare.js"; import { createPost } from "@/utils/TGWindow.js"; -type TPostCardProps = { modelValue: TGApp.BBS.Post.FullData; selectMode?: boolean }; -type TPostCardEmits = (e: "onSelected", v: string) => void; +type TPostCardProps = { + modelValue: TGApp.BBS.Post.FullData; + selectMode?: boolean; + userClick?: boolean; +}; +type TPostCardEmits = { + (e: "onSelected", v: string): void; + (e: "onUserClick", v: TGApp.BBS.Post.User): void; +}; type TPostStatus = RenderStatus & { stat: ActStat }; type RenderForum = { name: string; icon: string; id: number }; type RenderStatus = { stat: number; label: string; color: string }; @@ -226,6 +233,11 @@ async function toForum(forum: RenderForum): Promise { const gid = props.modelValue.post.game_id; await emit("active_deep_link", `router?path=/posts/forum/${gid}/${forum.id}`); } + +function onUserClick(): void { + if (!card.value || card.value.user === null) return; + emits("onUserClick", card.value.user); +} diff --git a/src/components/viewPost/vp-reply-item.vue b/src/components/viewPost/vp-reply-item.vue index da9cc939..13e39dc8 100644 --- a/src/components/viewPost/vp-reply-item.vue +++ b/src/components/viewPost/vp-reply-item.vue @@ -7,7 +7,7 @@ >
-
+
@@ -104,7 +104,7 @@ import TMiImg from "@comp/app/t-mi-img.vue"; import showDialog from "@comp/func/dialog.js"; import showSnackbar from "@comp/func/snackbar.js"; import { event, path } from "@tauri-apps/api"; -import type { Event, UnlistenFn } from "@tauri-apps/api/event"; +import { emit, Event, UnlistenFn } from "@tauri-apps/api/event"; import { save } from "@tauri-apps/plugin-dialog"; import { writeTextFile } from "@tauri-apps/plugin-fs"; import { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, watch } from "vue"; @@ -226,6 +226,11 @@ async function exportData(): Promise { await writeTextFile(savePath, data); showSnackbar.success("导出成功"); } + +async function handleUser(): Promise { + const uid = props.modelValue.user.uid; + await emit("userMention", uid); +}