增加每日接单排行榜
This commit is contained in:
@@ -34,7 +34,7 @@ import {
|
||||
grabWorkerOrder,
|
||||
joinWorkerSharingOrder,
|
||||
} from '@/services/worker'
|
||||
import type { WorkOrder, WorkerUser } from '@/types/worker-platform'
|
||||
import type { WorkOrder, WorkerLeaderboardPeriod, WorkerUser } from '@/types/worker-platform'
|
||||
import { useIsMobile } from '@/utils/use-is-mobile'
|
||||
import {
|
||||
resolveHallDepositAmount,
|
||||
@@ -60,6 +60,7 @@ export default function WorkerHallPage() {
|
||||
const [grabbingId, setGrabbingId] = useState(0)
|
||||
const [sharingOrder, setSharingOrder] = useState<WorkOrder | null>(null)
|
||||
const [leaderboardOpen, setLeaderboardOpen] = useState(false)
|
||||
const [leaderboardPeriod, setLeaderboardPeriod] = useState<WorkerLeaderboardPeriod>('all')
|
||||
const [sharingQuantity, setSharingQuantity] = useState(1)
|
||||
const [submittingSharing, setSubmittingSharing] = useState(false)
|
||||
const loadMoreRef = useRef<HTMLDivElement | null>(null)
|
||||
@@ -117,8 +118,8 @@ export default function WorkerHallPage() {
|
||||
})
|
||||
|
||||
const leaderboardQuery = useQuery({
|
||||
queryKey: ['worker-hall-leaderboard'],
|
||||
queryFn: () => fetchWorkerHallLeaderboard(),
|
||||
queryKey: ['worker-hall-leaderboard', leaderboardPeriod],
|
||||
queryFn: () => fetchWorkerHallLeaderboard(leaderboardPeriod),
|
||||
enabled: leaderboardOpen,
|
||||
retry: false,
|
||||
})
|
||||
@@ -778,8 +779,19 @@ export default function WorkerHallPage() {
|
||||
onClose={() => setLeaderboardOpen(false)}
|
||||
>
|
||||
<div className="worker-hall-leaderboard">
|
||||
<Tabs
|
||||
activeKey={leaderboardPeriod}
|
||||
className="worker-hall-leaderboard-tabs"
|
||||
items={[
|
||||
{ key: 'all', label: '总榜' },
|
||||
{ key: 'daily', label: '每日榜' },
|
||||
]}
|
||||
onChange={(key) => setLeaderboardPeriod(key === 'daily' ? 'daily' : 'all')}
|
||||
/>
|
||||
<Typography.Text type="secondary" className="worker-hall-leaderboard-caption">
|
||||
按累计验收完成数量排行
|
||||
{leaderboardPeriod === 'daily'
|
||||
? '按今日验收完成数量排行(北京时间)'
|
||||
: '按累计验收完成数量排行'}
|
||||
</Typography.Text>
|
||||
{leaderboardQuery.isLoading ? (
|
||||
<div className="worker-hall-leaderboard-loading">
|
||||
|
||||
@@ -8,6 +8,7 @@ import type {
|
||||
WorkerFinanceRequest,
|
||||
WorkerHallOrdersResponse,
|
||||
WorkerLeaderboardResponse,
|
||||
WorkerLeaderboardPeriod,
|
||||
WorkerListResponse,
|
||||
WorkerLoginResponse,
|
||||
WorkerOrderOverviewResponse,
|
||||
@@ -145,8 +146,8 @@ export function fetchWorkerHallOrders(params?: Record<string, unknown>) {
|
||||
return apiGet<WorkerHallOrdersResponse>('/api/v1/worker/hall/orders', params)
|
||||
}
|
||||
|
||||
export function fetchWorkerHallLeaderboard() {
|
||||
return apiGet<WorkerLeaderboardResponse>('/api/v1/worker/hall/leaderboard')
|
||||
export function fetchWorkerHallLeaderboard(period: WorkerLeaderboardPeriod = 'all') {
|
||||
return apiGet<WorkerLeaderboardResponse>('/api/v1/worker/hall/leaderboard', { period })
|
||||
}
|
||||
|
||||
export function grabWorkerOrder(workOrderId: number) {
|
||||
|
||||
@@ -1915,6 +1915,10 @@ body {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.worker-hall-leaderboard-tabs .ant-tabs-nav {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.worker-hall-leaderboard-loading {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
@@ -473,6 +473,8 @@ export type WorkerLeaderboardEntry = {
|
||||
acceptedOrderCount: number
|
||||
}
|
||||
|
||||
export type WorkerLeaderboardPeriod = 'all' | 'daily'
|
||||
|
||||
export type WorkerLeaderboardResponse = {
|
||||
items: WorkerLeaderboardEntry[]
|
||||
current: {
|
||||
|
||||
Reference in New Issue
Block a user