Book.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div>
  3. <!-- <p>图书列表</p> -->
  4. <Card v-for="book in books" :key="book.openid" :book='book'></Card>
  5. <p class="text-footer" v-if="!more">
  6. 没有更多数据
  7. </p>
  8. </div>
  9. </template>
  10. <script>
  11. // 35条数据
  12. // 每次加载10条
  13. // 0页 0-10
  14. // 1 10-20
  15. // 2 20-30(5)
  16. // page 当前第几页
  17. // 没有更多数据
  18. // 1. page=0 不能显示这条提醒
  19. // 2. page>0 数据长度<10 停止触底加载
  20. import {get} from '@/util'
  21. import Card from '@/components/Card'
  22. export default {
  23. components: {
  24. Card
  25. },
  26. data () {
  27. return {
  28. books: [],
  29. page: 0,
  30. more: true,
  31. }
  32. },
  33. methods: {
  34. async getList (init) {
  35. if (init) {
  36. this.page = 0;
  37. }
  38. wx.showNavigationBarLoading();
  39. const books = await get('/weapp/booklist', {page:this.page});
  40. // console.log(books)
  41. this.books = books.list;
  42. wx.stopPullDownRefresh(); // 手动停止下拉刷新
  43. wx.hideNavigationBarLoading(); // 关闭下拉刷新加载
  44. }
  45. },
  46. onPullDownRefresh() {
  47. this.getList(true);
  48. // console.log('下拉');
  49. },
  50. onReachBottom() {
  51. if (!more) {
  52. // 没有更多了
  53. return false;
  54. }
  55. this.page++;
  56. // console.log('上啦加载', this.page)
  57. this.getList();
  58. },
  59. mounted () {
  60. this.getList(true);
  61. }
  62. }
  63. </script>
  64. <style>
  65. </style>