fix(admin): 转码媒资 id 按字符串传递并处理空态
This commit is contained in:
1 parent
a4893c31a2
commit
fecc3b4817
6 files changed
+82
-13
No files matched your search
@@ -12,7 +12,7 @@ export const getEpisodeTranscodeApi = (episodeId: number | string) => {
|
||||
|
||||
/** 按媒体分页读取帧图;页面切换时复用该接口。 */
|
||||
export const getMediaThumbnailsApi = (
|
||||
mediaAssetId: number | string,
|
||||
mediaAssetId: string,
|
||||
pageIndex: number,
|
||||
pageSize: number
|
||||
) => {
|
||||
@@ -23,7 +23,7 @@ export const getMediaThumbnailsApi = (
|
||||
}
|
||||
|
||||
/** 手动触发或重转当前分集绑定的媒体。 */
|
||||
export const triggerMediaTranscodeApi = (mediaAssetId: number | string) => {
|
||||
export const triggerMediaTranscodeApi = (mediaAssetId: string) => {
|
||||
return request.post<TranscodeTriggerResult>({
|
||||
url: `/admin/media/${mediaAssetId}/transcode`
|
||||
})
|
||||
|
||||
@@ -249,7 +249,7 @@ export interface MediaTranscodeProfile {
|
||||
}
|
||||
|
||||
export interface MediaRenditionItem {
|
||||
id: number
|
||||
id: string
|
||||
quality: string
|
||||
qualityName: string
|
||||
width: number
|
||||
@@ -292,8 +292,8 @@ export interface MediaThumbnailSpriteInfo {
|
||||
}
|
||||
|
||||
export interface MediaThumbnailResult {
|
||||
mediaAssetId?: number | null
|
||||
episodeId?: number | null
|
||||
mediaAssetId?: string | null
|
||||
episodeId?: string | null
|
||||
/** READY / FAILED / EMPTY / INVALID / NO_EPISODE */
|
||||
status: string
|
||||
errorMsg?: string
|
||||
@@ -304,9 +304,9 @@ export interface MediaThumbnailResult {
|
||||
}
|
||||
|
||||
export interface EpisodeTranscodeItem {
|
||||
episodeId: number
|
||||
mediaAssetId?: number | null
|
||||
taskId?: number | null
|
||||
episodeId: string
|
||||
mediaAssetId?: string | null
|
||||
taskId?: string | null
|
||||
status: string
|
||||
progress?: number
|
||||
retryCount?: number
|
||||
@@ -316,7 +316,7 @@ export interface EpisodeTranscodeItem {
|
||||
}
|
||||
|
||||
export interface TranscodeTriggerResult {
|
||||
taskId: number
|
||||
taskId: string
|
||||
status: string
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
} from './episodeTranscodeUi'
|
||||
|
||||
const props = defineProps<{
|
||||
episodeId: number
|
||||
episodeId: string | number
|
||||
active: boolean
|
||||
}>()
|
||||
|
||||
@@ -45,8 +45,8 @@ let pollTimer: ReturnType<typeof setTimeout> | null = null
|
||||
let requestSeq = 0
|
||||
let thumbnailSeq = 0
|
||||
|
||||
const mediaAssetId = computed(() => Number(detail.value?.mediaAssetId || 0))
|
||||
const hasMedia = computed(() => mediaAssetId.value > 0)
|
||||
const mediaAssetId = computed(() => detail.value?.mediaAssetId || '')
|
||||
const hasMedia = computed(() => /^[1-9]\d*$/.test(mediaAssetId.value))
|
||||
const normalizedStatus = computed(() => String(detail.value?.status || '').toUpperCase())
|
||||
const renditions = computed(() => detail.value?.renditions || [])
|
||||
const isProcessing = computed(
|
||||
|
||||
@@ -47,7 +47,7 @@ const { t } = useI18n()
|
||||
</div>
|
||||
<el-empty
|
||||
v-else-if="detail && !view.hasMedia"
|
||||
:description="t('episodeTranscode.noMedia')"
|
||||
:description="detail.errorMsg || t('episodeTranscode.noMedia')"
|
||||
:image-size="72"
|
||||
/>
|
||||
<template v-else-if="detail">
|
||||
|
||||
Reference in new issue
Block a user