mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-05-10 17:42:50 +08:00
feat: 为媒体信息添加数字/实体发行日期支持
This commit is contained in:
@@ -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 {
|
||||
// 上映日期
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -786,6 +786,8 @@ export default {
|
||||
originalTitle: '原始标题',
|
||||
status: '状态',
|
||||
releaseDate: '上映日期',
|
||||
digitalRelease: '数字发行',
|
||||
physicalRelease: '实体发行',
|
||||
originalLanguage: '原始语言',
|
||||
productionCountries: '出品国家',
|
||||
productionCompanies: '制作公司',
|
||||
|
||||
@@ -773,6 +773,8 @@ export default {
|
||||
originalTitle: '原始標題',
|
||||
status: '狀態',
|
||||
releaseDate: '上映日期',
|
||||
digitalRelease: '數位發行',
|
||||
physicalRelease: '實體發行',
|
||||
originalLanguage: '原始語言',
|
||||
productionCountries: '出品國家',
|
||||
productionCompanies: '製作公司',
|
||||
|
||||
@@ -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(() => {
|
||||
</span>
|
||||
</span>
|
||||
</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">
|
||||
<span>{{ t('media.info.originalLanguage') }}</span>
|
||||
<span class="media-fact-value">{{ mediaDetail.original_language }}</span>
|
||||
|
||||
Reference in New Issue
Block a user