feat(admin): 新增转码设置页面
This commit is contained in:
1 parent
723d056fc7
commit
218196ee9f
16 files changed
+1014
-3
No files matched your search
@@ -0,0 +1,49 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
import type { MediaTranscodeProfile } from '@/api/admin/types'
|
||||
import { defaultProfile, defaultRung, defaultSprite } from './transcodeProfileDefaults'
|
||||
|
||||
/** 用服务端响应回填表单,同时保持字段名与后端完全一致。 */
|
||||
export const applyProfileToForm = (
|
||||
form: MediaTranscodeProfile,
|
||||
profile?: MediaTranscodeProfile | null
|
||||
): void => {
|
||||
const source = profile || defaultProfile()
|
||||
form.enabled = Boolean(source.enabled)
|
||||
form.segmentSeconds = Number(source.segmentSeconds)
|
||||
form.sprite = { ...defaultSprite(), ...(source.sprite || {}) }
|
||||
const ladder =
|
||||
Array.isArray(source.ladder) && source.ladder.length ? source.ladder : [defaultRung()]
|
||||
form.ladder.splice(
|
||||
0,
|
||||
form.ladder.length,
|
||||
...ladder.map((row) => ({
|
||||
quality: row.quality || '',
|
||||
width: Number(row.width),
|
||||
height: Number(row.height),
|
||||
videoBitrateKbps: Number(row.videoBitrateKbps),
|
||||
audioBitrateKbps: Number(row.audioBitrateKbps),
|
||||
enabled: Boolean(row.enabled)
|
||||
}))
|
||||
)
|
||||
}
|
||||
|
||||
/** 生成只包含后端约定字段的 PUT 请求体。 */
|
||||
export const buildProfilePayload = (form: MediaTranscodeProfile): MediaTranscodeProfile => ({
|
||||
enabled: form.enabled,
|
||||
segmentSeconds: Number(form.segmentSeconds),
|
||||
ladder: form.ladder.map((row) => ({
|
||||
quality: row.quality.trim(),
|
||||
width: Number(row.width),
|
||||
height: Number(row.height),
|
||||
videoBitrateKbps: Number(row.videoBitrateKbps),
|
||||
audioBitrateKbps: Number(row.audioBitrateKbps),
|
||||
enabled: Boolean(row.enabled)
|
||||
})),
|
||||
sprite: {
|
||||
enabled: Boolean(form.sprite.enabled),
|
||||
intervalSeconds: Number(form.sprite.intervalSeconds),
|
||||
columns: Number(form.sprite.columns),
|
||||
thumbWidth: Number(form.sprite.thumbWidth)
|
||||
}
|
||||
})
|
||||
Reference in new issue
Block a user