feat: optimize signature workflows and high-frequency queries

This commit is contained in:
hectorzhao
2026-09-02 15:45:48 +08:00
parent 9b8196ecab
commit ad89e8fed7
48 changed files with 1334 additions and 352 deletions
+17 -10
View File
@@ -159,19 +159,20 @@ export function AdminReportRecordsPage() {
const [error, setError] = useState('');
const [page, setPage] = useState(1);
const [total, setTotal] = useState(0);
const [appliedFilters, setAppliedFilters] = useState({ keyword: '', dateRange: {} as DateRangeValue, reportType: 'all', batchNo: '', operatorKeyword: '', statusAfter: 'all', sourceEntry: 'all' });
const pageSize = 10;
function loadData(targetPage = page) {
function loadData(targetPage = page, filters = appliedFilters) {
adminApi
.listReportRecordsPage({
keyword: keyword || undefined,
reportType: reportType === 'all' ? undefined : (reportType as 'signature' | 'drainage'),
batchNo: batchNo.trim() || undefined,
operatorKeyword: operatorKeyword.trim() || undefined,
statusAfter: statusAfter === 'all' ? undefined : statusAfter,
sourceEntry: sourceEntry === 'all' ? undefined : sourceEntry,
createdAtFrom: dateRange.start || undefined,
createdAtTo: dateRange.end || undefined,
keyword: filters.keyword || undefined,
reportType: filters.reportType === 'all' ? undefined : (filters.reportType as 'signature' | 'drainage'),
batchNo: filters.batchNo || undefined,
operatorKeyword: filters.operatorKeyword || undefined,
statusAfter: filters.statusAfter === 'all' ? undefined : filters.statusAfter,
sourceEntry: filters.sourceEntry === 'all' ? undefined : filters.sourceEntry,
createdAtFrom: filters.dateRange.start || undefined,
createdAtTo: filters.dateRange.end || undefined,
page: targetPage,
pageSize,
})
@@ -330,8 +331,10 @@ export function AdminReportRecordsPage() {
<Button
icon={<Search size={16} />}
onClick={() => {
const filters = { keyword: keyword.trim(), dateRange, reportType, batchNo: batchNo.trim(), operatorKeyword: operatorKeyword.trim(), statusAfter, sourceEntry };
setAppliedFilters(filters);
if (page !== 1) setPage(1);
else loadData(1);
else loadData(1, filters);
}}
>
@@ -345,6 +348,10 @@ export function AdminReportRecordsPage() {
setOperatorKeyword('');
setStatusAfter('all');
setSourceEntry('all');
const filters = { keyword: '', dateRange: {} as DateRangeValue, reportType: 'all', batchNo: '', operatorKeyword: '', statusAfter: 'all', sourceEntry: 'all' };
setAppliedFilters(filters);
if (page !== 1) setPage(1);
else loadData(1, filters);
}}
variant="ghost"
>