import React, { useState } from 'react'; import { Table, Thead, Tbody, Tr, Th, Td, TableContainer, Flex, Box, Button } from '@chakra-ui/react'; import { BillSourceMap } from '@/constants/user'; import { getUserBills } from '@/api/user'; import type { UserBillType } from '@/types/user'; import { usePagination } from '@/hooks/usePagination'; import { useLoading } from '@/hooks/useLoading'; import dayjs from 'dayjs'; import MyIcon from '@/components/Icon'; import DateRangePicker, { type DateRangeType } from '@/components/DateRangePicker'; import { addDays } from 'date-fns'; import dynamic from 'next/dynamic'; const BillDetail = dynamic(() => import('./BillDetail')); const BillTable = () => { const { Loading } = useLoading(); const [dateRange, setDateRange] = useState({ from: addDays(new Date(), -7), to: new Date() }); const { data: bills, isLoading, Pagination, getData } = usePagination({ api: getUserBills, params: { dateStart: dateRange.from, dateEnd: dateRange.to } }); const [billDetail, setBillDetail] = useState(); return ( <> {bills.map((item) => ( ))}
时间 来源 应用名 总金额
{dayjs(item.time).format('YYYY/MM/DD HH:mm:ss')} {BillSourceMap[item.source]} {item.appName || '-'} {item.total}元
{!isLoading && bills.length === 0 && ( 无使用记录~ )} getData(1)} /> {!!billDetail && setBillDetail(undefined)} />} ); }; export default BillTable;