style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
CI/CD Pipeline / Check push changed paths (push) Successful in 37s
CI/CD Pipeline / Build Staging API Image (push) Successful in 13s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 18s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 30s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 55s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m23s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m43s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 3m24s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Failing after 12m7s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m53s
CI/CD Pipeline / Integration Tests (push) Successful in 5m57s
CI/CD Pipeline / Validate - Style (push) Failing after 7m28s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 8m1s
CI/CD Pipeline / Unit Tests (push) Failing after 11m3s
CI/CD Pipeline / Validate - Security (push) Successful in 23m12s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / CI Gate (push) Failing after 67h10m28s
CI/CD Pipeline / Build Production API Image (push) Failing after 67h10m28s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 67h44m41s
CI/CD Pipeline / PR Build Web Image (push) Failing after 67h45m17s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 67h10m4s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 67h44m53s
CI/CD Pipeline / PR Build API Image (push) Failing after 67h44m53s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 67h44m17s
CI/CD Pipeline / Deploy Production (push) Failing after 67h9m59s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 67h44m17s
CI/CD Pipeline / Canary Release to Production (push) Failing after 67h9m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 67h10m4s
CI/CD Pipeline / Frontend Lint (push) Failing after 67h33m18s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 67h45m28s
CI/CD Pipeline / Check push changed paths (push) Successful in 37s
CI/CD Pipeline / Build Staging API Image (push) Successful in 13s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 18s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 30s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 55s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m23s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m43s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 3m24s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Failing after 12m7s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m53s
CI/CD Pipeline / Integration Tests (push) Successful in 5m57s
CI/CD Pipeline / Validate - Style (push) Failing after 7m28s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 8m1s
CI/CD Pipeline / Unit Tests (push) Failing after 11m3s
CI/CD Pipeline / Validate - Security (push) Successful in 23m12s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / CI Gate (push) Failing after 67h10m28s
CI/CD Pipeline / Build Production API Image (push) Failing after 67h10m28s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 67h44m41s
CI/CD Pipeline / PR Build Web Image (push) Failing after 67h45m17s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 67h10m4s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 67h44m53s
CI/CD Pipeline / PR Build API Image (push) Failing after 67h44m53s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 67h44m17s
CI/CD Pipeline / Deploy Production (push) Failing after 67h9m59s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 67h44m17s
CI/CD Pipeline / Canary Release to Production (push) Failing after 67h9m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 67h10m4s
CI/CD Pipeline / Frontend Lint (push) Failing after 67h33m18s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 67h45m28s
This commit is contained in:
@@ -725,7 +725,9 @@ const AiAvatarPage: React.FC = () => {
|
||||
/>
|
||||
) : (
|
||||
<div className="aa-finalize-section">
|
||||
<div style={{ marginBottom: 8, fontSize: 13, color: "#1a1a2e", fontWeight: 500 }}>
|
||||
<div
|
||||
style={{ marginBottom: 8, fontSize: 13, color: "#1a1a2e", fontWeight: 500 }}
|
||||
>
|
||||
✅ 视频生成完成,请选择封面后点「完成」入库
|
||||
</div>
|
||||
<div className="aa-finalize-cover">
|
||||
@@ -1084,7 +1086,9 @@ const AiAvatarPage: React.FC = () => {
|
||||
<div style={{ marginTop: 16, fontSize: 15, color: "#1a1a2e" }}>
|
||||
视频生成完成,请选择封面
|
||||
</div>
|
||||
<div style={{ marginTop: 8, fontSize: 13, color: "#8c8ca1", textAlign: "center" }}>
|
||||
<div
|
||||
style={{ marginTop: 8, fontSize: 13, color: "#8c8ca1", textAlign: "center" }}
|
||||
>
|
||||
关闭此窗口后可在下方选择封面并保存到成片库
|
||||
</div>
|
||||
<button
|
||||
@@ -1132,9 +1136,7 @@ const AiAvatarPage: React.FC = () => {
|
||||
onClose={handleCloseCoverModal}
|
||||
renderJob={currentRenderJob}
|
||||
coverConfig={state.coverConfig}
|
||||
onCoverConfigChange={(partial) =>
|
||||
state.setCoverConfig((prev) => ({ ...prev, ...partial }))
|
||||
}
|
||||
onCoverConfigChange={(partial) => state.setCoverConfig((prev) => ({ ...prev, ...partial }))}
|
||||
onGenerateRenderSmartCover={handleGenerateRenderSmartCover}
|
||||
onUploadCover={handleUploadCover}
|
||||
onCoverSelected={handleCoverSelected}
|
||||
|
||||
@@ -207,11 +207,7 @@ const PanelCoverAndGenerate: React.FC<PanelCoverAndGenerateProps> = ({
|
||||
{coverSection}
|
||||
{onClose && (
|
||||
<div style={{ marginTop: 16, display: "flex", justifyContent: "flex-end" }}>
|
||||
<button
|
||||
type="button"
|
||||
className="aa-btn aa-btn--primary"
|
||||
onClick={onClose}
|
||||
>
|
||||
<button type="button" className="aa-btn aa-btn--primary" onClick={onClose}>
|
||||
确定
|
||||
</button>
|
||||
</div>
|
||||
@@ -315,7 +311,6 @@ const PanelCoverAndGenerate: React.FC<PanelCoverAndGenerateProps> = ({
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@ function formatTime(seconds: number): string {
|
||||
|
||||
/** 字体名 → CSS font-family 映射(与 titleCanvas 字体链对齐) */
|
||||
const FONT_FAMILY_MAP: Record<string, string> = {
|
||||
思源黑体: "'Noto Sans CJK SC', 'Source Han Sans CN', 'PingFang SC', 'Microsoft YaHei', sans-serif",
|
||||
思源黑体:
|
||||
"'Noto Sans CJK SC', 'Source Han Sans CN', 'PingFang SC', 'Microsoft YaHei', sans-serif",
|
||||
思源宋体: "'Noto Serif SC', 'Source Han Serif SC', 'SimSun', serif",
|
||||
楷体: "KaiTi, 'STKaiti', serif",
|
||||
黑体: "'Heiti SC', 'SimHei', 'Microsoft YaHei', sans-serif",
|
||||
}
|
||||
const getFontFamily = (font: string): string =>
|
||||
FONT_FAMILY_MAP[font] || FONT_FAMILY_MAP["思源黑体"]
|
||||
const getFontFamily = (font: string): string => FONT_FAMILY_MAP[font] || FONT_FAMILY_MAP["思源黑体"]
|
||||
|
||||
export function PanelLipsyncPreview({
|
||||
lipsyncJob,
|
||||
|
||||
Reference in New Issue
Block a user