feat: 本次提交更新内容如下
eslint规则校验
This commit is contained in:
@@ -54,11 +54,50 @@ const VideoUpload: React.FC<VideoUploadProps> = ({
|
||||
};
|
||||
|
||||
// 处理文件变化
|
||||
const handleChange: UploadProps["onChange"] = info => {
|
||||
const handleChange: UploadProps["onChange"] = async info => {
|
||||
if (info.file.status === "uploading") {
|
||||
setLoading(true);
|
||||
|
||||
// 在这里处理文件上传
|
||||
try {
|
||||
const formData = new FormData();
|
||||
formData.append("file", info.file.originFileObj as File);
|
||||
|
||||
const response = await request(
|
||||
"/v1/attachment/upload",
|
||||
formData,
|
||||
"POST",
|
||||
);
|
||||
|
||||
if (response) {
|
||||
const uploadedUrl =
|
||||
typeof response === "string" ? response : response.url || response;
|
||||
|
||||
// 更新文件状态
|
||||
const updatedFile = {
|
||||
...info.file,
|
||||
status: "done" as const,
|
||||
url: uploadedUrl,
|
||||
};
|
||||
|
||||
// 更新fileList
|
||||
setFileList([updatedFile]);
|
||||
// 调用onChange
|
||||
onChange?.(uploadedUrl);
|
||||
|
||||
setLoading(false);
|
||||
message.success("上传成功");
|
||||
} else {
|
||||
throw new Error("上传失败");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("上传失败:", error);
|
||||
message.error("上传失败,请重试");
|
||||
setLoading(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (info.file.status === "done") {
|
||||
setLoading(false);
|
||||
// 更新fileList
|
||||
@@ -68,35 +107,6 @@ const VideoUpload: React.FC<VideoUploadProps> = ({
|
||||
}
|
||||
};
|
||||
|
||||
// 自定义上传请求
|
||||
const customRequest: UploadProps["customRequest"] = async ({
|
||||
file,
|
||||
onSuccess,
|
||||
onError,
|
||||
}) => {
|
||||
try {
|
||||
setLoading(true);
|
||||
const formData = new FormData();
|
||||
formData.append("file", file as File);
|
||||
|
||||
const response = await request("/v1/attachment/upload", formData, "POST");
|
||||
|
||||
if (response) {
|
||||
const uploadedUrl =
|
||||
typeof response === "string" ? response : response.url || response;
|
||||
onSuccess?.(uploadedUrl);
|
||||
} else {
|
||||
throw new Error("上传失败");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("上传失败:", error);
|
||||
onError?.(error as Error);
|
||||
message.error("上传失败,请重试");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
// 删除文件
|
||||
const handleRemove = () => {
|
||||
setFileList([]);
|
||||
@@ -131,7 +141,6 @@ const VideoUpload: React.FC<VideoUploadProps> = ({
|
||||
showUploadList={true}
|
||||
disabled={disabled || loading}
|
||||
beforeUpload={beforeUpload}
|
||||
customRequest={customRequest}
|
||||
onChange={handleChange}
|
||||
onRemove={handleRemove}
|
||||
>
|
||||
|
||||
6
nkebao/src/components/Upload/api.ts
Normal file
6
nkebao/src/components/Upload/api.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import request from "@/api/request";
|
||||
|
||||
// 创建素材
|
||||
export function createContentItem(params: any) {
|
||||
return request("/v1/content/library/create-item", params, "POST");
|
||||
}
|
||||
@@ -60,11 +60,61 @@ const UploadComponent: React.FC<UploadComponentProps> = ({
|
||||
};
|
||||
|
||||
// 处理文件变化
|
||||
const handleChange: UploadProps["onChange"] = info => {
|
||||
const handleChange: UploadProps["onChange"] = async info => {
|
||||
console.log(info);
|
||||
|
||||
if (info.file.status === "uploading") {
|
||||
setLoading(true);
|
||||
|
||||
// 在这里处理文件上传
|
||||
try {
|
||||
const formData = new FormData();
|
||||
formData.append("file", info.file.originFileObj as File);
|
||||
|
||||
const response = await request(
|
||||
"/v1/attachment/upload",
|
||||
formData,
|
||||
"POST",
|
||||
);
|
||||
|
||||
if (response) {
|
||||
const uploadedUrl =
|
||||
typeof response === "string" ? response : response.url || response;
|
||||
|
||||
// 更新文件状态
|
||||
const updatedFile = {
|
||||
...info.file,
|
||||
status: "done" as const,
|
||||
url: uploadedUrl,
|
||||
};
|
||||
|
||||
// 更新fileList
|
||||
const newFileList = [...fileList];
|
||||
const fileIndex = newFileList.findIndex(f => f.uid === info.file.uid);
|
||||
if (fileIndex > -1) {
|
||||
newFileList[fileIndex] = updatedFile;
|
||||
} else {
|
||||
newFileList.push(updatedFile);
|
||||
}
|
||||
setFileList(newFileList);
|
||||
|
||||
// 调用onChange
|
||||
const urls = newFileList.map(f => f.url).filter(Boolean) as string[];
|
||||
onChange?.(urls);
|
||||
|
||||
setLoading(false);
|
||||
message.success("上传成功");
|
||||
} else {
|
||||
throw new Error("上传失败");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("上传失败:", error);
|
||||
message.error("上传失败,请重试");
|
||||
setLoading(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (info.file.status === "done") {
|
||||
setLoading(false);
|
||||
// 更新fileList
|
||||
@@ -83,36 +133,6 @@ const UploadComponent: React.FC<UploadComponentProps> = ({
|
||||
}
|
||||
};
|
||||
|
||||
// 自定义上传请求
|
||||
const customRequest: UploadProps["customRequest"] = async ({
|
||||
file,
|
||||
onSuccess,
|
||||
onError,
|
||||
onProgress,
|
||||
}) => {
|
||||
try {
|
||||
setLoading(true);
|
||||
const formData = new FormData();
|
||||
formData.append("file", file as File);
|
||||
|
||||
const response = await request("/v1/attachment/upload", formData, "POST");
|
||||
|
||||
if (response) {
|
||||
const uploadedUrl =
|
||||
typeof response === "string" ? response : response.url || response;
|
||||
onSuccess?.(uploadedUrl);
|
||||
} else {
|
||||
throw new Error("上传失败");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("上传失败:", error);
|
||||
onError?.(error as Error);
|
||||
message.error("上传失败,请重试");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
// 删除文件
|
||||
const handleRemove = (file: UploadFile) => {
|
||||
const newFileList = fileList.filter(f => f.uid !== file.uid);
|
||||
@@ -151,7 +171,6 @@ const UploadComponent: React.FC<UploadComponentProps> = ({
|
||||
showUploadList={true}
|
||||
disabled={disabled || loading}
|
||||
beforeUpload={beforeUpload}
|
||||
customRequest={customRequest}
|
||||
onChange={handleChange}
|
||||
onRemove={handleRemove}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user