newsInformation.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <!-- 新闻动态 -->
  2. <template>
  3. <view class="news">
  4. <z-paging
  5. ref="paging"
  6. v-model="newsList"
  7. @query="queryList"
  8. >
  9. <view class="news-list">
  10. <view class="news-list-item" v-for="(item, index) in newsList" :key="index" @click="jumpPage('/pages/newsDetails/newsDetails', { artId: item.artId })">
  11. <view class="news-list-item-left">
  12. <image :src="item.artImage"></image>
  13. </view>
  14. <view class="news-list-item-right">
  15. <view class="title">{{ item.artTitle }}</view>
  16. <view class="date">
  17. <view>来源:{{ item.artAuthor }}</view>
  18. <view>{{ item.artPostTime }}</view>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. </z-paging>
  24. <u-toast ref="uToast" />
  25. </view>
  26. </template>
  27. <script>
  28. export default {
  29. data() {
  30. return {
  31. // 新闻列表
  32. newsList: []
  33. }
  34. },
  35. methods: {
  36. /**
  37. * 获取新闻列表
  38. */
  39. getList(pageNum, pageSize) {
  40. this.$u.api.getIndexNewsList({
  41. pageNum: pageNum,
  42. pageSize: pageSize,
  43. artCategoryId: 2
  44. }).then(res => {
  45. if (res.code === 200) {
  46. this.$refs.paging.complete(res.rows)
  47. } else {
  48. this.$refs.uToast.show({
  49. title: err.msg,
  50. type: 'error'
  51. })
  52. this.$refs.paging.complete([])
  53. }
  54. }).catch((err) => {
  55. this.$refs.uToast.show({
  56. title: '系统异常!',
  57. type: 'error'
  58. })
  59. this.$refs.paging.complete([])
  60. })
  61. },
  62. /**
  63. * @param { Number } pageNo
  64. * @param { Number } pageSize
  65. */
  66. queryList(pageNo, pageSize) {
  67. this.getList(pageNo, pageSize);
  68. },
  69. /**
  70. * 跳转到指定页面
  71. */
  72. jumpPage(url, params) {
  73. this.$u.route({
  74. url: url,
  75. params: params
  76. })
  77. }
  78. }
  79. }
  80. </script>
  81. <style lang="scss" scoped>
  82. .news {
  83. background-color: #f2f2f2;
  84. min-height: calc(100vh - 44px);
  85. &-list {
  86. padding: 28rpx 30rpx;
  87. &-item {
  88. display: flex;
  89. align-items: center;
  90. background-color: #fff;
  91. padding: 34rpx 32rpx;
  92. margin-bottom: 20rpx;
  93. &-left {
  94. margin-right: 16rpx;
  95. image {
  96. width: 132rpx;
  97. height: 106rpx;
  98. }
  99. }
  100. &-right {
  101. .title {
  102. color: #000;
  103. font-size: 30rpx;
  104. }
  105. .date {
  106. margin-top: 12rpx;
  107. color: #6F6F6F;
  108. font-size: 24rpx;
  109. display: flex;
  110. justify-content: space-between;
  111. view {
  112. width: 50%;
  113. }
  114. }
  115. }
  116. }
  117. }
  118. }
  119. </style>