import {BillList} from "@/components/bill/list.tsx"; import {Button, Modal, Notification, Popconfirm, Space} from "@douyinfe/semi-ui"; import {useState} from "react"; import {useRequest} from "ahooks"; import {useTranslation} from "react-i18next"; import * as Sentry from "@sentry/react"; import SearchForm from "@/components/bill/search-form.tsx"; import BillDetail from "@/components/bill/detail.tsx"; import {billList, BillQueryParams, cancelBill} from "@/service/api/bill.ts"; import {BillStatus} from "@/service/types.ts"; import {useDownloadReceiptPDF} from "@/service/generate-pdf.ts"; const BillQuery = () => { const [showBill, setShowBill] = useState() const [queryParams, setBillQueryParams] = useState({}); const {data, loading, refresh} = useRequest(() => billList(queryParams), { refreshDeps: [queryParams], onError: (e) => { Sentry.captureMessage('Error: Query bill error', { level: 'error', extra: { message: e.message, ...queryParams } }); } }) const {loading: downloading, downloadPDF} = useDownloadReceiptPDF() const {t} = useTranslation() const onConfirmCancel = (bill: BillModel) => { cancelBill(bill.id).then(() => { Notification.success({title: 'Notice', content: t('bill.cancel_success')}) refresh() }) } const operation = (bill: BillModel) => { return ( {bill.status == BillStatus.PENDING && <> onConfirmCancel(bill)} > {AppMode == 'development' && Payment} } { bill.status == BillStatus.PAID && } ) } return (
{ setBillQueryParams({ ...queryParams, page_number }) }} /> setShowBill(undefined)} //>=1.16.0 closeOnEsc={true} footer={null} closeIcon={} > {showBill && setShowBill(undefined)}/>}
) } export default BillQuery