fix(viral-video): 推翻暗色主题改回浅色紫色主题 + 6项UI调整 #2137
File diff suppressed because it is too large
Load Diff
@@ -151,7 +151,18 @@ const TARGET_CUSTOMERS = [
|
||||
"都市蓝领",
|
||||
"都市银发",
|
||||
]
|
||||
const PERSONAS = ["亲切邻家姐姐", "专业顾问", "搞笑段子手", "真实测评博主", "闺蜜种草", "行业专家"]
|
||||
const PERSONAS = [
|
||||
"通用个人IP",
|
||||
"老板型IP",
|
||||
"专家型IP",
|
||||
"顾问型IP",
|
||||
"创始人IP",
|
||||
"创业者IP",
|
||||
"从业者经验派",
|
||||
"避坑顾问型",
|
||||
"知识科普型",
|
||||
"测评种草型",
|
||||
]
|
||||
const STRUCTURES = [
|
||||
"反差破局+亮明观点+还原现状",
|
||||
"痛点场景植入+给出通关秘籍",
|
||||
@@ -190,8 +201,11 @@ const QUALITY_OPTIONS = [
|
||||
{ v: "1080p", label: "1080p(高清)" },
|
||||
]
|
||||
const UPSCALE_OPTIONS = [
|
||||
{ v: "关闭", label: "关闭" },
|
||||
{ v: "开启", label: "开启" },
|
||||
{ v: "default", label: "默认" },
|
||||
{ v: "sd", label: "普清" },
|
||||
{ v: "hd", label: "高清" },
|
||||
{ v: "uhd", label: "超清" },
|
||||
{ v: "omnipotent", label: "全能" },
|
||||
]
|
||||
const VOICE_TIPS =
|
||||
"支持 MP3/WAV/M4A/AAC/OGG 格式,最大 10MB,时长 ≤30 秒。建议清晰人声、无背景音乐、环境安静;录音请保持距麦克风 15-20cm,音量适中。"
|
||||
@@ -358,7 +372,7 @@ const emptyTask = (id: string, title: string): TabTask => ({
|
||||
videoRatio: "9:16",
|
||||
videoModel: "seedance-2.5",
|
||||
quality: "480p",
|
||||
upscale: "关闭",
|
||||
upscale: "default",
|
||||
uiStep: "step1_upload",
|
||||
imageAnalysis: null,
|
||||
storyboard: null,
|
||||
@@ -975,7 +989,7 @@ const ViralVideoPage: React.FC = () => {
|
||||
return (
|
||||
<div className="vv-recog">
|
||||
<div className="vv-recog-title">
|
||||
<LoadingOutlined style={{ color: "#22d3ee", marginRight: 6 }} />
|
||||
<LoadingOutlined style={{ color: "#7c3aed", marginRight: 6 }} />
|
||||
识别描述汇览
|
||||
</div>
|
||||
<div className="vv-muted">AI 正在识别商品特征…</div>
|
||||
@@ -1355,7 +1369,7 @@ const ViralVideoPage: React.FC = () => {
|
||||
{/* 完整口播稿(可折叠) */}
|
||||
<h4 className="vv-sb-h">
|
||||
<button className="vv-sb-doc-collapse" onClick={() => setVoOpen(!voOpen)} type="button">
|
||||
<SoundOutlined style={{ color: "#22d3ee", marginRight: 6 }} />
|
||||
<SoundOutlined style={{ color: "#7c3aed", marginRight: 6 }} />
|
||||
完整口播稿(TTS 合成使用)
|
||||
<span className={`vv-sb-caret ${voOpen ? "open" : ""}`}>▾</span>
|
||||
</button>
|
||||
@@ -1676,7 +1690,7 @@ const ViralVideoPage: React.FC = () => {
|
||||
/>
|
||||
{task.refAudio && (
|
||||
<div className="vv-selected-audio">
|
||||
<SoundOutlined style={{ color: "#22d3ee", marginRight: 6 }} />
|
||||
<SoundOutlined style={{ color: "#7c3aed", marginRight: 6 }} />
|
||||
<span style={{ flex: 1 }}>已选:{task.refAudio.name}</span>
|
||||
<button
|
||||
className="vv-link-btn"
|
||||
@@ -1801,12 +1815,19 @@ const ViralVideoPage: React.FC = () => {
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
{task.fusionLevel === "user_primary" && (
|
||||
{(task.fusionLevel === "ai_polish" || task.fusionLevel === "user_primary") && (
|
||||
<div className="vv-form-row">
|
||||
<label className="vv-label">写下你的文案/草稿</label>
|
||||
<label className="vv-label">
|
||||
{task.fusionLevel === "ai_polish" ? "写下你的文案草稿" : "写下你的文案/草稿"}
|
||||
</label>
|
||||
<textarea
|
||||
key={task.fusionLevel}
|
||||
className="vv-textarea"
|
||||
placeholder="请输入你想要的原始文案,AI 将严格保留你的表达"
|
||||
placeholder={
|
||||
task.fusionLevel === "ai_polish"
|
||||
? "请输入你的文案草稿,AI将在此基础上润色优化..."
|
||||
: "请输入你想要的原始文案,AI将严格保留你的表达..."
|
||||
}
|
||||
value={task.userCopy}
|
||||
onChange={(e) => setTask({ userCopy: e.target.value })}
|
||||
disabled={!canEditStep2}
|
||||
@@ -1857,11 +1878,11 @@ const ViralVideoPage: React.FC = () => {
|
||||
<Select
|
||||
className="vv-select vv-select-purple"
|
||||
style={{ width: "100%" }}
|
||||
placeholder="请选择人设"
|
||||
placeholder="请选择人设类型"
|
||||
optionFilterProp="children"
|
||||
value={task.persona || undefined}
|
||||
onChange={(v) => setTask({ persona: v })}
|
||||
options={PERSONAS.map((i) => ({ value: i, label: i }))}
|
||||
allowClear
|
||||
disabled={!canEditStep2}
|
||||
/>
|
||||
</div>
|
||||
@@ -2036,7 +2057,7 @@ const ViralVideoPage: React.FC = () => {
|
||||
) : task.uiStep === "step3_generating" ? (
|
||||
<div className="vv-preview-placeholder">
|
||||
<div className="ph-icon">
|
||||
<LoadingOutlined style={{ fontSize: 36, color: "#22d3ee" }} />
|
||||
<LoadingOutlined style={{ fontSize: 36, color: "#7c3aed" }} />
|
||||
</div>
|
||||
<div className="ph-txt">
|
||||
AI 正在生成视频中…
|
||||
|
||||
Reference in New Issue
Block a user