refactor: 统一分页组件和UI优化

- 使用公共Pagination组件统一各页面的分页逻辑
- 优化exceptions页面异常列表展示
- 简化settings/rules页面规则管理
- 后端tasks.py增加分页参数支持
This commit is contained in:
freedakgmail
2026-07-07 13:53:54 +08:00
parent b93929eb1a
commit feebbb10ac
6 changed files with 101 additions and 92 deletions
@@ -439,12 +439,12 @@ export default function MappingPage() {
[toast]
);
// 确认并进入下一步
// 确认并进入下一步 - 跳转到对账结果页面
const handleConfirmAndNext = useCallback(async () => {
try {
setLoading(true);
toast.success("字段映射已确认,正在进入对账...");
router.push(`/tasks/${taskId}/reconciliation`);
router.push(`/tasks/${taskId}/result`);
} catch {
toast.error("操作失败");
} finally {
@@ -475,7 +475,7 @@ export default function MappingPage() {
className="flex items-center justify-between"
>
<div className="flex items-center gap-4">
<Button variant="ghost" size="icon" onClick={() => router.push("/dashboard")} className="hover:bg-muted">
<Button variant="ghost" size="icon" onClick={() => router.push("/tasks")} className="hover:bg-muted">
<ArrowLeft className="h-4 w-4" />
</Button>
<div>
+2 -3
View File
@@ -82,14 +82,13 @@ export default function TasksPage() {
useEffect(() => {
loadTasks();
}, [loadTasks]);
}, [loadTasks, page, pageSize, selectedPeriod]);
function onPageChange(newPage: number, newPageSize: number) {
setPage(newPage);
if (newPageSize !== pageSize) {
setPageSize(newPageSize);
}
loadTasks();
}
const getMatchRate = (task: Task) => {
@@ -99,7 +98,7 @@ export default function TasksPage() {
};
return (
<div className="min-h-full p-6 lg:p-8 max-w-6xl mx-auto">
<div className="min-h-full p-6 lg:p-8 max-w-7xl mx-auto space-y-6">
{/* Header */}
<motion.div
initial={{ opacity: 0, y: -8 }}