index.tsx 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { GameServerListProps, getGameServerListApi, getGameServerTotalApi } from "@/services/gameData/gameServer"
  2. import React, { useEffect, useState } from "react"
  3. import moment from "moment"
  4. import { useAjax } from "@/Hook/useAjax"
  5. import TableData from "../../components/TableData"
  6. import QueryForm from "@/components/QueryForm"
  7. import columns12 from "./tableConfig"
  8. import { ActiveEnum, getPresets } from "@/components/QueryForm/const"
  9. /**
  10. * 游戏区服
  11. * @returns
  12. */
  13. const ServerData: React.FC = () => {
  14. /********************************/
  15. const [queryForm, setQueryForm] = useState<GameServerListProps>({ pageNum: 1, pageSize: 40, beginDate: moment().format('YYYY-MM-DD'), endDate: moment().format('YYYY-MM-DD'), sourceSystem: 'ZX_ONE', activeTypes: 'reg' as ActiveEnum })
  16. const [totalData, setTotalData] = useState<any[]>([])
  17. const getGameServerList = useAjax((params) => getGameServerListApi(params))
  18. const getGameServerTotal = useAjax((params) => getGameServerTotalApi(params))
  19. /********************************/
  20. useEffect(() => {
  21. getGameServerTotal.run(queryForm).then((res: { id: number; dt?: string; gameName: string; activeTypes: any }) => {
  22. res.id = 1
  23. res.dt = queryForm.beginDate || moment().subtract(366, 'days').format('YYYY-MM-DD')
  24. res.activeTypes = queryForm.activeTypes
  25. res.gameName = '总计'
  26. setTotalData([res])
  27. })
  28. getGameServerList.run(queryForm)
  29. }, [queryForm])
  30. return <div>
  31. <TableData
  32. leftChild={<QueryForm
  33. initialValues={{ sourceSystem: 'ZX_ONE', serverDay: [moment(), moment()], activeTypes: 'reg' }}
  34. onChange={(data: any) => {
  35. const { serverDay, ...params } = data
  36. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  37. if (serverDay && serverDay?.length === 2) {
  38. newQueryForm['beginDate'] = moment(serverDay[0]).format('YYYY-MM-DD')
  39. newQueryForm['endDate'] = moment(serverDay[1]).format('YYYY-MM-DD')
  40. } else {
  41. delete newQueryForm['beginDate']
  42. delete newQueryForm['endDate']
  43. }
  44. newQueryForm.pageNum = 1
  45. setQueryForm({ ...newQueryForm, ...params })
  46. }}
  47. isSource
  48. isServerDay={{ ranges: getPresets() }}
  49. isGameIds
  50. isGameDimension
  51. isServerName
  52. isServerId
  53. isActiveTypes
  54. />}
  55. isZj
  56. totalData={totalData}
  57. scroll={{ x: 1000, y: 600 }}
  58. ajax={getGameServerList}
  59. fixed={{ left: 5, right: 1 }}
  60. dataSource={getGameServerList?.data?.records?.map((item: any, index: number) => ({ ...item, activeTypes: queryForm?.activeTypes, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
  61. total={getGameServerList?.data?.total}
  62. page={queryForm.pageNum}
  63. pageSize={queryForm.pageSize}
  64. sortData={{
  65. field: queryForm?.sortFiled,
  66. order: queryForm?.sortType === 'asc' ? 'ascend' : 'descend'
  67. }}
  68. title='区服数据'
  69. onChange={(props: any) => {
  70. let { pagination, sortData } = props
  71. let { current, pageSize } = pagination
  72. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  73. if (sortData && sortData?.order) {
  74. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  75. newQueryForm['sortFiled'] = sortData?.field
  76. } else {
  77. delete newQueryForm['sortType']
  78. delete newQueryForm['sortFiled']
  79. }
  80. newQueryForm.pageNum = current
  81. newQueryForm.pageSize = pageSize
  82. setQueryForm({ ...newQueryForm })
  83. }}
  84. config={columns12()}
  85. configName={'区服数据'}
  86. />
  87. </div>
  88. }
  89. export default ServerData