From b3d8cbf280b1cd0fc2963fc7addacc035a595ccf Mon Sep 17 00:00:00 2001 From: Attente <19653207+wikrin@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:52:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=E5=AA=92=E4=BD=93=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=B7=BB=E5=8A=A0=E6=95=B0=E5=AD=97/=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E5=8F=91=E8=A1=8C=E6=97=A5=E6=9C=9F=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/types.ts | 14 ++++++++++++++ src/locales/en-US.ts | 2 ++ src/locales/zh-CN.ts | 2 ++ src/locales/zh-TW.ts | 2 ++ src/views/discover/MediaDetailView.vue | 22 ++++++++++++++++++++++ 5 files changed, 42 insertions(+) diff --git a/src/api/types.ts b/src/api/types.ts index bfda6a29..9cc072e6 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -314,6 +314,8 @@ export interface MediaInfo { production_countries?: any[] // 语种 spoken_languages?: string[] + // 数字/实体发行日期 + release_dates?: MediaRelease[] // 状态 status?: string // 标签 @@ -368,6 +370,18 @@ export interface TmdbSeason { vote_average?: number } +// 发行信息 +export interface MediaRelease { + // 发行日期 + date: string + // 发行地区 + iso_code: string + // 备注 + note?: string + // 发行类型 + type: number +} + // TMDB集信息 export interface TmdbEpisode { // 上映日期 diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index b5c2f45b..368dc2fd 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -788,6 +788,8 @@ export default { originalTitle: 'Original Title', status: 'Status', releaseDate: 'Release Date', + digitalRelease: 'Digital Release', + physicalRelease: 'Physical Release', originalLanguage: 'Original Language', productionCountries: 'Production Countries', productionCompanies: 'Production Companies', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index a256723e..a7d8b8b4 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -786,6 +786,8 @@ export default { originalTitle: '原始标题', status: '状态', releaseDate: '上映日期', + digitalRelease: '数字发行', + physicalRelease: '实体发行', originalLanguage: '原始语言', productionCountries: '出品国家', productionCompanies: '制作公司', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 4f6a4d8c..ac1a68a7 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -773,6 +773,8 @@ export default { originalTitle: '原始標題', status: '狀態', releaseDate: '上映日期', + digitalRelease: '數位發行', + physicalRelease: '實體發行', originalLanguage: '原始語言', productionCountries: '出品國家', productionCompanies: '製作公司', diff --git a/src/views/discover/MediaDetailView.vue b/src/views/discover/MediaDetailView.vue index 54f1b62b..76750070 100644 --- a/src/views/discover/MediaDetailView.vue +++ b/src/views/discover/MediaDetailView.vue @@ -428,6 +428,17 @@ const getProductionCompanies = computed(() => { return mediaDetail.value.production_companies?.map(company => company.name) }) +// 获取最早实体/数字发行日期 +const getEarliestReleaseDate = computed(() => { + const filteredDates = mediaDetail.value.release_dates?.filter(date => [4, 5].includes(date.type)) + if (!filteredDates || filteredDates.length === 0) + return null + + return filteredDates.reduce((earliest, current) => + new Date(current.date) < new Date(earliest.date) ? current : earliest, + ) +}) + // 计算存在状态的颜色 function getExistColor(season: number) { const state = seasonsNotExisted.value[season] @@ -840,6 +851,17 @@ onBeforeMount(() => { +
+ {{ t(getEarliestReleaseDate.type === 4 ? 'media.info.digitalRelease' : 'media.info.physicalRelease') }} + + + + {{ getEarliestReleaseDate.iso_code }} + + {{ getEarliestReleaseDate.date.slice(0, 10) }} + + +
{{ t('media.info.originalLanguage') }} {{ mediaDetail.original_language }}