index.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { useAjax } from "@/Hook/useAjax"
  2. import { GetCombatRankingProps, getCombatRankingListApi } from "@/services/gameData/roleOperate"
  3. import React, { useEffect, useState } from "react"
  4. import moment from "moment"
  5. import TableData from "../../components/TableData"
  6. import QueryForm from "@/components/QueryForm"
  7. import { getPresetsRanking } from "@/components/QueryForm/const"
  8. import columns12 from "./tableConfig"
  9. /**
  10. * 角色战力排行榜
  11. * @returns
  12. */
  13. const RoleFightingRanking: React.FC = () => {
  14. /********************************/
  15. const [queryForm, setQueryForm] = useState<GetCombatRankingProps>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', beginDate: moment().format('YYYY-MM-DD'), endDate: moment().format('YYYY-MM-DD') })
  16. const getCombatRankingList = useAjax((params) => getCombatRankingListApi(params))
  17. /********************************/
  18. useEffect(() => {
  19. getCombatRankingList.run(queryForm)
  20. }, [queryForm])
  21. return <div>
  22. <TableData
  23. leftChild={<QueryForm
  24. initialValues={{ sourceSystem: 'ZX_ONE', serverDay: [moment(), moment()] }}
  25. onChange={(data: any) => {
  26. console.log(data)
  27. const { parentId, serverDay, ...params } = data
  28. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  29. newQueryForm.pageNum = 1
  30. newQueryForm.parentGameId = parentId
  31. if (serverDay && serverDay?.length === 2) {
  32. newQueryForm.beginDate = moment(serverDay[0]).format('YYYY-MM-DD')
  33. newQueryForm.endDate = moment(serverDay[1]).format('YYYY-MM-DD')
  34. } else {
  35. delete newQueryForm.beginDate
  36. delete newQueryForm.endDate
  37. }
  38. setQueryForm({ ...newQueryForm, ...params })
  39. }}
  40. isSource
  41. isServerDay={{ ranges: getPresetsRanking() }}
  42. // isGameId
  43. isSuperParentGameId
  44. isParentId
  45. isIsMergeServer
  46. isServerIds
  47. isRankingNum
  48. />}
  49. isVirtually={false}
  50. scroll={{ x: 1000, y: 600 }}
  51. ajax={getCombatRankingList}
  52. fixed={{ left: 2, right: 0 }}
  53. dataSource={getCombatRankingList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
  54. total={getCombatRankingList?.data?.total}
  55. page={queryForm.pageNum}
  56. pageSize={queryForm.pageSize}
  57. title='角色战力排行榜'
  58. onChange={(props: any) => {
  59. let { pagination, sortData } = props
  60. let { current, pageSize } = pagination
  61. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  62. if (sortData && sortData?.order) {
  63. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  64. newQueryForm['sortFiled'] = sortData?.field
  65. } else {
  66. delete newQueryForm['sortType']
  67. delete newQueryForm['sortFiled']
  68. }
  69. newQueryForm.pageNum = current
  70. newQueryForm.pageSize = pageSize
  71. setQueryForm({ ...newQueryForm })
  72. }}
  73. config={columns12()}
  74. configName={'角色战力排行榜'}
  75. />
  76. </div>
  77. }
  78. export default RoleFightingRanking