From 1756cfb2622c3e073a4b75cd526af6cfad274143 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Sat, 15 Aug 2026 16:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=89=E6=8E=A5=E5=8D=95?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=AD=9B=E9=80=89=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/worker-platform/admin-service.ts | 2 ++ .../pages/admin/panels/WorkOrdersPanel.tsx | 32 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/services/worker-platform/admin-service.ts b/apps/backend/src/services/worker-platform/admin-service.ts index c4f54d49..0dacfebb 100644 --- a/apps/backend/src/services/worker-platform/admin-service.ts +++ b/apps/backend/src/services/worker-platform/admin-service.ts @@ -560,11 +560,13 @@ export async function reviewAdminWorkerFinanceRequest( export async function listAdminWorkOrders(query: JsonObject = {}) { const page = normalizePage(query.page) const pageSize = normalizePageSize(query.pageSize) + const workerId = normalizeOptionalId(query.workerId ?? query.worker_id) || 0 const { items, total } = await listWorkOrders({ page, pageSize, status: String(query.status || '').trim(), keyword: String(query.keyword || '').trim(), + workerSharingId: workerId, }) const shares = await listWorkOrderSharesByOrderIds(items.map((item) => Number(item.id))) const sharesByOrderId = new Map() diff --git a/apps/frontend/src/pages/admin/panels/WorkOrdersPanel.tsx b/apps/frontend/src/pages/admin/panels/WorkOrdersPanel.tsx index 45b518c8..0860dc3c 100644 --- a/apps/frontend/src/pages/admin/panels/WorkOrdersPanel.tsx +++ b/apps/frontend/src/pages/admin/panels/WorkOrdersPanel.tsx @@ -123,6 +123,7 @@ export default function WorkOrdersPanel() { const [status, setStatus] = useState('') const [keyword, setKeyword] = useState('') const [keywordInput, setKeywordInput] = useState('') + const [workerId, setWorkerId] = useState() const [page, setPage] = useState(1) const [pageSize, setPageSize] = useState(ADMIN_DEFAULT_PAGE_SIZE) const [selectedAcceptanceOrderIds, setSelectedAcceptanceOrderIds] = useState([]) @@ -159,14 +160,18 @@ export default function WorkOrdersPanel() { }>() const ordersQuery = useQuery({ - queryKey: ['admin-worker-platform-orders', status, keyword, page, pageSize], - queryFn: () => fetchAdminWorkOrders({ status, keyword, page, pageSize }), + queryKey: ['admin-worker-platform-orders', status, keyword, workerId, page, pageSize], + queryFn: () => fetchAdminWorkOrders({ status, keyword, workerId, page, pageSize }), }) const ordersPagination = ordersQuery.data?.data.pagination const categoriesQuery = useQuery({ queryKey: ['admin-worker-platform-categories'], queryFn: () => fetchAdminWorkCategories(), }) + const filterWorkersQuery = useQuery({ + queryKey: ['admin-worker-platform-workers', 'order-filter'], + queryFn: () => fetchAdminWorkerUsers({ page: 1, pageSize: 200 }), + }) const sharingQuery = useQuery({ queryKey: ['admin-worker-platform-order-sharing', sharingOrder?.workOrderId], queryFn: () => fetchAdminWorkOrderSharing(Number(sharingOrder?.workOrderId)), @@ -180,7 +185,7 @@ export default function WorkOrdersPanel() { useEffect(() => { setSelectedAcceptanceOrderIds([]) - }, [status, keyword, page, pageSize]) + }, [status, keyword, workerId, page, pageSize]) function openAssignModal(row: WorkOrder) { setAssignOrder(row) @@ -388,6 +393,7 @@ export default function WorkOrdersPanel() { setKeywordInput('') setKeyword('') setStatus('') + setWorkerId(undefined) setPage(1) } @@ -834,6 +840,26 @@ export default function WorkOrdersPanel() { setPage(1) }} /> +