index.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <!-- 文章组 -->
  3. <view class="diy-article">
  4. <view class="article-item" :class="[`show-type__${item.show_type}`]" v-for="(item, index) in dataList" :key="index"
  5. @click="onTargetDetail(item.article_id)">
  6. <!-- 小图模式 -->
  7. <block v-if="item.show_type == 10">
  8. <view class="article-item__left flex-box">
  9. <view class="article-item__title twolist-hidden">
  10. <text>{{ item.title }}</text>
  11. </view>
  12. <view class="article-item__footer m-top10">
  13. <text class="article-views f-24 col-8">{{ item.show_views }}次浏览</text>
  14. </view>
  15. </view>
  16. <view class="article-item__image">
  17. <image class="image" mode="widthFix" :src="item.image_url"></image>
  18. </view>
  19. </block>
  20. <!-- 大图模式 -->
  21. <block v-if="item.show_type == 20">
  22. <view class="article-item__title twolist-hidden">
  23. <text>{{ item.title }}</text>
  24. </view>
  25. <view class="article-item__image m-top20">
  26. <image class="image" mode="widthFix" :src="item.image_url"></image>
  27. </view>
  28. <view class="article-item__footer m-top10">
  29. <text class="article-views f-24 col-8">{{ item.show_views }}次浏览</text>
  30. </view>
  31. </block>
  32. </view>
  33. </view>
  34. </template>
  35. <script>
  36. export default {
  37. name: "Article",
  38. /**
  39. * 组件的属性列表
  40. * 用于组件自定义设置
  41. */
  42. props: {
  43. itemIndex: String,
  44. params: Object,
  45. dataList: Array
  46. },
  47. /**
  48. * 组件的方法列表
  49. * 更新属性和数据的方法与更新页面数据的方法类似
  50. */
  51. methods: {
  52. /**
  53. * 跳转文章详情页
  54. */
  55. onTargetDetail(id) {
  56. uni.navigateTo({
  57. url: '/pages/article/detail?articleId=' + id
  58. })
  59. }
  60. }
  61. }
  62. </script>
  63. <style lang="scss" scoped>
  64. .diy-article {
  65. background: #f7f7f7;
  66. .article-item {
  67. margin-bottom: 20rpx;
  68. padding: 30rpx;
  69. background: #fff;
  70. &:last-child {
  71. margin-bottom: 0;
  72. }
  73. .article-item__title {
  74. max-height: 80rpx;
  75. font-size: 30rpx;
  76. color: #333;
  77. }
  78. .article-item__image .image {
  79. display: block;
  80. }
  81. }
  82. }
  83. /* 小图模式 */
  84. .show-type__10 {
  85. display: flex;
  86. .article-item__left {
  87. padding-right: 20rpx;
  88. }
  89. .article-item__title {
  90. // min-height: 72rpx;
  91. }
  92. .article-item__image .image {
  93. width: 240rpx;
  94. }
  95. }
  96. /* 大图模式 */
  97. .show-type__20 .article-item__image .image {
  98. width: 100%;
  99. }
  100. </style>