diff --git a/src/components/cards/MediaCard.vue b/src/components/cards/MediaCard.vue index 2af9919f..d131a7e9 100644 --- a/src/components/cards/MediaCard.vue +++ b/src/components/cards/MediaCard.vue @@ -18,9 +18,14 @@ import { hasPermission } from '@/utils/permission' // 国际化 const { t } = useI18n() +interface MediaCardMedia extends MediaInfo { + total_episode?: number + episode_count?: number +} + // 输入参数 const props = defineProps({ - media: Object as PropType, + media: Object as PropType, width: String, height: String, }) @@ -232,6 +237,14 @@ async function handleCheckSubscribe() { // 查询当前媒体是否已入库 async function handleCheckExists() { try { + // 对于总集数为 0 的电视剧季(TMDB 未返回有效集数),不展示“已入库”角标,避免误判 + const totalEpisode = props.media?.total_episode ?? props.media?.episode_count ?? props.media?.number_of_episodes ?? 0 + + if (props.media?.type === '电视剧' && totalEpisode === 0) { + isExists.value = false + return + } + const result: { [key: string]: any } = await api.get('mediaserver/exists', { params: { tmdbid: props.media?.tmdb_id,