接单工单与资金申请列表支持创建时间区间筛选

This commit is contained in:
yml2213
2026-08-22 09:48:09 +08:00
parent f1e219d1ef
commit 3618df74c5
8 changed files with 104 additions and 2 deletions
@@ -34,6 +34,8 @@ import type {
WorkerFinanceConfig,
WorkerFinanceRequest,
} from '@/types/worker-platform'
import { AdminRangePicker } from '@/components/admin/AdminDatePicker'
import dayjs, { ADMIN_DATE_FORMAT } from '@/lib/dayjs'
import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination'
import { formatAdminDateTime } from '@/utils/admin-time'
import { asRecord, formatMoney } from './shared'
@@ -69,6 +71,7 @@ export default function FinancePanel() {
const [requestType, setRequestType] = useState('')
const [keywordInput, setKeywordInput] = useState('')
const [keyword, setKeyword] = useState('')
const [createdRange, setCreatedRange] = useState<[string, string] | null>(null)
const [page, setPage] = useState(1)
const [pageSize, setPageSize] = useState(ADMIN_DEFAULT_PAGE_SIZE)
const [savingConfig, setSavingConfig] = useState(false)
@@ -109,6 +112,8 @@ export default function FinancePanel() {
keyword,
page,
pageSize,
createdRange ? createdRange[0] : '',
createdRange ? createdRange[1] : '',
],
queryFn: () =>
fetchAdminWorkerFinanceRequests({
@@ -118,6 +123,7 @@ export default function FinancePanel() {
keyword,
page,
pageSize,
...(createdRange ? { createdFrom: createdRange[0], createdTo: createdRange[1] } : {}),
}),
})
const financeRequestsPagination = financeRequestsQuery.data?.data.pagination
@@ -466,6 +472,18 @@ export default function FinancePanel() {
setPage(1)
}}
/>
<AdminRangePicker
value={createdRange ? [dayjs(createdRange[0]), dayjs(createdRange[1])] : null}
onChange={(dates) => {
const [start, end] = dates || []
setCreatedRange(
start && end
? [start.format(ADMIN_DATE_FORMAT), end.format(ADMIN_DATE_FORMAT)]
: null,
)
setPage(1)
}}
/>
<Button
icon={<ReloadOutlined />}
loading={financeRequestsQuery.isFetching}
@@ -67,6 +67,8 @@ import {
updateAdminWorkOrderSharing,
} from '@/services/admin'
import type { UploadedFile, WorkOrder, WorkOrderShare } from '@/types/worker-platform'
import { AdminRangePicker } from '@/components/admin/AdminDatePicker'
import dayjs, { ADMIN_DATE_FORMAT } from '@/lib/dayjs'
import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination'
import { hasAdminRole } from '@/utils/admin-auth'
import { formatAdminDateTime } from '@/utils/admin-time'
@@ -139,6 +141,7 @@ export default function WorkOrdersPanel() {
const [statuses, setStatuses] = useState<string[]>([])
const [targetWorkOrderId, setTargetWorkOrderId] = useState<number | undefined>()
const [keyword, setKeyword] = useState('')
const [createdRange, setCreatedRange] = useState<[string, string] | null>(null)
const [keywordInput, setKeywordInput] = useState('')
const [workerId, setWorkerId] = useState<number | undefined>()
const [workerLevelIds, setWorkerLevelIds] = useState<number[]>([])
@@ -219,6 +222,8 @@ export default function WorkOrdersPanel() {
targetWorkOrderId,
page,
pageSize,
createdRange ? createdRange[0] : '',
createdRange ? createdRange[1] : '',
],
queryFn: () =>
fetchAdminWorkOrders({
@@ -232,6 +237,7 @@ export default function WorkOrdersPanel() {
showWorkerLevelFilter && workerLevelIds.length > 0 ? workerLevelIds.join(',') : undefined,
page,
pageSize,
...(createdRange ? { createdFrom: createdRange[0], createdTo: createdRange[1] } : {}),
}),
})
const ordersPagination = ordersQuery.data?.data.pagination
@@ -587,6 +593,7 @@ export default function WorkOrdersPanel() {
setStatuses([])
setWorkerId(undefined)
setWorkerLevelIds([])
setCreatedRange(null)
setPage(1)
}
@@ -1094,6 +1101,18 @@ export default function WorkOrdersPanel() {
}}
/>
) : null}
<AdminRangePicker
value={createdRange ? [dayjs(createdRange[0]), dayjs(createdRange[1])] : null}
onChange={(dates) => {
const [start, end] = dates || []
setCreatedRange(
start && end
? [start.format(ADMIN_DATE_FORMAT), end.format(ADMIN_DATE_FORMAT)]
: null,
)
setPage(1)
}}
/>
<Button type="primary" icon={<SearchOutlined />} onClick={searchOrders}>
</Button>