支持按接单人员筛选订单

This commit is contained in:
yml2213
2026-08-15 16:02:05 +08:00
parent 54551a1aeb
commit 1756cfb262
2 changed files with 31 additions and 3 deletions
@@ -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<number, WorkOrderShareRow[]>()
@@ -123,6 +123,7 @@ export default function WorkOrdersPanel() {
const [status, setStatus] = useState('')
const [keyword, setKeyword] = useState('')
const [keywordInput, setKeywordInput] = useState('')
const [workerId, setWorkerId] = useState<number | undefined>()
const [page, setPage] = useState(1)
const [pageSize, setPageSize] = useState(ADMIN_DEFAULT_PAGE_SIZE)
const [selectedAcceptanceOrderIds, setSelectedAcceptanceOrderIds] = useState<number[]>([])
@@ -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)
}}
/>
<Select
allowClear
showSearch
optionFilterProp="label"
value={workerId}
placeholder="全部接单人员"
style={{ width: 180 }}
loading={filterWorkersQuery.isLoading}
options={(filterWorkersQuery.data?.data.items || []).map((worker) => ({
value: worker.workerId,
label:
worker.displayName && worker.displayName !== worker.username
? `${worker.displayName}${worker.username}`
: worker.username,
}))}
onChange={(nextWorkerId) => {
setWorkerId(nextWorkerId)
setPage(1)
}}
/>
<Button type="primary" icon={<SearchOutlined />} onClick={searchOrders}>
</Button>