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(() => { +