生产管理系统 - 修改form组件

This commit is contained in:
2025-11-10 16:21:04 +08:00
parent 9217bf888e
commit 91e2c19afd
5 changed files with 122 additions and 55 deletions

View File

@@ -6,7 +6,7 @@
*/
'use client';
import { useMemo, useState, useCallback } from 'react';
import { useMemo, useState, useCallback, useEffect ,useRef} from 'react';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from '@/components/ui/dialog';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { ScrollArea } from '@/components/ui/scroll-area';
@@ -223,7 +223,6 @@ export default function AuditHistoryPage() {
),
},
];
// 简化的状态管理 - 只需要存储数据和加载状态
const [records, setRecords] = useState<AuditLogData[]>([]);
const [pagination, setPagination] = useState({
@@ -280,14 +279,6 @@ export default function AuditHistoryPage() {
const transformedData = response.data.map(transformAuditLogData);
setRecords(transformedData);
setPagination({
page: response.page,
size: response.size,
total: response.total,
totalPages: response.total_pages,
hasNext: response.has_next,
hasPrev: response.has_prev,
});
} catch (err) {
const errorMessage = err instanceof Error ? err.message : '加载审核历史失败';
setError(errorMessage);
@@ -295,8 +286,15 @@ export default function AuditHistoryPage() {
} finally {
setLoading(false);
}
}, []); // 移除所有依赖,使用参数传递状态变化
}, [searchFilters, pagination]); // 添加依赖以保持函数引用最新
const didFetchRef = useRef(false)
useEffect(() => {
if (didFetchRef.current) return
didFetchRef.current = true
loadAuditHistory()
}, [])
// 事件处理器
const handleSearch = useCallback((filters: Record<string, string>) => {
setSearchFilters(filters);
@@ -315,18 +313,6 @@ export default function AuditHistoryPage() {
});
}, [loadAuditHistory, pagination.size]);
// 统一的数据重载函数 - 避免重复代码
const reloadData = useCallback(() => {
const reloadParams = {
filters: searchFilters,
pagination: {
page: pagination.page,
size: pagination.size
}
};
loadAuditHistory(reloadParams);
}, [loadAuditHistory, searchFilters, pagination]);
const handlePageChange = useCallback((page: number) => {
setPagination(prev => ({ ...prev, page }));
loadAuditHistory({
@@ -334,7 +320,6 @@ export default function AuditHistoryPage() {
pagination: { page, size: pagination.size }
});
}, [loadAuditHistory, searchFilters, pagination.size]);
const handleSizeChange = useCallback((size: number) => {
setPagination(prev => ({ ...prev, size, page: 1 }));
loadAuditHistory({