index.tsx 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { getAppTrendListApi, GetAppTrendListProps, getAppTrendTotalApi } from "@/services/iaaData";
  2. import React, { useEffect, useState } from "react"
  3. import { useModel } from "umi";
  4. import moment from "moment";
  5. import { useAjax } from "@/Hook/useAjax";
  6. import TablePro from "@/components/TablePro";
  7. import QueryForm from "@/components/QueryForm";
  8. import columns12 from "./tableConfig";
  9. /**
  10. * 应用变现趋势
  11. * @returns
  12. */
  13. const AppCashTrend: React.FC = () => {
  14. /****************************************/
  15. const { initialState } = useModel('@@initialState');
  16. const [queryForm, setQueryForm] = useState<GetAppTrendListProps>({
  17. pageNum: 1,
  18. pageSize: 30,
  19. costDayBegin: moment().format('YYYY-MM-DD'),
  20. costDayEnd: moment().format('YYYY-MM-DD'),
  21. })
  22. const [totalData, setTotalData] = useState<any[]>([])
  23. const getAppTrendList = useAjax((params) => getAppTrendListApi(params))
  24. const getAppTrendTotal = useAjax((params) => getAppTrendTotalApi(params))
  25. /****************************************/
  26. useEffect(() => {
  27. if (initialState?.iaaApp) {
  28. const [appId, productType] = initialState.iaaApp.split('||')
  29. getAppTrendList.run({ ...queryForm, appId, productType })
  30. getAppTrendTotal.run({ ...queryForm, appId, productType }).then((res: { data: { id: number; dt: string } }) => {
  31. if (res?.data) {
  32. let data = res?.data
  33. data.id = 1
  34. data.dt = '总计'
  35. setTotalData([data])
  36. } else {
  37. setTotalData([{ id: 1, dt: '总计' }])
  38. }
  39. })
  40. }
  41. }, [queryForm, initialState?.iaaApp])
  42. return <div>
  43. <TablePro
  44. leftChild={<QueryForm
  45. initialValues={{ day1: [moment(), moment()] }}
  46. day1={{ placeholder: ['消耗日期开始', '消耗日期结束'] }}
  47. onChange={(data: any) => {
  48. console.log(data)
  49. const { day1, ...params } = data
  50. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  51. if (day1 && day1?.length === 2) {
  52. newQueryForm['costDayBegin'] = moment(day1[0]).format('YYYY-MM-DD')
  53. newQueryForm['costDayEnd'] = moment(day1[1]).format('YYYY-MM-DD')
  54. } else {
  55. delete newQueryForm['costDayBegin']
  56. delete newQueryForm['costDayEnd']
  57. }
  58. setQueryForm({ ...newQueryForm, ...params })
  59. }}
  60. />}
  61. isZj
  62. totalData={totalData}
  63. config={columns12()}
  64. configName={'应用变现趋势'}
  65. fixed={{ left: 4, right: 0 }}
  66. scroll={{ x: 1000, y: 620 }}
  67. title='应用变现趋势'
  68. loading={getAppTrendList.loading}
  69. ajax={getAppTrendList}
  70. page={getAppTrendList?.data?.data?.current || 1}
  71. pageSize={getAppTrendList?.data?.data?.size || 20}
  72. total={getAppTrendList?.data?.data?.total || 0}
  73. dataSource={getAppTrendList?.data?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + (index + '')) }))}
  74. onChange={(pagination: any, _: any, sortData: any) => {
  75. let { current, pageSize } = pagination
  76. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  77. if (sortData && sortData?.order) {
  78. newQueryForm['sortAsc'] = sortData?.order === 'ascend' ? true : false
  79. newQueryForm['sortFiled'] = sortData?.field
  80. } else {
  81. delete newQueryForm['sortAsc']
  82. delete newQueryForm['sortFiled']
  83. }
  84. newQueryForm.pageNum = current || newQueryForm.pageNum
  85. newQueryForm.pageSize = pageSize || newQueryForm.pageSize
  86. setQueryForm({ ...newQueryForm })
  87. }}
  88. />
  89. </div>
  90. }
  91. export default AppCashTrend