index.jsx 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import React, { useState, useEffect } from 'react'
  2. import request, { apis } from '@/utils/request'
  3. import ActivityListItem from '@/components/ActivityListItem/index'
  4. import ScrollPage from '@/components/ScrollPage/index'
  5. import '@/assets/css/reset.less'
  6. import '@/assets/css/iconfont.less'
  7. import './index.less'
  8. export default function WoDeHuoDong (props) {
  9. const [IsPullUp, setIsPullUp] = useState(false)
  10. const [IsPullDown, setIsPullDown] = useState(false)
  11. const [HasNextPage, setHasNextPage] = useState(true)
  12. const [PageNum, setPageNum] = useState(1)
  13. const [PageList, setPageList] = useState([])
  14. useEffect(() => {
  15. GetPageList(() => {
  16. setIsPullUp(false)
  17. })
  18. }, [PageNum])
  19. const GetPageList = (done = () => { }) => { // 获取列表
  20. request({ ...apis.getActivityList, params: { pageNum: PageNum, pageSize: 6, mine: '1' } }).then((res) => {
  21. if (PageNum === 1) {
  22. setPageList([...res.records])
  23. } else {
  24. setPageList(PageList.concat([...res.records]))
  25. }
  26. setHasNextPage(res.current - 0 < res.pages - 0)
  27. done()
  28. }).catch(() => {
  29. done()
  30. })
  31. }
  32. const OnRefresh = () => { // 页面下拉刷新
  33. setIsPullDown(true)
  34. setHasNextPage(true)
  35. setPageNum(1)
  36. if (PageNum === 1) {
  37. GetPageList(() => {
  38. setIsPullDown(false)
  39. })
  40. } else {
  41. setPageNum(1)
  42. }
  43. }
  44. const OnPullUp = () => {
  45. if (HasNextPage) {
  46. setIsPullUp(true)
  47. setPageNum(PageNum + 1)
  48. }
  49. }
  50. return (
  51. <view className='WoDeHuoDong'>
  52. <ScrollPage OnRefresh={OnRefresh} IsPullUp={IsPullUp} IsPullDown={IsPullDown} OnPullUp={OnPullUp} HasMore={HasNextPage}>
  53. <view className='Content Activity'>
  54. {
  55. PageList.map((item, index) => (
  56. <view className='ListItem' key={`ActivityItem-${index}`}>
  57. <ActivityListItem Data={item}></ActivityListItem>
  58. </view>
  59. ))
  60. }
  61. </view>
  62. </ScrollPage>
  63. </view>
  64. )
  65. }