diff --git a/app/(admin)/settings/admin-settings-client.tsx b/app/(admin)/settings/admin-settings-client.tsx index 87ce33728..011dc8de4 100644 --- a/app/(admin)/settings/admin-settings-client.tsx +++ b/app/(admin)/settings/admin-settings-client.tsx @@ -398,7 +398,7 @@ function formatVideoDurationOptionsInput(options?: number[]) { function parseVideoDurationOptionsInput(value: string) { return normalizeVideoDurationOptions( String(value || "") - .split(/[,\n,、\s]+/) + .split(/[,\n,、;;|/\\\s]+/) .map((item) => item.trim()) .filter(Boolean) ); @@ -2408,6 +2408,8 @@ export function AdminSettingsClient() { // 🆕 图片生成模型特性配置 imageGenConfig: createDefaultImageGenConfig(), }); + const [videoDurationOptionsInput, setVideoDurationOptionsInput] = + useState(""); const [showModelDialog, setShowModelDialog] = useState(false); const [editingModel, setEditingModel] = useState(null); const [modelAvatarUploading, setModelAvatarUploading] = useState(false); @@ -4987,6 +4989,7 @@ export function AdminSettingsClient() { excludeFromFailover: false, imageGenConfig: createDefaultImageGenConfig(), }); + setVideoDurationOptionsInput(""); setEditingModel(null); }; @@ -11745,12 +11748,14 @@ export function AdminSettingsClient() {
{ + const nextInput = e.target.value; + setVideoDurationOptionsInput(nextInput); const durationOptions = parseVideoDurationOptionsInput( - e.target.value + nextInput ); setModelForm({ ...modelForm, @@ -12163,6 +12168,12 @@ export function AdminSettingsClient() { imageGenConfig: (model as any).imageGenConfig || createDefaultImageGenConfig(), }); + setVideoDurationOptionsInput( + formatVideoDurationOptionsInput( + (model as any).imageGenConfig + ?.videoDurationOptions + ) + ); setEditingModel(model.id); setShowModelDialog(true); }}