Skip to content

Commit b9a7e7a

Browse files
committed
refactor: clean up tag management and dataset handling, update API endpoints
1 parent 1c97afe commit b9a7e7a

File tree

11 files changed

+105
-134
lines changed

11 files changed

+105
-134
lines changed

frontend/src/components/TagManagement.tsx

Lines changed: 40 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,6 @@ function CustomTag({
9292
);
9393
}
9494

95-
export const mockPreparedTags = [
96-
{ id: "1", name: "重要" },
97-
{ id: "2", name: "待处理" },
98-
{ id: "3", name: "已完成" },
99-
{ id: "4", name: "审核中" },
100-
{ id: "5", name: "高优先级" },
101-
{ id: "6", name: "低优先级" },
102-
{ id: "7", name: "客户A" },
103-
{ id: "8", name: "客户B" },
104-
];
105-
10695
const TagManager: React.FC = ({
10796
onFetch,
10897
onCreate,
@@ -112,7 +101,7 @@ const TagManager: React.FC = ({
112101
onFetch: () => Promise<any>;
113102
onCreate: (tag: Pick<TagItem, "name">) => Promise<{ ok: boolean }>;
114103
onDelete: (tagId: number) => Promise<{ ok: boolean }>;
115-
onUpdate: (oldTagId: number, newTag: string) => Promise<{ ok: boolean }>;
104+
onUpdate: (tag: TagItem) => Promise<{ ok: boolean }>;
116105
}) => {
117106
const [showTagManager, setShowTagManager] = useState(false);
118107
const { message } = App.useApp();
@@ -121,9 +110,6 @@ const TagManager: React.FC = ({
121110
const [editingTag, setEditingTag] = useState<string | null>(null);
122111
const [editingTagValue, setEditingTagValue] = useState("");
123112

124-
// 预置标签
125-
const [preparedTags, setPreparedTags] = useState(mockPreparedTags);
126-
127113
// 获取标签列表
128114
const fetchTags = async () => {
129115
if (!onFetch) return;
@@ -161,7 +147,7 @@ const TagManager: React.FC = ({
161147

162148
const updateTag = async (oldTag: TagItem, newTag: string) => {
163149
try {
164-
await onUpdate?.(oldTag.id, { ...oldTag, name: newTag });
150+
await onUpdate?.({ ...oldTag, name: newTag });
165151
fetchTags();
166152
message.success("标签更新成功");
167153
} catch (error) {
@@ -213,54 +199,47 @@ const TagManager: React.FC = ({
213199
title="标签管理"
214200
width={500}
215201
>
216-
<div className="space-y-4">
202+
<div className="space-y-4 flex flex-col overflow-y-auto h-full">
217203
{/* Add New Tag */}
218-
<div className="space-y-2">
219-
<div className="flex gap-2">
220-
<Input
221-
placeholder="输入标签名称..."
222-
value={newTag}
223-
allowClear
224-
onChange={(e) => setNewTag(e.target.value)}
225-
onKeyPress={(e) => {
226-
if (e.key === "Enter") {
227-
addTag(e.target.value);
228-
}
229-
}}
230-
/>
231-
<Button
232-
type="primary"
233-
onClick={handleCreateNewTag}
234-
disabled={!newTag.trim()}
235-
icon={<PlusOutlined />}
236-
>
237-
添加
238-
</Button>
239-
</div>
240-
</div>
241-
242-
<h2 className="font-large font-bold w-full">预置标签</h2>
243-
<div className="grid grid-cols-2 gap-2">
244-
{preparedTags.length > 0 &&
245-
preparedTags.map((tag) => <CustomTag key={tag.id} tag={tag} />)}
204+
<div className="flex gap-2">
205+
<Input
206+
placeholder="输入标签名称..."
207+
value={newTag}
208+
allowClear
209+
onChange={(e) => setNewTag(e.target.value)}
210+
onKeyPress={(e) => {
211+
if (e.key === "Enter") {
212+
addTag(e.target.value);
213+
}
214+
}}
215+
/>
216+
<Button
217+
type="primary"
218+
onClick={handleCreateNewTag}
219+
disabled={!newTag.trim()}
220+
icon={<PlusOutlined />}
221+
>
222+
添加
223+
</Button>
246224
</div>
247225

248-
<h2 className="font-large font-bold w-full">自定义标签</h2>
249-
<div className="grid grid-cols-2 gap-2 mt-4">
250-
{tags.map((tag) => (
251-
<CustomTag
252-
isEditable
253-
key={tag.id}
254-
tag={tag}
255-
editingTag={editingTag}
256-
editingTagValue={editingTagValue}
257-
setEditingTag={setEditingTag}
258-
setEditingTagValue={setEditingTagValue}
259-
handleEditTag={handleEditTag}
260-
handleCancelEdit={handleCancelEdit}
261-
handleDeleteTag={handleDeleteTag}
262-
/>
263-
))}
226+
<div className="flex-1 overflow-auto">
227+
<div className="overflow-auto grid grid-cols-2 gap-2">
228+
{tags.map((tag) => (
229+
<CustomTag
230+
isEditable
231+
key={tag.id}
232+
tag={tag}
233+
editingTag={editingTag}
234+
editingTagValue={editingTagValue}
235+
setEditingTag={setEditingTag}
236+
setEditingTagValue={setEditingTagValue}
237+
handleEditTag={handleEditTag}
238+
handleCancelEdit={handleCancelEdit}
239+
handleDeleteTag={handleDeleteTag}
240+
/>
241+
))}
242+
</div>
264243
</div>
265244
</div>
266245
</Drawer>

frontend/src/pages/DataAnnotation/Create/components/CreateAnnptationTaskDialog.tsx

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { queryDatasetsUsingGet } from "@/pages/DataManagement/dataset.api";
2-
import { datasetTypeMap } from "@/pages/DataManagement/dataset.const";
2+
import {
3+
datasetTypeMap,
4+
mapDataset,
5+
} from "@/pages/DataManagement/dataset.const";
36
import { Button, Form, Input, Modal, Select } from "antd";
47
import TextArea from "antd/es/input/TextArea";
58
import { Database } from "lucide-react";
@@ -26,7 +29,7 @@ export default function CreateAnnotationTask({
2629
page: 0,
2730
size: 1000,
2831
});
29-
setDatasets(data.content || []);
32+
setDatasets(data.content.map(mapDataset) || []);
3033
};
3134
fetchDatasets();
3235
}, [open]);
@@ -74,22 +77,20 @@ export default function CreateAnnotationTask({
7477
>
7578
<Select
7679
placeholder="请选择数据集"
77-
options={datasets.map((dataset) => ({
78-
label: (
79-
<div className="flex items-center justify-between gap-3 py-2">
80-
<div className="flex items-center font-sm text-gray-900">
81-
<span>
82-
{dataset.icon || <Database className="w-4 h-4 mr-2" />}
83-
</span>
84-
<span>{dataset.name}</span>
80+
options={datasets.map((dataset) => {
81+
return {
82+
label: (
83+
<div className="flex items-center justify-between gap-3 py-2">
84+
<div className="flex items-center font-sm text-gray-900">
85+
<span className="mr-2">{dataset.icon}</span>
86+
<span>{dataset.name}</span>
87+
</div>
88+
<div className="text-xs text-gray-500">{dataset.size}</div>
8589
</div>
86-
<div className="text-xs text-gray-500">
87-
{datasetTypeMap[dataset?.datasetType]?.label}
88-
</div>
89-
</div>
90-
),
91-
value: dataset.id,
92-
}))}
90+
),
91+
value: dataset.id,
92+
};
93+
})}
9394
/>
9495
</Form.Item>
9596
</Form>

frontend/src/pages/DataAnnotation/Home/DataAnnotation.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ import {
1919
import { mapAnnotationTask } from "../annotation.const";
2020
import CreateAnnotationTask from "../Create/components/CreateAnnptationTaskDialog";
2121
import { ColumnType } from "antd/es/table";
22+
import DevelopmentInProgress from "@/components/DevelopmentInProgress";
2223

2324
export default function DataAnnotation() {
25+
return <DevelopmentInProgress />;
2426
const navigate = useNavigate();
2527
const [viewMode, setViewMode] = useState<"list" | "card">("list");
2628
const [showCreateDialog, setShowCreateDialog] = useState(false);

frontend/src/pages/DataAnnotation/annotation.api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { get, post, put, del, download } from "@/utils/request";
22

33
// 标注任务管理相关接口
44
export function queryAnnotationTasksUsingGet(params?: any) {
5-
return get("/api/project/mappings/list", params);
5+
return get("/project/mappings/list", params);
66
}
77

88
export function createAnnotationTaskUsingPost(data: any) {

frontend/src/pages/DataCleansing/Create/components/CreateTaskStepOne.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { queryDatasetsUsingGet } from "@/pages/DataManagement/dataset.api";
33
import {
44
datasetTypeMap,
55
datasetTypes,
6+
mapDataset,
67
} from "@/pages/DataManagement/dataset.const";
78
import {
89
Dataset,
@@ -34,7 +35,7 @@ export default function CreateTaskStepOne({
3435

3536
const fetchDatasets = async () => {
3637
const { data } = await queryDatasetsUsingGet({ page: 0, size: 1000 });
37-
setDatasets(data.content || []);
38+
setDatasets(data.content.map(mapDataset) || []);
3839
};
3940

4041
useEffect(() => {
@@ -76,22 +77,20 @@ export default function CreateTaskStepOne({
7677
<Form.Item label="源数据集" name="srcDatasetId" required>
7778
<Select
7879
placeholder="请选择源数据集"
79-
options={datasets.map((dataset) => ({
80-
label: (
81-
<div className="flex items-center justify-between gap-3 py-2">
82-
<div className="flex items-center font-sm text-gray-900">
83-
<span>
84-
{dataset.icon || <Database className="w-4 h-4 mr-2" />}
85-
</span>
86-
<span>{dataset.name}</span>
80+
options={datasets.map((dataset) => {
81+
return {
82+
label: (
83+
<div className="flex items-center justify-between gap-3 py-2">
84+
<div className="flex items-center font-sm text-gray-900">
85+
<span className="mr-2">{dataset.icon}</span>
86+
<span>{dataset.name}</span>
87+
</div>
88+
<div className="text-xs text-gray-500">{dataset.size}</div>
8789
</div>
88-
<div className="text-xs text-gray-500">
89-
{datasetTypeMap[dataset?.datasetType]?.label}
90-
</div>
91-
</div>
92-
),
93-
value: dataset.id,
94-
}))}
90+
),
91+
value: dataset.id,
92+
};
93+
})}
9594
/>
9695
</Form.Item>
9796
<Form.Item label="目标数据集名称" name="destDatasetName" required>

frontend/src/pages/DataManagement/Create/components/BasicInformation.tsx

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import RadioCard from "@/components/RadioCard";
22
import { Input, Select, Form } from "antd";
33
import { datasetTypes } from "../../dataset.const";
44
import { useEffect, useState } from "react";
5-
import { mockPreparedTags } from "@/components/TagManagement";
65
import { queryDatasetTagsUsingGet } from "../../dataset.api";
76

87
export default function BasicInformation({
@@ -26,26 +25,11 @@ export default function BasicInformation({
2625
const fetchTags = async () => {
2726
try {
2827
const { data } = await queryDatasetTagsUsingGet();
29-
const preparedTags = mockPreparedTags.map((tag) => ({
30-
label: tag.name,
31-
value: tag.name,
32-
}));
3328
const customTags = data.map((tag) => ({
3429
label: tag.name,
3530
value: tag.name,
3631
}));
37-
setTagOptions([
38-
{
39-
label: <span>预置标签</span>,
40-
title: "prepared",
41-
options: preparedTags,
42-
},
43-
{
44-
label: <span>自定义标签</span>,
45-
title: "custom",
46-
options: customTags,
47-
},
48-
]);
32+
setTagOptions(customTags);
4933
} catch (error) {
5034
console.error("Error fetching tags: ", error);
5135
}

frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export default function DatasetDetail() {
121121
{
122122
icon: <Clock className="text-blue-400 w-4 h-4" />,
123123
key: "time",
124-
value: dataset?.createdAt,
124+
value: dataset?.updatedAt,
125125
},
126126
];
127127

frontend/src/pages/DataManagement/Home/DataManagement.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import {
2020
deleteDatasetByIdUsingDelete,
2121
createDatasetTagUsingPost,
2222
queryDatasetTagsUsingGet,
23-
updateDatasetTagByIdUsingPut,
24-
deleteDatasetTagByIdUsingDelete,
23+
deleteDatasetTagUsingDelete,
24+
updateDatasetTagUsingPut,
2525
} from "../dataset.api";
2626
import { formatBytes } from "@/utils/unit";
2727
import EditDataset from "../Create/EditDataset";
@@ -295,8 +295,8 @@ export default function DatasetManagementPage() {
295295
{/* tasks */}
296296
<TagManager
297297
onCreate={createDatasetTagUsingPost}
298-
onDelete={deleteDatasetTagByIdUsingDelete}
299-
onUpdate={updateDatasetTagByIdUsingPut}
298+
onDelete={(ids: string) => deleteDatasetTagUsingDelete({ ids })}
299+
onUpdate={updateDatasetTagUsingPut}
300300
onFetch={queryDatasetTagsUsingGet}
301301
/>
302302
<Link to="/data/management/create">

frontend/src/pages/DataManagement/dataset.api.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ export function createDatasetTagUsingPost(data: any) {
9797
}
9898

9999
// 更新数据集标签
100-
export function updateDatasetTagByIdUsingPut(id: string | number, data: any) {
101-
return put(`/api/data-management/tags/${id}`, data);
100+
export function updateDatasetTagUsingPut(data: any) {
101+
return put(`/api/data-management/tags`, data);
102102
}
103103

104104
// 删除数据集标签
105-
export function deleteDatasetTagByIdUsingDelete(id: string | number) {
106-
return del(`/api/data-management/tags/${id}`);
105+
export function deleteDatasetTagUsingDelete(data: any) {
106+
return del(`/api/data-management/tags`, data);
107107
}
108108

109109
// 数据集质量检查

0 commit comments

Comments
 (0)