Skip to content

Commit 6978722

Browse files
author
lunarych
committed
frontend: update data collection
1 parent 7fc8aa7 commit 6978722

28 files changed

+1811
-440
lines changed

frontend/src/app/App.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
import { Outlet } from "react-router";
1+
import { StrictMode } from "react";
2+
import { createRoot } from "react-dom/client";
3+
import { RouterProvider } from "react-router";
4+
import router from "../routes/routes";
25

36
function App() {
4-
57
return (
6-
<div>
7-
<Outlet />
8-
</div>
8+
<StrictMode>
9+
<RouterProvider router={router} key="router" />
10+
</StrictMode>
911
);
1012
}
1113

12-
export default App;
14+
createRoot(document.getElementById("root")!).render(<App />);

frontend/src/components/SearchControls.tsx

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { Input, Button, Select, Tag, Segmented } from "antd";
1+
import { Input, Button, Select, Tag, Segmented, DatePicker } from "antd";
22
import {
33
BarsOutlined,
44
AppstoreOutlined,
55
SearchOutlined,
6+
ReloadOutlined,
67
} from "@ant-design/icons";
78
import { useEffect, useState } from "react";
89

@@ -24,6 +25,13 @@ interface SearchControlsProps {
2425
onFiltersChange?: (filters: Record<string, string[]>) => void;
2526
onClearFilters?: () => void;
2627

28+
// Date range props
29+
dateRange?: [Date | null, Date | null] | null;
30+
onDateChange?: (dates: [Date | null, Date | null] | null) => void;
31+
32+
// Reload props
33+
handleReload?: () => void;
34+
2735
// View props
2836
viewMode?: "card" | "list";
2937
onViewModeChange?: (mode: "card" | "list") => void;
@@ -32,18 +40,26 @@ interface SearchControlsProps {
3240
showFilters?: boolean;
3341
showSort?: boolean;
3442
showViewToggle?: boolean;
43+
showReload?: boolean;
44+
showDatePicker?: boolean;
3545

3646
// Styling
3747
className?: string;
3848
}
3949

4050
export function SearchControls({
4151
viewMode,
52+
className,
4253
searchTerm,
4354
showFilters = true,
4455
showViewToggle = true,
4556
searchPlaceholder = "搜索...",
4657
filters = [],
58+
dateRange,
59+
showDatePicker = false,
60+
showReload = true,
61+
handleReload,
62+
onDateChange,
4763
onSearchChange,
4864
onFiltersChange,
4965
onViewModeChange,
@@ -100,7 +116,7 @@ export function SearchControls({
100116
}, [selectedFilters]);
101117

102118
return (
103-
<div className="mt-4 mb-4">
119+
<div className={className}>
104120
<div className="flex items-center justify-between gap-4">
105121
{/* Left side - Search and Filters */}
106122
<div className="flex items-center gap-4 flex-1">
@@ -140,6 +156,19 @@ export function SearchControls({
140156
)}
141157
</div>
142158

159+
{showDatePicker && (
160+
<DatePicker.RangePicker
161+
value={dateRange as any}
162+
onChange={onDateChange}
163+
style={{ width: 260 }}
164+
allowClear
165+
placeholder={["开始时间", "结束时间"]}
166+
/>
167+
)}
168+
{showReload && (
169+
<Button icon={<ReloadOutlined />} onClick={handleReload}></Button>
170+
)}
171+
143172
{/* Right side - View Toggle */}
144173
{showViewToggle && onViewModeChange && (
145174
<Segmented

frontend/src/main.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ import { StrictMode } from "react";
22
import { createRoot } from "react-dom/client";
33
import { RouterProvider } from "react-router";
44
import router from "./routes/routes";
5-
import "./index.css"
5+
import { App as AntdApp } from "antd";
6+
import "./index.css";
67

78
createRoot(document.getElementById("root")!).render(
89
<StrictMode>
9-
<RouterProvider router={router} />
10+
<AntdApp>
11+
<RouterProvider router={router} />
12+
</AntdApp>
1013
</StrictMode>
1114
);

frontend/src/mock/dataset.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
datasetStatusMap,
1010
datasetTypeMap,
1111
TypeMap,
12-
} from "@/pages/DataManagement/model";
12+
} from "@/pages/DataManagement/dataset-model";
1313
import { DatasetStatus, DatasetType, type Dataset } from "@/types/dataset";
1414

1515
export const mockDatasets: Dataset[] = [

frontend/src/mock/mock-apis.cjs

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,51 @@
11
const { addMockPrefix } = require("./mock-core/util.cjs");
22

33
const MockAPI = {
4-
// 数据管理接口
5-
queryDatasetsUsingGet: '/datasets', // 获取数据集列表
6-
createDatasetUsingPost: '/datasets/create', // 创建数据集
7-
getDatasetByIdUsingGet: '/datasets/:id', // 根据ID获取数据集详情
8-
updateDatasetByIdUsingPut: '/datasets/:id', // 更新数据集
9-
deleteDatasetByIdUsingDelete: '/datasets/:id', // 删除数据集
10-
queryDatasetFilesUsingGet: '/datasets/:id/files', // 获取数据集文件列表
11-
addDatasetFileUsingPost: '/datasets/:id/files', // 添加数据集文件
12-
getDatasetFileByIdUsingGet: '/datasets/:id/files/:fileId', // 获取数据集文件详情
13-
deleteDatasetFileByIdUsingDelete: '/datasets/:id/files/:fileId', // 删除数据集文件
14-
downloadFileByIdUsingGet: '/datasets/:id/files/:fileId/download', // 下载文件
15-
queryDatasetTypesUsingGet: '/dataset-types', // 获取数据集类型列表
16-
queryDatasetTagsUsingGet: '/tags', // 获取数据集标签列表
17-
createDatasetTagsUsingPost: '/tags', // 创建数据集标签
18-
getDatasetStatisticsUsingGet: '/datasets/statistics', // 获取数据集统计信息
19-
20-
// 数据清洗接口
4+
// 数据归集接口
5+
queryTasksUsingPost: "/data-collection/tasks", // 获取数据源任务列表
6+
createTaskUsingPost: "/data-collection/tasks/create", // 创建数据源任务
7+
queryTaskByIdUsingGet: "/data-collection/tasks/:id", // 根据ID获取数据源任务详情
8+
updateTaskByIdUsingPut: "/data-collection/tasks/:id", // 更新数据源任务
9+
deleteTaskByIdUsingDelete: "/data-collection/tasks/:id", // 删除数据源任务
10+
executeTaskByIdUsingPost: "/data-collection/tasks/:id/execute", // 执行数据源任务
11+
stopTaskByIdUsingPost: "/data-collection/tasks/:id/stop", // 停止数据源任务
12+
queryExecutionLogUsingPost: "/data-collection/executions", // 获取任务执行日志
13+
queryExecutionLogByIdUsingGet: "/data-collection/executions/:id", // 获取任务执行日志详情
14+
queryCollectionStatisticsUsingGet: "/data-collection/monitor/statistics", // 获取数据归集统计信息
15+
16+
// 数据管理接口
17+
queryDatasetsUsingGet: "/datasets", // 获取数据集列表
18+
createDatasetUsingPost: "/datasets/create", // 创建数据集
19+
getDatasetByIdUsingGet: "/datasets/:id", // 根据ID获取数据集详情
20+
updateDatasetByIdUsingPut: "/datasets/:id", // 更新数据集
21+
deleteDatasetByIdUsingDelete: "/datasets/:id", // 删除数据集
22+
queryDatasetFilesUsingGet: "/datasets/:id/files", // 获取数据集文件列表
23+
addDatasetFileUsingPost: "/datasets/:id/files", // 添加数据集文件
24+
getDatasetFileByIdUsingGet: "/datasets/:id/files/:fileId", // 获取数据集文件详情
25+
deleteDatasetFileByIdUsingDelete: "/datasets/:id/files/:fileId", // 删除数据集文件
26+
downloadFileByIdUsingGet: "/datasets/:id/files/:fileId/download", // 下载文件
27+
queryDatasetTypesUsingGet: "/dataset-types", // 获取数据集类型列表
28+
queryDatasetTagsUsingGet: "/datasets/tags", // 获取数据集标签列表
29+
createDatasetTagsUsingPost: "/datasets/tags", // 创建数据集标签
30+
getDatasetStatisticsUsingGet: "/datasets/statistics", // 获取数据集统计信息
31+
32+
// 数据清洗接口
33+
queryCleaningRulesUsingGet: "/api/v1/cleaning/rules", // 获取清洗规则列表
34+
createCleaningRuleUsingPost: "/api/v1/cleaning/rules", //创建清洗规则
35+
queryCleaningRuleByIdUsingGet: "/api/v1/cleaning/rules/{ruleId}", // 根据ID获取清洗规则详情
36+
updateCleaningRuleByIdUsingPut: "/api/v1/cleaning/rules/{ruleId}", // 更新清洗规则
37+
deleteCleaningRuleByIdUsingDelete: "/api/v1/cleaning/rules/{ruleId}", // 删除清洗规则
38+
queryCleaningJobsUsingGet: "/api/v1/cleaning/jobs", // 获取清洗任务列表
39+
createCleaningJobUsingPost: "/api/v1/cleaning/jobs", // 创建清洗任务
40+
queryCleaningJobByIdUsingGet: "/api/v1/cleaning/jobs/{jobId}", // 根据ID获取清洗任务详情
41+
deleteCleaningJobByIdUsingDelete: "/api/v1/cleaning/jobs/{jobId}", // 删除清洗任务
42+
executeCleaningJobUsingPost: "/api/v1/cleaning/jobs/{jobId}/execute", // 执行清洗任务
43+
stopCleaningJobUsingPost: "/api/v1/cleaning/jobs/{jobId}/stop", // 停止清洗任务
44+
queryCleaningTemplatesUsingGet: "/api/v1/cleaning/templates", // 获取清洗模板列表
45+
createCleaningTemplateUsingPost: "/api/v1/cleaning/templates", // 创建清洗模板
46+
queryCleaningTemplateByIdUsingGet: "/api/v1/cleaning/templates/{templateId}", // 根据ID获取清洗模板详情
47+
deleteCleaningTemplateByIdUsingDelete:
48+
"/api/v1/cleaning/templates/{templateId}", // 删除清洗模板
2149
};
2250

23-
module.exports = addMockPrefix('/api', MockAPI);
51+
module.exports = addMockPrefix("/api", MockAPI);

0 commit comments

Comments
 (0)