mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-07-12 16:01:35 +08:00
feat: 为媒体信息添加数字/实体发行日期支持
This commit is contained in:
@@ -314,6 +314,8 @@ export interface MediaInfo {
|
|||||||
production_countries?: any[]
|
production_countries?: any[]
|
||||||
// 语种
|
// 语种
|
||||||
spoken_languages?: string[]
|
spoken_languages?: string[]
|
||||||
|
// 数字/实体发行日期
|
||||||
|
release_dates?: MediaRelease[]
|
||||||
// 状态
|
// 状态
|
||||||
status?: string
|
status?: string
|
||||||
// 标签
|
// 标签
|
||||||
@@ -368,6 +370,18 @@ export interface TmdbSeason {
|
|||||||
vote_average?: number
|
vote_average?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发行信息
|
||||||
|
export interface MediaRelease {
|
||||||
|
// 发行日期
|
||||||
|
date: string
|
||||||
|
// 发行地区
|
||||||
|
iso_code: string
|
||||||
|
// 备注
|
||||||
|
note?: string
|
||||||
|
// 发行类型
|
||||||
|
type: number
|
||||||
|
}
|
||||||
|
|
||||||
// TMDB集信息
|
// TMDB集信息
|
||||||
export interface TmdbEpisode {
|
export interface TmdbEpisode {
|
||||||
// 上映日期
|
// 上映日期
|
||||||
|
|||||||
@@ -788,6 +788,8 @@ export default {
|
|||||||
originalTitle: 'Original Title',
|
originalTitle: 'Original Title',
|
||||||
status: 'Status',
|
status: 'Status',
|
||||||
releaseDate: 'Release Date',
|
releaseDate: 'Release Date',
|
||||||
|
digitalRelease: 'Digital Release',
|
||||||
|
physicalRelease: 'Physical Release',
|
||||||
originalLanguage: 'Original Language',
|
originalLanguage: 'Original Language',
|
||||||
productionCountries: 'Production Countries',
|
productionCountries: 'Production Countries',
|
||||||
productionCompanies: 'Production Companies',
|
productionCompanies: 'Production Companies',
|
||||||
|
|||||||
@@ -786,6 +786,8 @@ export default {
|
|||||||
originalTitle: '原始标题',
|
originalTitle: '原始标题',
|
||||||
status: '状态',
|
status: '状态',
|
||||||
releaseDate: '上映日期',
|
releaseDate: '上映日期',
|
||||||
|
digitalRelease: '数字发行',
|
||||||
|
physicalRelease: '实体发行',
|
||||||
originalLanguage: '原始语言',
|
originalLanguage: '原始语言',
|
||||||
productionCountries: '出品国家',
|
productionCountries: '出品国家',
|
||||||
productionCompanies: '制作公司',
|
productionCompanies: '制作公司',
|
||||||
|
|||||||
@@ -773,6 +773,8 @@ export default {
|
|||||||
originalTitle: '原始標題',
|
originalTitle: '原始標題',
|
||||||
status: '狀態',
|
status: '狀態',
|
||||||
releaseDate: '上映日期',
|
releaseDate: '上映日期',
|
||||||
|
digitalRelease: '數位發行',
|
||||||
|
physicalRelease: '實體發行',
|
||||||
originalLanguage: '原始語言',
|
originalLanguage: '原始語言',
|
||||||
productionCountries: '出品國家',
|
productionCountries: '出品國家',
|
||||||
productionCompanies: '製作公司',
|
productionCompanies: '製作公司',
|
||||||
|
|||||||
@@ -428,6 +428,17 @@ const getProductionCompanies = computed(() => {
|
|||||||
return mediaDetail.value.production_companies?.map(company => company.name)
|
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) {
|
function getExistColor(season: number) {
|
||||||
const state = seasonsNotExisted.value[season]
|
const state = seasonsNotExisted.value[season]
|
||||||
@@ -840,6 +851,17 @@ onBeforeMount(() => {
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="mediaDetail.type === '电影' && getEarliestReleaseDate" class="media-fact">
|
||||||
|
<span>{{ t(getEarliestReleaseDate.type === 4 ? 'media.info.digitalRelease' : 'media.info.physicalRelease') }}</span>
|
||||||
|
<span class="media-fact-value">
|
||||||
|
<span class="flex items-center justify-end">
|
||||||
|
<span class="inline-flex items-center justify-center h-4 w-4 text-[0.6rem] font-bold text-current border border-current leading-none">
|
||||||
|
{{ getEarliestReleaseDate.iso_code }}
|
||||||
|
</span>
|
||||||
|
<span class="ml-1.5">{{ getEarliestReleaseDate.date.slice(0, 10) }}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
<div v-if="mediaDetail.original_language" class="media-fact">
|
<div v-if="mediaDetail.original_language" class="media-fact">
|
||||||
<span>{{ t('media.info.originalLanguage') }}</span>
|
<span>{{ t('media.info.originalLanguage') }}</span>
|
||||||
<span class="media-fact-value">{{ mediaDetail.original_language }}</span>
|
<span class="media-fact-value">{{ mediaDetail.original_language }}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user