NomalMessageItem.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <view @click="click" class="merge_item">
  3. <my-avatar :src="source.faceURL" :desc="source.senderNickname" size="42" />
  4. <view class="merge_details">
  5. <view class="top_desc">
  6. <text class="send_name">{{ source.senderNickname }}</text>
  7. <text class="send_timer">{{ getSendTime }}</text>
  8. </view>
  9. <view class="message_row">
  10. <text class="message_content">{{ getContent }}</text>
  11. </view>
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. import { mapGetters } from "vuex";
  17. import MyAvatar from "../../../../components/MyAvatar/index.vue";
  18. import {
  19. formatConversionTime,
  20. parseMessageByType,
  21. } from "../../../../util/imCommon";
  22. export default {
  23. name: "",
  24. components: {
  25. MyAvatar,
  26. },
  27. props: {
  28. source: Object,
  29. },
  30. data() {
  31. return {};
  32. },
  33. computed: {
  34. ...mapGetters(["storeCurrentUserID"]),
  35. getSendTime() {
  36. return formatConversionTime(this.source.sendTime);
  37. },
  38. getContent() {
  39. return parseMessageByType(this.source, this.storeCurrentUserID);
  40. },
  41. },
  42. methods: {
  43. click() {
  44. this.$emit("click", this.source);
  45. },
  46. },
  47. };
  48. </script>
  49. <style lang="scss">
  50. .merge_item {
  51. display: flex;
  52. flex-direction: row;
  53. padding: 24rpx 44rpx;
  54. .merge_details {
  55. @include colBox(false);
  56. margin-left: 24rpx;
  57. border-bottom: 1px solid #dfdfdf;
  58. width: 100%;
  59. padding-bottom: 24rpx;
  60. .top_desc {
  61. display: flex;
  62. justify-content: space-between;
  63. font-size: 28rpx;
  64. .send_name {
  65. @include nomalEllipsis();
  66. max-width: 240rpx;
  67. margin-bottom: 6rpx;
  68. color: $uni-text-color;
  69. }
  70. .send_timer {
  71. color: #999;
  72. }
  73. }
  74. .message_row {
  75. @include colBox(false);
  76. .message_content {
  77. font-size: 28rpx;
  78. color: #666;
  79. }
  80. .quote_content {
  81. width: fit-content;
  82. padding: 6rpx 12rpx;
  83. border-radius: 4rpx;
  84. background-color: #f0f0f0;
  85. margin-top: 12rpx;
  86. }
  87. }
  88. }
  89. }
  90. </style>