DynamicItem.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div>
  3. <!-- 动态内容项容器 -->
  4. <div class="dynamic-item">
  5. <!-- 动态标题 -->
  6. <div class="dynamic-title">同心同梦·护航亚东</div>
  7. <!-- 动态图片展示区域 -->
  8. <div class="dynamic-image">
  9. <!-- 图片预览功能(已注释) -->
  10. <!-- <van-image
  11. width="100%"
  12. height="200"
  13. fit="cover"
  14. src="https://img.zcool.cn/community/01a3865d25cdcda801216e8df41b8e.jpg"
  15. @click="previewImages(['https://img.zcool.cn/community/01a3865d25cdcda801216e8df41b8e.jpg'])"
  16. /> -->
  17. <!-- 图片网格展示 -->
  18. <van-grid :gutter="10">
  19. <van-grid-item v-for="value in 8" :key="value" icon="photo-o" text="文字" />
  20. </van-grid>
  21. </div>
  22. <!-- 动态交互按钮区域 -->
  23. <div class="dynamic-actions">
  24. <!-- 点赞按钮 -->
  25. <div class="like-btn">
  26. <img :src="getIconUrl('btn_zan_gray_16')" alt="" class="content-icon" />
  27. <span>2</span>
  28. </div>
  29. <!-- 评论按钮 -->
  30. <div class="comment-btn">
  31. <img :src="getIconUrl('btn_comment_gray_16')" alt="" class="content-icon" />
  32. <span>2</span>
  33. </div>
  34. <!-- 分享按钮 -->
  35. <div class="share-btn">
  36. <img :src="getIconUrl('btn_share_gray_16')" alt="" class="content-icon" />
  37. </div>
  38. </div>
  39. <!-- 评论区域 -->
  40. <div class="dynamic-comments">
  41. <div class="comment">
  42. <!-- 点赞用户列表 -->
  43. <div class="rank">
  44. <img :src="getIconUrl('btn_zan_line_16')" alt="" />
  45. <span class="rank-names">张三、李四</span>
  46. </div>
  47. <!-- 评论内容项 -->
  48. <div class="comment-item">
  49. <span class="name">王五:</span>
  50. <span class="text">123123123</span>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </template>
  57. <script setup>
  58. /**
  59. * 动态内容项组件
  60. *
  61. * 用于展示单条动态信息,包括标题、图片、点赞、评论等功能
  62. *
  63. * @component DynamicItem
  64. */
  65. // 图片预览功能(已注释)
  66. // import { showImagePreview } from 'vant'
  67. // 引入图标URL获取工具函数
  68. import { getIconUrl } from '@/utils/utils'
  69. /**
  70. * 图片预览功能(已注释)
  71. * @param {Array} images - 要预览的图片URL数组
  72. */
  73. // const previewImages = images => {
  74. // showImagePreview({
  75. // images: images
  76. // })
  77. // }
  78. </script>
  79. <style lang="scss" scoped>
  80. // 动态内容项容器样式
  81. .dynamic-item {
  82. background-color: #fff;
  83. border-radius: 8px;
  84. padding: 15px;
  85. margin-bottom: 15px;
  86. box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  87. // 动态标题样式
  88. .dynamic-title {
  89. font-size: 16px;
  90. font-weight: bold;
  91. margin-bottom: 10px;
  92. color: #333;
  93. }
  94. // 动态图片区域样式
  95. .dynamic-image {
  96. margin-bottom: 10px;
  97. border-radius: 8px;
  98. overflow: hidden;
  99. }
  100. // 动态交互按钮区域样式
  101. .dynamic-actions {
  102. display: flex;
  103. border-bottom: 1px solid #eee;
  104. padding-bottom: 10px;
  105. margin-bottom: 10px;
  106. // 点赞、评论、分享按钮共用样式
  107. .like-btn,
  108. .comment-btn,
  109. .share-btn {
  110. display: flex;
  111. align-items: center;
  112. margin-right: 20px;
  113. color: #666;
  114. // 按钮内文字样式
  115. span {
  116. margin-left: 5px;
  117. font-size: 14px;
  118. }
  119. }
  120. }
  121. // 评论区域样式
  122. .dynamic-comments {
  123. background-color: #f8f8f8;
  124. border-radius: 8px;
  125. // 单条评论样式
  126. .comment {
  127. border-radius: 4px;
  128. box-sizing: border-box;
  129. padding: 8px;
  130. // 点赞用户列表样式
  131. .rank {
  132. display: flex;
  133. // 点赞图标样式
  134. img {
  135. width: 16px;
  136. height: 16px;
  137. text-align: center;
  138. }
  139. // 点赞用户名称样式
  140. .rank-names {
  141. color: #5c80ca;
  142. font-size: 12px;
  143. font-weight: 500;
  144. margin-left: 5px;
  145. }
  146. }
  147. // 评论内容项样式
  148. .comment-item {
  149. display: flex;
  150. margin-top: 5px;
  151. // 评论用户名称样式
  152. .name {
  153. font-size: 12px;
  154. color: #5c80ca;
  155. white-space: nowrap;
  156. font-weight: 500;
  157. }
  158. // 评论文本内容样式
  159. .text {
  160. font-size: 12px;
  161. color: #000;
  162. font-weight: 500;
  163. word-break: break-all; // 添加此行,允许在任意字符间换行
  164. word-wrap: break-word; // 添加此行,允许长单词换行
  165. }
  166. }
  167. }
  168. }
  169. }
  170. </style>