list.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <view>
  3. <view class="search">
  4. <u-search placeholder="搜索资讯" v-model="param.title" @search="refresh()" :animation="true" actionText="取消" @clear="refresh()"></u-search>
  5. </view>
  6. <view class="list">
  7. <view class="news_item" v-for="(item, index) in list" :key="index" @click="detail(item)">
  8. <image src="../../static/news.jpg" mode="aspectFill" class="img"></image>
  9. <view class="con">
  10. <view class="title ellip">{{ item.title }}</view>
  11. <view class="source omit">{{ item.source }}</view>
  12. <text class="releaseTime">{{ item.releaseTime }}</text>
  13. </view>
  14. <view class="clear"></view>
  15. </view>
  16. <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
  17. <u-empty v-if="!loadMore && list.length == 0"></u-empty>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. export default {
  23. data() {
  24. return {
  25. list: [],
  26. param: { pageNo: 1, pageSize: 10 },
  27. loadMore: true
  28. };
  29. },
  30. onLoad(e) {
  31. this.getData();
  32. },
  33. methods: {
  34. getData() {
  35. this.http.request({
  36. url: '/level-one-server/app/TbPortNews/getPortNewsList',
  37. data: this.param,
  38. loading: 'false',
  39. success: res => {
  40. this.loadMore = parseInt(res.data.pageCount) > this.param.pageNo;
  41. this.list.push(...res.data.data);
  42. }
  43. });
  44. },
  45. detail(item) {
  46. uni.navigateTo({ url: '/pages/news/detail?id=' + item.id });
  47. },
  48. //刷新数据
  49. refresh() {
  50. this.loadMore = true;
  51. this.param.pageNo = 1;
  52. this.list = [];
  53. this.getData();
  54. }
  55. },
  56. //下拉刷新
  57. onPullDownRefresh() {
  58. setTimeout(() => {
  59. this.refresh();
  60. uni.stopPullDownRefresh();
  61. }, 1000);
  62. },
  63. //上拉加载
  64. onReachBottom() {
  65. if (this.loadMore) {
  66. this.param.pageNo++;
  67. this.getData();
  68. }
  69. }
  70. };
  71. </script>
  72. <style lang="scss">
  73. page {
  74. background-color: $pg;
  75. }
  76. .list {
  77. padding: 12px;
  78. }
  79. </style>