index.tsx 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import QueryForm from "@/components/QueryForm"
  2. import { useAjax } from "@/Hook/useAjax"
  3. import { getOrderListApi, getOrderTotalApi, OrderListType } from "@/services/gameData/order"
  4. import React, { useEffect, useState } from "react"
  5. import TableData from "../components/TableData"
  6. import columns12 from "./tableConfig"
  7. import { getPresets } from "@/components/QueryForm/const"
  8. import moment from "moment"
  9. import Details from "./details"
  10. const Order: React.FC = () => {
  11. /***************************/
  12. const [queryForm, setQueryForm] = useState<OrderListType>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', sortFiled: 'orderCreateTime', sortType: 'desc' })
  13. const [totalData, setTotalData] = useState<any[]>([])
  14. const [visible, setVisible] = useState<boolean>(false)
  15. const [orderData, setOrderData] = useState<any>({})
  16. const getOrderList = useAjax((params) => getOrderListApi(params))
  17. const getOrderTotal = useAjax((params) => getOrderTotalApi(params))
  18. /***************************/
  19. useEffect(() => {
  20. getOrderList.run(queryForm)
  21. getOrderTotal.run(queryForm).then(res => {
  22. res.id = 1
  23. res.day = '总计'
  24. setTotalData([res])
  25. })
  26. }, [queryForm])
  27. // 详情
  28. const onDetail = (data: any) => {
  29. setOrderData(data)
  30. setVisible(true)
  31. }
  32. return <div>
  33. <TableData
  34. leftChild={<QueryForm
  35. initialValues={{ sourceSystem: 'ZX_ONE' }}
  36. onChange={(data: any) => {
  37. const { os, regStartDay, orderStatus, gameUserId, regEndDay, payTime, placeAnOrderTime, agentId, regPayIntervalTime, ...params } = data
  38. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  39. newQueryForm.pageNum = 1
  40. newQueryForm.deviceSystem = os
  41. newQueryForm.status = orderStatus
  42. newQueryForm.userId = gameUserId
  43. newQueryForm.channelId = agentId
  44. if (regStartDay && regEndDay) {
  45. newQueryForm.regTimeStart = regStartDay
  46. newQueryForm.regTimeEnd = regEndDay
  47. } else {
  48. delete newQueryForm.regTimeStart
  49. delete newQueryForm.regTimeEnd
  50. }
  51. if (payTime && payTime?.length > 0) {
  52. newQueryForm.payTimeStart = moment(payTime[0]).format('YYYY-MM-DD')
  53. newQueryForm.payTimeEnd = moment(payTime[1]).format('YYYY-MM-DD')
  54. } else {
  55. delete newQueryForm.payTimeStart
  56. delete newQueryForm.payTimeEnd
  57. }
  58. if (placeAnOrderTime && placeAnOrderTime?.length > 0) {
  59. newQueryForm.beginDate = moment(placeAnOrderTime[0]).format('YYYY-MM-DD')
  60. newQueryForm.endDate = moment(placeAnOrderTime[1]).format('YYYY-MM-DD')
  61. } else {
  62. delete newQueryForm.beginDate
  63. delete newQueryForm.endDate
  64. }
  65. if (regPayIntervalTime?.length > 0 && (regPayIntervalTime[0] || regPayIntervalTime[1])) {
  66. newQueryForm.regPayIntervalTimeMin = regPayIntervalTime[0]
  67. newQueryForm.regPayIntervalTimeMax = regPayIntervalTime[1]
  68. }
  69. setQueryForm({ ...newQueryForm, ...params })
  70. }}
  71. isSource
  72. isAccountId
  73. isCpName
  74. isCpOrderId
  75. isCpStatus
  76. isOs
  77. isGameIds
  78. isFirstRecharge
  79. isMerchantNo
  80. isMerchantOrderNo
  81. isOrderId
  82. isPayWay
  83. isSysUserId
  84. isProductName
  85. isGameRoleName
  86. isServerName
  87. isPayStatus
  88. isGameUserId
  89. isUserName
  90. isPayIntervalTime={{ tips: '充值距注册时间区间(分钟)' }}
  91. isAgentId
  92. payTimeDay={{ ranges: getPresets() }}
  93. isRegDay={{ ranges: getPresets() }}
  94. placeAnOrderDay={{ ranges: getPresets() }}
  95. />}
  96. isZj
  97. totalData={totalData}
  98. scroll={{ x: 1000, y: 600 }}
  99. ajax={getOrderList}
  100. fixed={{ left: 3, right: 2 }}
  101. dataSource={getOrderList?.data?.records?.map((item: any, index: number) => ({ ...item, id: item?.orderId?.replace(/\D/g, '') || index }))}
  102. total={getOrderList?.data?.total}
  103. page={queryForm.pageNum}
  104. pageSize={queryForm.pageSize}
  105. title='订单明细'
  106. onChange={(props: any) => {
  107. let { pagination, sortData } = props
  108. let { current, pageSize } = pagination
  109. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  110. if (sortData && sortData?.order) {
  111. newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
  112. newQueryForm['sortFiled'] = sortData?.field
  113. } else {
  114. delete newQueryForm['sortType']
  115. delete newQueryForm['sortFiled']
  116. }
  117. newQueryForm.pageNum = current
  118. newQueryForm.pageSize = pageSize
  119. setQueryForm({ ...newQueryForm })
  120. }}
  121. config={columns12(onDetail)}
  122. configName={'订单明细'}
  123. />
  124. {visible && <Details visible={visible} initialValues={orderData} onClose={() => setVisible(false)}/>}
  125. </div>
  126. }
  127. export default Order