article-item.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <div class="article-item-container">
  3. <div class="article-main">
  4. <div class="article-author-info">
  5. <span>{{articleUserInfo.nickname}}</span>
  6. <span class="article-time">2021-12-4</span>
  7. <span class="article-job">{{articleUserInfo.direction_op_name}}@{{articleUserInfo.company}}</span>
  8. </div>
  9. <div class="article-title">{{info.title}}</div>
  10. <div class="article-content">
  11. {{info.excerpt}}
  12. </div>
  13. <div class="article-count">
  14. <div class="article-count-item read">{{info.view_count}}</div>
  15. <div class="article-count-item like">{{info.like_count}}</div>
  16. <div class="article-count-item comment">{{info.reply_count}}</div>
  17. </div>
  18. </div>
  19. <div class="article-cover" v-if="info.cover_url">
  20. <el-image style="width:174px;height:116px" fit="cover" :src="info.cover_url"></el-image>
  21. </div>
  22. </div>
  23. </template>
  24. <script>
  25. export default {
  26. props: ["info"],
  27. computed: {
  28. articleUserInfo() {
  29. return this.info.user_info || {};
  30. }
  31. }
  32. };
  33. </script>
  34. <style lang="scss" scoped>
  35. .article-item-container {
  36. margin-left: 34px;
  37. margin-right: 34px;
  38. display: flex;
  39. align-items: center;
  40. border-bottom: 1px solid #ebeced;
  41. // &:nth-last-child(1) {
  42. // border-bottom: none;
  43. // }
  44. }
  45. .article-main {
  46. flex: 1;
  47. padding: 30px 0 36px;
  48. }
  49. .article-cover {
  50. width: 174px;
  51. height: 116px;
  52. margin-left: 36px;
  53. }
  54. .article-author-info {
  55. font-size: 13px;
  56. font-family: PingFangSC-Regular, PingFang SC;
  57. font-weight: 400;
  58. color: #828c99;
  59. line-height: 18px;
  60. .article-time {
  61. margin-left: 16px;
  62. }
  63. .article-job {
  64. margin-left: 16px;
  65. }
  66. }
  67. .article-title {
  68. font-size: 16px;
  69. font-family: PingFangSC-Medium, PingFang SC;
  70. font-weight: 500;
  71. color: #0b111a;
  72. line-height: 21px;
  73. margin-top: 14px;
  74. }
  75. .article-content {
  76. font-size: 14px;
  77. font-family: PingFangSC-Regular, PingFang SC;
  78. font-weight: 400;
  79. color: #4b5d73;
  80. line-height: 21px;
  81. margin-top: 6px;
  82. }
  83. .article-count {
  84. margin-top: 16px;
  85. }
  86. .article-count-item {
  87. margin-right: 20px;
  88. display: inline-block;
  89. height: 17px;
  90. font-size: 12px;
  91. font-family: PingFangSC-Regular, PingFang SC;
  92. font-weight: 400;
  93. color: #828c99;
  94. line-height: 17px;
  95. padding-left: 16px;
  96. background-size: 14px auto;
  97. background-repeat: no-repeat;
  98. background-position: left center;
  99. cursor: pointer;
  100. &.read {
  101. background-image: url("~@/assets/img/frontend/personal/read.png");
  102. }
  103. &.like {
  104. background-image: url("~@/assets/img/frontend/personal/like.png");
  105. }
  106. &.comment {
  107. background-image: url("~@/assets/img/frontend/personal/comment.png");
  108. }
  109. }
  110. </style>