64387c00bb
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 1247h21m43s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 1247h21m43s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1247h21m44s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 1247h27m46s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1247h33m44s
CI/CD Pipeline / Deploy Production (push) Failing after 1247h40m40s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 1247h46m28s
CI/CD Pipeline / Build Production API Image (push) Failing after 1247h46m32s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 1247h48m13s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1247h48m17s
CI/CD Pipeline / PR Build Web Image (push) Failing after 1247h48m15s
CI/CD Pipeline / Validate - Code Quality (push) Failing after 2m17s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m54s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m43s
CI/CD Pipeline / Unit Tests (push) Failing after 1h6m19s
CI/CD Pipeline / Integration Tests (push) Successful in 2m26s
CI/CD Pipeline / Frontend Lint (push) Failing after 36s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 1m10s
CI/CD Pipeline / Build Production Web Image (push) Failing after 1248h19m9s
CI/CD Pipeline / PR Build API Image (push) Failing after 1248h20m54s
CI/CD Pipeline / Build Staging API Image (push) Successful in 15m48s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 3m10s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 6m8s
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
22 lines
634 B
TypeScript
22 lines
634 B
TypeScript
/**
|
|
* ClipPropertiesPanel 工具函数
|
|
*/
|
|
import type { AssetItem } from "@/api/assets"
|
|
import type { TemplateMode } from "@/api/editing-planner"
|
|
|
|
/** 从 metadata 取性别标签 */
|
|
export const getGenderLabel = (m: AssetItem): string => {
|
|
const g = (m.metadata?.gender as string) || ""
|
|
if (g === "male") return "男"
|
|
if (g === "female") return "女"
|
|
return ""
|
|
}
|
|
|
|
/** 格式化模式标签 */
|
|
export const formatModeLabel = (mode: TemplateMode): string => {
|
|
if (mode === "pip") return "混剪"
|
|
if (mode === "voice_over") return "人物口播"
|
|
if (mode === "one_take") return "一镜到底"
|
|
return "口播+混剪"
|
|
}
|