+ {/* 拖拽上传区 */}
+
{
+ setUploadFile(file);
+ if (!uploadName) setUploadName(file.name.replace(/\.[^.]+$/, ""));
+ return false;
+ }}
+ onRemove={() => {
+ setUploadFile(null);
+ setUploadProgress(null);
+ }}
+ showUploadList={false}
+ disabled={uploadProgress !== null}
+ >
+
+
+
+
+ 点击或拖拽音频文件到此处
+
+
+ 支持 MP3、WAV、AAC、FLAC 等格式,最大 200MB
+
+
+
+ {/* 已选文件信息 */}
+ {uploadFile && (
+
+
+
+
+ {uploadFile.name}
+
+
+ {formatFileSize(uploadFile.size)}
+
+
+
+ )}
+
+ {/* 上传进度 */}
+ {uploadProgress !== null && (
+
+
+ {uploadProgress}%
+
+
+ {uploadProgress < 100 ? "上传中..." : "处理中..."}
+
+
+
+ )}
+
+ {/* 名称 */}
+
+
+ 素材名称
+
+
setUploadName(e.target.value)}
+ placeholder="输入素材名称"
+ maxLength={100}
+ disabled={uploadProgress !== null}
+ style={{
+ width: "100%",
+ padding: "8px 12px",
+ border: "1px solid var(--border-color)",
+ borderRadius: 8,
+ fontSize: 13,
+ background: "var(--bg-primary)",
+ color: "var(--text-primary)",
+ outline: "none",
+ }}
+ />
+
+
+ {/* 性别选择 */}
+
+
+ 音色性别
+
+
+ {(["female", "male", "child"] as VoiceGender[]).map((g) => (
+
+ ))}
+
+
+
+ {/* 描述 */}
+
+
+ {/* 操作按钮 */}
+
+
+
+
+
+