index.jsx 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import React, { useState, useEffect } from 'react'
  2. import request, { apis } from '@/utils/request'
  3. import NewsListItem from '@/components/NewsListItem/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 ShouYeZiXun (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 [NewsList, setNewsList] = useState([])
  14. useEffect(() => {
  15. GetNewsList(() => {
  16. setIsPullUp(false)
  17. })
  18. }, [PageNum])
  19. const GetNewsList = (done = () => { }) => { // 获取资讯列表
  20. request({ ...apis.getNewsList, params: { pageNum: PageNum, pageSize: 6 } }).then((res) => {
  21. if (PageNum === 1) {
  22. setNewsList([...res.records])
  23. } else {
  24. setNewsList(NewsList.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. GetNewsList(() => {
  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='ShouYeZiXun'>
  52. <ScrollPage OnRefresh={OnRefresh} IsPullUp={IsPullUp} IsPullDown={IsPullDown} OnPullUp={OnPullUp} HasMore={HasNextPage}>
  53. <view className='ShouYeHuoDongContent'>
  54. {
  55. NewsList.map((item, index) => (
  56. <view className='ListItem' key={`ActivityItem-${index}`}>
  57. <NewsListItem Data={item} ShowTips={index === 0}></NewsListItem>
  58. </view>
  59. ))
  60. }
  61. </view>
  62. </ScrollPage>
  63. </view >
  64. )
  65. }