index.tsx 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import { useAjax } from "@/Hook/useAjax"
  2. import { GameServerGsListProps, getGameServerGsListApi, getGameServerGsTotalApi } from "@/services/gameData/gameServer"
  3. import React, { useEffect, useState } from "react"
  4. import moment from "moment"
  5. import columns12 from "./tableConfig"
  6. import TableData from "../../components/TableData"
  7. import QueryForm from "@/components/QueryForm"
  8. import { getPresets } from "@/components/QueryForm/const"
  9. import TablePro from "../../components/TablePro"
  10. /**
  11. * GS区服
  12. * @returns
  13. */
  14. const ServerGsData: React.FC = () => {
  15. /********************************/
  16. const [queryForm, setQueryForm] = useState<GameServerGsListProps>({ pageNum: 1, pageSize: 40, beginDate: moment().format('YYYY-MM-DD'), endDate: moment().format('YYYY-MM-DD'), sourceSystem: 'ZX_ONE' })
  17. const [totalData, setTotalData] = useState<any[]>([])
  18. const getGameServerGsList = useAjax((params) => getGameServerGsListApi(params))
  19. const getGameServerGsTotal = useAjax((params) => getGameServerGsTotalApi(params))
  20. /********************************/
  21. useEffect(() => {
  22. getGameServerGsTotal.run(queryForm).then((res: { id: number; dt?: string; gameName: string; }) => {
  23. res.id = 1
  24. res.dt = queryForm?.beginDate ? queryForm?.beginDate : moment().subtract(90, 'days').format('YYYY-MM-DD')
  25. res.gameName = '总计'
  26. setTotalData([res])
  27. })
  28. getGameServerGsList.run(queryForm)
  29. }, [queryForm])
  30. return <div>
  31. {/* <TableData
  32. leftChild={<QueryForm
  33. initialValues={{ sourceSystem: 'ZX_ONE', serverDay: [moment(), moment()] }}
  34. onChange={(data: any) => {
  35. const { serverDay, parentGameIds, serverId, ...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. newQueryForm.gameId = parentGameIds
  46. newQueryForm.serverId = serverId ? serverId?.split(/[,,\s\n]+/) : []
  47. setQueryForm({ ...newQueryForm, ...params })
  48. }}
  49. isSource
  50. isServerDay={{ ranges: getPresets() }}
  51. isParentIds
  52. isServerName
  53. isServerId={{placeholder: '区服ID(多个逗号,空格,换行)'}}
  54. isGsId
  55. />}
  56. isZj
  57. isVirtually={false}
  58. totalData={totalData}
  59. scroll={{ x: 1000, y: 600 }}
  60. ajax={getGameServerGsList}
  61. fixed={{ left: 3, right: 0 }}
  62. dataSource={getGameServerGsList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
  63. total={getGameServerGsList?.data?.total}
  64. page={queryForm.pageNum}
  65. pageSize={queryForm.pageSize}
  66. title='GS区服数据'
  67. onChange={(props: any) => {
  68. let { pagination, sortData } = props
  69. let { current, pageSize } = pagination
  70. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  71. if (sortData && sortData?.order) {
  72. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  73. newQueryForm['sortFiled'] = sortData?.field
  74. } else {
  75. delete newQueryForm['sortType']
  76. delete newQueryForm['sortFiled']
  77. }
  78. newQueryForm.pageNum = current
  79. newQueryForm.pageSize = pageSize
  80. setQueryForm({ ...newQueryForm })
  81. }}
  82. config={columns12()}
  83. configName={'GS区服数据'}
  84. /> */}
  85. <TablePro
  86. leftChild={<QueryForm
  87. initialValues={{ sourceSystem: 'ZX_ONE', serverDay: [moment(), moment()] }}
  88. onChange={(data: any) => {
  89. const { serverDay, parentGameIds, serverId, ...params } = data
  90. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  91. if (serverDay && serverDay?.length === 2) {
  92. newQueryForm['beginDate'] = moment(serverDay[0]).format('YYYY-MM-DD')
  93. newQueryForm['endDate'] = moment(serverDay[1]).format('YYYY-MM-DD')
  94. } else {
  95. delete newQueryForm['beginDate']
  96. delete newQueryForm['endDate']
  97. }
  98. newQueryForm.pageNum = 1
  99. newQueryForm.gameId = parentGameIds
  100. newQueryForm.serverId = serverId ? serverId?.split(/[,,\s\n]+/) : []
  101. setQueryForm({ ...newQueryForm, ...params })
  102. }}
  103. isSource
  104. isServerDay={{ ranges: getPresets() }}
  105. isParentIds
  106. isServerName
  107. isServerId={{placeholder: '区服ID(多个逗号,空格,换行)'}}
  108. isGsId
  109. />}
  110. isZj
  111. totalData={totalData}
  112. config={columns12()}
  113. configName={'GS区服数据'}
  114. fixed={{ left: 3, right: 0 }}
  115. scroll={{ x: 1000, y: 500 }}
  116. title='GS区服数据'
  117. loading={getGameServerGsList.loading || getGameServerGsTotal.loading}
  118. ajax={getGameServerGsList}
  119. page={getGameServerGsList?.data?.current || 1}
  120. pageSize={getGameServerGsList?.data?.size || 20}
  121. total={getGameServerGsList?.data?.total || 0}
  122. dataSource={getGameServerGsList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
  123. onChange={(pagination: any, _: any, sortData: any) => {
  124. let { current, pageSize } = pagination
  125. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  126. if (sortData && sortData?.order) {
  127. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  128. newQueryForm['sortFiled'] = sortData?.field
  129. } else {
  130. delete newQueryForm['sortType']
  131. delete newQueryForm['sortFiled']
  132. }
  133. newQueryForm.pageNum = current
  134. newQueryForm.pageSize = pageSize
  135. setQueryForm({ ...newQueryForm })
  136. }}
  137. />
  138. </div>
  139. }
  140. export default ServerGsData