diff --git a/src/components/app/t-postcard.vue b/src/components/app/t-postcard.vue index 0952906e..9e2e322d 100644 --- a/src/components/app/t-postcard.vue +++ b/src/components/app/t-postcard.vue @@ -77,7 +77,21 @@ import { createPost } from "@/utils/TGWindow.js"; type TPostCardProps = { modelValue: TGApp.Plugins.Mys.Post.FullData; selectMode?: boolean }; type TPostCardEmits = (e: "onSelected", v: string) => void; -type TPostStatus = TGApp.Plugins.Mys.News.RenderStatus & { stat: ActStat }; +type TPostStatus = RenderStatus & { stat: ActStat }; +type RenderForum = { name: string; icon: string; id: number }; +type RenderStatus = { stat: number; label: string; color: string }; +type RenderData = { mark: number; forward: number; like: number; reply: number; view: number }; +export type RenderCard = { + title: string; + cover: string; + postId: number; + subtitle: string; + user: TGApp.Plugins.Mys.User.Post | null; + forum: RenderForum | null; + data: RenderData | null; + status?: RenderStatus; + topics: Array; +}; enum ActStat { UNKNOWN, @@ -94,7 +108,7 @@ const stats: Readonly> = [ ]; const props = withDefaults(defineProps(), { selectMode: false }); const emits = defineEmits(); -const card = shallowRef(); +const card = shallowRef(); const cardBg = computed(() => { if (card.value && card.value.status) return card.value.status.color; @@ -108,7 +122,7 @@ watch( async () => (card.value = getPostCard(props.modelValue)), ); -function getActivityStatus(status: number): TGApp.Plugins.Mys.News.RenderStatus { +function getActivityStatus(status: number): RenderStatus { if (status satisfies ActStat) { const stat: ActStat = status; return stats[stat]; @@ -126,15 +140,9 @@ function getPostCover(item: TGApp.Plugins.Mys.Post.FullData): string { return `${cover}?x-oss-process=image/resize,m_fill,w_360,h_130,limit_0/format,png`; } -/** - * @description 获取公共属性 - * @since Beta v0.6.1 - * @param {TGApp.Plugins.Mys.Post.FullData} item 咨讯列表项 - * @returns {TGApp.Plugins.Mys.News.RenderCard} 渲染用咨讯列表项 - */ -function getCommonCard(item: TGApp.Plugins.Mys.Post.FullData): TGApp.Plugins.Mys.News.RenderCard { - let forumData: TGApp.Plugins.Mys.News.RenderForum | null = null; - let statData: TGApp.Plugins.Mys.News.RenderData | null = null; +function getCommonCard(item: TGApp.Plugins.Mys.Post.FullData): RenderCard { + let forumData: RenderForum | null = null; + let statData: RenderData | null = null; if (item.forum !== null) { forumData = { name: item.forum.name, icon: item.forum.icon, id: item.forum.id }; } @@ -159,7 +167,7 @@ function getCommonCard(item: TGApp.Plugins.Mys.Post.FullData): TGApp.Plugins.Mys }; } -function getPostCard(item: TGApp.Plugins.Mys.Post.FullData): TGApp.Plugins.Mys.News.RenderCard { +function getPostCard(item: TGApp.Plugins.Mys.Post.FullData): RenderCard { const commonCard = getCommonCard(item); if ( item.news_meta !== undefined && @@ -186,12 +194,12 @@ async function shareCard(): Promise { await generateShareImg(fileName, shareDom, 2.5); } -async function toTopic(topic: TGApp.Plugins.Mys.Topic.Info): Promise { +async function toTopic(topic: TGApp.BBS.Topic.Info): Promise { const gid = props.modelValue.post.game_id; await emit("active_deep_link", `router?path=/posts/topic/${gid}/${topic.id}`); } -async function toForum(forum: TGApp.Plugins.Mys.News.RenderForum): Promise { +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}`); } diff --git a/src/components/userScripts/tus-mission.vue b/src/components/userScripts/tus-mission.vue index 85fc5abd..77e06524 100644 --- a/src/components/userScripts/tus-mission.vue +++ b/src/components/userScripts/tus-mission.vue @@ -31,14 +31,14 @@