index.tsx 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import { useAjax } from "@/Hook/useAjax"
  2. import { GameRechargeListProps, getGameRechargeCountApi, getGameRechargeListApi } from "@/services/gameData/stream"
  3. import React, { useEffect, useState } from "react"
  4. import TableData from "../../components/TableData"
  5. import QueryForm from "@/components/QueryForm"
  6. import columns12 from "./tableConfig"
  7. import { getPresets } from "@/components/QueryForm/const"
  8. import moment from "moment"
  9. import { Statistic, Table } from "antd"
  10. /**
  11. * 充值历史
  12. * @returns
  13. */
  14. const Recharge: React.FC = () => {
  15. /********************************/
  16. const [queryForm, setQueryForm] = useState<GameRechargeListProps>({ pageNum: 1, pageSize: 50, sourceSystem: 'ZX_ONE', costBeginDate: moment().format('YYYY-MM-DD'), costEndDate: moment().format('YYYY-MM-DD') })
  17. const [totalData, setTotalData] = useState<any>({})
  18. const getGameRechargeList = useAjax((params) => getGameRechargeListApi(params))
  19. const getGameRechargeCount = useAjax((params) => getGameRechargeCountApi(params))
  20. /********************************/
  21. useEffect(() => {
  22. getGameRechargeCount.run(queryForm).then((res) => {
  23. setTotalData(res)
  24. })
  25. getGameRechargeList.run(queryForm)
  26. }, [queryForm])
  27. return <div>
  28. <TableData
  29. leftChild={<QueryForm
  30. initialValues={{ sourceSystem: 'ZX_ONE', consumeDay: [moment(), moment()] }}
  31. onChange={(data: any) => {
  32. const { costBeginDay, costEndDay, beginOrderTime, endOrderTime, ...params } = data
  33. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  34. if (costBeginDay && costEndDay) {
  35. newQueryForm.costBeginDate = costBeginDay
  36. newQueryForm.costEndDate = costEndDay
  37. } else {
  38. delete newQueryForm.costBeginDate
  39. delete newQueryForm.costEndDate
  40. }
  41. if (beginOrderTime && endOrderTime) {
  42. newQueryForm.orderBeginDate = beginOrderTime
  43. newQueryForm.orderEndDate = endOrderTime
  44. } else {
  45. delete newQueryForm.orderBeginDate
  46. delete newQueryForm.orderEndDate
  47. }
  48. newQueryForm.pageNum = 1
  49. setQueryForm({ ...newQueryForm, ...params })
  50. }}
  51. isSource
  52. isGameIds
  53. isGameDimension
  54. isSysUserIds
  55. isAgentId
  56. isAccountId
  57. isAccountIds
  58. isConsumeDay={{ ranges: getPresets() }}
  59. isCreateDay={{}}
  60. />}
  61. isVirtually={false}
  62. scroll={{ x: 1000, y: 600 }}
  63. ajax={getGameRechargeList}
  64. fixed={{ left: 0, right: 0 }}
  65. dataSource={getGameRechargeList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
  66. total={getGameRechargeList?.data?.total}
  67. page={queryForm.pageNum}
  68. pageSize={queryForm.pageSize}
  69. title='充值历史'
  70. onChange={(props: any) => {
  71. let { pagination, sortData } = props
  72. let { current, pageSize } = pagination
  73. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  74. if (sortData && sortData?.order) {
  75. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  76. newQueryForm['sortFiled'] = sortData?.field
  77. } else {
  78. delete newQueryForm['sortType']
  79. delete newQueryForm['sortFiled']
  80. }
  81. newQueryForm.pageNum = current
  82. newQueryForm.pageSize = pageSize
  83. setQueryForm({ ...newQueryForm })
  84. }}
  85. config={columns12()}
  86. configName={'充值历史'}
  87. summary={() => {
  88. return <Table.Summary fixed>
  89. <Table.Summary.Row>
  90. <Table.Summary.Cell index={0}><div style={{ fontSize: 18, fontWeight: 600, textAlign: 'center' }}>总计</div></Table.Summary.Cell>
  91. <Table.Summary.Cell index={1}><div style={{ fontWeight: 600, textAlign: 'center', color: '#000000d9' }}>消耗</div></Table.Summary.Cell>
  92. <Table.Summary.Cell index={2}><div style={{ textAlign: 'center' }}><Statistic value={totalData?.costCount || 0} /></div> </Table.Summary.Cell>
  93. <Table.Summary.Cell index={3}><div style={{ fontWeight: 600, textAlign: 'center', color: '#000000d9' }}>充值</div></Table.Summary.Cell>
  94. <Table.Summary.Cell index={4}><div style={{ textAlign: 'center' }}><Statistic value={totalData?.amountCount || 0} /></div></Table.Summary.Cell>
  95. <Table.Summary.Cell index={5}><div style={{ fontWeight: 600, textAlign: 'center', color: '#000000d9' }}>回收率</div></Table.Summary.Cell>
  96. <Table.Summary.Cell index={6}><div style={{ textAlign: 'center' }}><Statistic precision={2} suffix="%" value={totalData?.recoveryCount || 0} /></div></Table.Summary.Cell>
  97. </Table.Summary.Row>
  98. </Table.Summary>
  99. }}
  100. />
  101. </div>
  102. }
  103. export default Recharge