news.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template name="news">
  2. <view slot="gBody" class="grace-body">
  3. <!-- 标题 -->
  4. <text :class="['grace-art-margin', 'grace-art-title', graceSkeleton ? 'grace-skeletons' : '']">{{item.name}}</text>
  5. <!-- 作者信息 -->
  6. <view class="grace-art-margin grace-nowrap grace-flex-vcenter">
  7. <view :class="['grace-art-author','grace-nowrap','grace-flex-vcenter', graceSkeleton ? 'grace-skeletons' : '']">
  8. <image class="grace-art-author-face" :src="item.author.avatar" mode="widthFix"></image>
  9. <text v-if="item.author.name" class="grace-art-author-name">{{item.author.name}}</text>
  10. </view>
  11. <text class="grace-art-btn grace-bg-green">+ 关注</text>
  12. </view>
  13. <!-- 其他基本信息 -->
  14. <view :class="['grace-art-info-line','grace-art-margin','grace-space-between', graceSkeleton ? 'grace-skeletons' : '']">
  15. <text class="grace-art-info-line-text grace-icons icon-eye" v-if="item.num_view"><text style="margin-left:2px">{{item.num_view}}</text></text>
  16. <text class="grace-art-info-line-text" v-if="item.date">发布于 : {{item.date}}</text>
  17. </view>
  18. <!-- 文章内容 -->
  19. <view class="grace-art-contents">
  20. <block v-for="(v, k) in item.content_array" :key="k">
  21. <view :class="[graceSkeleton ? 'grace-skeletons-img' : 'grace-img-in']" v-if="v.type == 'pic'">
  22. <image :src="v.content" class="grace-art-img" mode="widthFix" @click="Dever.viewPic(item.content_pic, v.content)"></image>
  23. </view>
  24. <view :class="[graceSkeleton ? 'grace-skeletons' : 'grace-art-content']" v-else-if="v.type == 'html'"><rich-text type="text" :nodes="v.content"></rich-text></view>
  25. </block>
  26. </view>
  27. </view>
  28. </template>
  29. <script>
  30. export default {
  31. name: "news",
  32. props: {
  33. graceSkeleton : true,
  34. item : {
  35. type : Object,
  36. value : null
  37. },
  38. },
  39. methods:{
  40. stopFun : function(){return false;}
  41. },
  42. }
  43. </script>
  44. <style>
  45. .grace-art-margin{margin-top:20rpx;}
  46. .grace-art-title{display:block; width:100%; font-size:38rpx; font-weight:bold; line-height:56rpx;}
  47. .grace-skeletons{background-color:#F8F8F8; border-radius:8rpx; height:60rpx;}
  48. .grace-skeletons-img{width:100%; background-color:#F8F8F8; height:300rpx; border-radius:8rpx;}
  49. .grace-art-author{width:700rpx; font-size:0;}
  50. .grace-art-author-face{width:66rpx; height:66rpx; border-radius:66rpx; margin-right:20rpx; flex-shrink:0;}
  51. .grace-art-author-name{display:block; line-height:80rpx; font-size:26rpx;}
  52. .grace-art-btn{width:120rpx; line-height:60rpx; text-align:center; border-radius:50rpx; font-size:26rpx; display:block; flex-shrink:0; margin-left:30rpx;}
  53. .grace-art-info-line{}
  54. .grace-art-info-line-text{font-size:22rpx; line-height:50rpx; color:#888888;}
  55. .grace-art-contents{padding:20rpx 0;}
  56. .grace-art-img{width:100%; margin:10rpx 0;}
  57. .grace-art-content{line-height:52rpx; font-size:28rpx;}
  58. </style>