支持待验收工单按VIP等级筛选
This commit is contained in:
@@ -55,6 +55,7 @@ import {
|
||||
deleteAdminWorkOrder,
|
||||
fetchAdminWorkCategories,
|
||||
fetchAdminWorkOrderSharing,
|
||||
fetchAdminWorkerLevels,
|
||||
fetchAdminWorkerUsers,
|
||||
fetchAdminWorkOrders,
|
||||
markAdminWorkOrderProblem,
|
||||
@@ -138,6 +139,7 @@ export default function WorkOrdersPanel() {
|
||||
const [keyword, setKeyword] = useState('')
|
||||
const [keywordInput, setKeywordInput] = useState('')
|
||||
const [workerId, setWorkerId] = useState<number | undefined>()
|
||||
const [workerLevelIds, setWorkerLevelIds] = useState<number[]>([])
|
||||
const [filterWorkerKeyword, setFilterWorkerKeyword] = useState('')
|
||||
const [assignWorkerKeyword, setAssignWorkerKeyword] = useState('')
|
||||
const [page, setPage] = useState(1)
|
||||
@@ -184,6 +186,7 @@ export default function WorkOrdersPanel() {
|
||||
(status) => status !== VIP_EVIDENCE_PENDING_STATUS,
|
||||
)
|
||||
const vipEvidencePending = statuses.includes(VIP_EVIDENCE_PENDING_STATUS)
|
||||
const showWorkerLevelFilter = statuses.includes('pending_acceptance')
|
||||
|
||||
useEffect(() => {
|
||||
const workOrderId = Number(searchParams.get('workOrderId') || 0)
|
||||
@@ -193,6 +196,7 @@ export default function WorkOrdersPanel() {
|
||||
setKeyword('')
|
||||
setKeywordInput('')
|
||||
setWorkerId(undefined)
|
||||
setWorkerLevelIds([])
|
||||
setPage(1)
|
||||
setSearchParams(
|
||||
(current) => {
|
||||
@@ -209,6 +213,7 @@ export default function WorkOrdersPanel() {
|
||||
statuses.join(','),
|
||||
keyword,
|
||||
workerId,
|
||||
workerLevelIds.join(','),
|
||||
targetWorkOrderId,
|
||||
page,
|
||||
pageSize,
|
||||
@@ -221,6 +226,8 @@ export default function WorkOrdersPanel() {
|
||||
workOrderId: targetWorkOrderId,
|
||||
keyword,
|
||||
workerId,
|
||||
workerLevelIds:
|
||||
showWorkerLevelFilter && workerLevelIds.length > 0 ? workerLevelIds.join(',') : undefined,
|
||||
page,
|
||||
pageSize,
|
||||
}),
|
||||
@@ -230,6 +237,11 @@ export default function WorkOrdersPanel() {
|
||||
queryKey: ['admin-worker-platform-categories'],
|
||||
queryFn: () => fetchAdminWorkCategories(),
|
||||
})
|
||||
const workerLevelsQuery = useQuery({
|
||||
queryKey: ['admin-worker-platform-levels'],
|
||||
queryFn: () => fetchAdminWorkerLevels(),
|
||||
enabled: showWorkerLevelFilter,
|
||||
})
|
||||
const filterWorkersQuery = useQuery({
|
||||
queryKey: ['admin-worker-platform-workers', 'order-filter', filterWorkerKeyword],
|
||||
queryFn: () =>
|
||||
@@ -258,7 +270,11 @@ export default function WorkOrdersPanel() {
|
||||
|
||||
useEffect(() => {
|
||||
setSelectedAcceptanceOrderIds([])
|
||||
}, [statuses, keyword, workerId, targetWorkOrderId, page, pageSize])
|
||||
}, [statuses, keyword, workerId, workerLevelIds, targetWorkOrderId, page, pageSize])
|
||||
|
||||
useEffect(() => {
|
||||
if (!showWorkerLevelFilter) setWorkerLevelIds([])
|
||||
}, [showWorkerLevelFilter])
|
||||
|
||||
function openAssignModal(row: WorkOrder) {
|
||||
setAssignOrder(row)
|
||||
@@ -567,6 +583,7 @@ export default function WorkOrdersPanel() {
|
||||
setKeyword('')
|
||||
setStatuses([])
|
||||
setWorkerId(undefined)
|
||||
setWorkerLevelIds([])
|
||||
setPage(1)
|
||||
}
|
||||
|
||||
@@ -1042,6 +1059,25 @@ export default function WorkOrdersPanel() {
|
||||
setPage(1)
|
||||
}}
|
||||
/>
|
||||
{showWorkerLevelFilter ? (
|
||||
<Select
|
||||
mode="multiple"
|
||||
allowClear
|
||||
value={workerLevelIds}
|
||||
placeholder="全部打手 VIP 等级"
|
||||
style={{ minWidth: 180, maxWidth: 320 }}
|
||||
maxTagCount="responsive"
|
||||
loading={workerLevelsQuery.isLoading}
|
||||
options={(workerLevelsQuery.data?.data.items || []).map((level) => ({
|
||||
value: level.levelId,
|
||||
label: level.name,
|
||||
}))}
|
||||
onChange={(nextWorkerLevelIds: number[]) => {
|
||||
setWorkerLevelIds(nextWorkerLevelIds)
|
||||
setPage(1)
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
<Button type="primary" icon={<SearchOutlined />} onClick={searchOrders}>
|
||||
查询
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user