You've already forked DataMate
feat(annotation): 更新标注任务创建对话框的数据集预览功能
- 替换 previewDatasetUsingGet 为 queryDatasetFilesUsingGet 接口 - 使用 App.useApp() 获取 message 实例替代直接导入 - 调整数据集预览表格结构显示文件名和大小信息 - 修改预览模态框标题和宽度设置 - 优化文件大小格式化显示功能 - 统一错误处理消息提示方式
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { queryDatasetsUsingGet, previewDatasetUsingGet } from "@/pages/DataManagement/dataset.api";
|
||||
import { queryDatasetsUsingGet, queryDatasetFilesUsingGet } from "@/pages/DataManagement/dataset.api";
|
||||
import { mapDataset } from "@/pages/DataManagement/dataset.const";
|
||||
import { Button, Form, Input, Modal, Select, message, Radio, Table } from "antd";
|
||||
import { App, Button, Form, Input, Modal, Select, Radio, Table } from "antd";
|
||||
import TextArea from "antd/es/input/TextArea";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Eye } from "lucide-react";
|
||||
@@ -22,6 +22,7 @@ export default function CreateAnnotationTask({
|
||||
onClose: () => void;
|
||||
onRefresh: () => void;
|
||||
}) {
|
||||
const { message } = App.useApp();
|
||||
const [manualForm] = Form.useForm();
|
||||
const [datasets, setDatasets] = useState<Dataset[]>([]);
|
||||
const [templates, setTemplates] = useState<AnnotationTemplate[]>([]);
|
||||
@@ -97,9 +98,9 @@ export default function CreateAnnotationTask({
|
||||
}
|
||||
setDatasetPreviewLoading(true);
|
||||
try {
|
||||
const res = await previewDatasetUsingGet(selectedDatasetId, { limit: 10 });
|
||||
if (res.code === 200 && res.data) {
|
||||
setDatasetPreviewData(res.data || []);
|
||||
const res = await queryDatasetFilesUsingGet(selectedDatasetId, { page: 0, size: 10 });
|
||||
if (res.code === '0' && res.data) {
|
||||
setDatasetPreviewData(res.data.content || []);
|
||||
setDatasetPreviewVisible(true);
|
||||
} else {
|
||||
message.error("获取数据集预览失败");
|
||||
@@ -272,13 +273,13 @@ export default function CreateAnnotationTask({
|
||||
labelConfig: finalLabelConfig,
|
||||
};
|
||||
await createAnnotationTaskUsingPost(requestData);
|
||||
message?.success?.("创建标注任务成功");
|
||||
message.success("创建标注任务成功");
|
||||
onClose();
|
||||
onRefresh();
|
||||
} catch (err: any) {
|
||||
console.error("Create annotation task failed", err);
|
||||
const msg = err?.message || err?.data?.message || "创建失败,请稍后重试";
|
||||
(message as any)?.error?.(msg);
|
||||
message.error(msg);
|
||||
} finally {
|
||||
setSubmitting(false);
|
||||
}
|
||||
@@ -523,8 +524,8 @@ export default function CreateAnnotationTask({
|
||||
<Modal
|
||||
open={datasetPreviewVisible}
|
||||
onCancel={() => setDatasetPreviewVisible(false)}
|
||||
title="数据集预览"
|
||||
width={900}
|
||||
title="数据集预览(前10条文件)"
|
||||
width={700}
|
||||
footer={[
|
||||
<Button key="close" onClick={() => setDatasetPreviewVisible(false)}>
|
||||
关闭
|
||||
@@ -533,25 +534,29 @@ export default function CreateAnnotationTask({
|
||||
>
|
||||
<Table
|
||||
dataSource={datasetPreviewData}
|
||||
columns={
|
||||
datasetPreviewData.length > 0
|
||||
? Object.keys(datasetPreviewData[0]).map((key) => ({
|
||||
title: key,
|
||||
dataIndex: key,
|
||||
key: key,
|
||||
ellipsis: true,
|
||||
render: (value: any) => {
|
||||
if (typeof value === 'object') {
|
||||
return JSON.stringify(value);
|
||||
}
|
||||
return String(value ?? '');
|
||||
},
|
||||
}))
|
||||
: []
|
||||
}
|
||||
rowKey={(_, index) => String(index)}
|
||||
columns={[
|
||||
{
|
||||
title: "文件名",
|
||||
dataIndex: "fileName",
|
||||
key: "fileName",
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: "大小",
|
||||
dataIndex: "fileSize",
|
||||
key: "fileSize",
|
||||
width: 120,
|
||||
render: (value: number) => {
|
||||
if (!value) return "-";
|
||||
if (value < 1024) return `${value} B`;
|
||||
if (value < 1024 * 1024) return `${(value / 1024).toFixed(1)} KB`;
|
||||
return `${(value / 1024 / 1024).toFixed(1)} MB`;
|
||||
},
|
||||
},
|
||||
]}
|
||||
rowKey="id"
|
||||
pagination={false}
|
||||
scroll={{ x: 'max-content', y: 400 }}
|
||||
scroll={{ y: 300 }}
|
||||
size="small"
|
||||
/>
|
||||
</Modal>
|
||||
|
||||
Reference in New Issue
Block a user