index.jsx 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { useState, useEffect } from "react";
  2. import { useSelector } from "react-redux";
  3. import withLayout from "@/layout";
  4. import { ScrollView } from "@tarojs/components";
  5. import "@/assets/css/iconfont.css";
  6. import { fetch } from "@/utils/request";
  7. import { API_NEWS_LIST } from "@/constants/api";
  8. import { getbkNotice } from "@/services/broker";
  9. import MessageTime from "./components/messageTime";
  10. import MessageItem from "./components/messageItem";
  11. import "./index.scss";
  12. export default withLayout((props) => {
  13. const [PageList, setPageList] = useState([]);
  14. const [pageNumber, setPageNumber] = useState(1);
  15. const [HasNextPage, setHasNextPage] = useState(true);
  16. useEffect(() => {
  17. GetPageList();
  18. }, [pageNumber]);
  19. const GetPageList = () => {
  20. setHasNextPage(false);
  21. getbkNotice({
  22. pageNumber,
  23. pageSize: 10,
  24. noticeType: "status-change",
  25. mine: true,
  26. })
  27. .then((res) => {
  28. setPageList(
  29. pageNumber === 1
  30. ? res.records || []
  31. : PageList.concat(res.records || [])
  32. );
  33. setHasNextPage(res.current < res.pages);
  34. })
  35. .catch(() => {
  36. change(0);
  37. });
  38. };
  39. const PageLoadMore = () => {
  40. // 页面上拉加载更多
  41. if (HasNextPage) {
  42. setPageNumber(pageNumber + 1);
  43. }
  44. };
  45. return (
  46. <view className="Page myMessage">
  47. <ScrollView
  48. scroll-y
  49. refresher-background="#F8F8F8"
  50. onscrolltolower={PageLoadMore}
  51. >
  52. <view className="PageContent">
  53. {PageList.map((item, index) => (
  54. <view>
  55. <MessageTime item={item} time={item.createDate} />
  56. <MessageItem item={item} />
  57. </view>
  58. ))}
  59. {/* bottom */}
  60. <view className="PageBottom">
  61. <text>已经到底了~</text>
  62. </view>
  63. </view>
  64. </ScrollView>
  65. </view>
  66. );
  67. });