MessageMultipleForward.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <view
  3. class="im-chat-text"
  4. @tap="showMessageList"
  5. >
  6. <view class="title">{{ message.content }}的聊天记录</view>
  7. <view v-for="item in message.extend!.messageList!.slice(0, 2)" :key="item.id" class="message">
  8. <text class="text" v-if="item.messageType === MessageType.text">{{ userStore.getMapUser(item.fromId)?.name }}:{{ item.content }}</text>
  9. <text class="text" v-if="item.messageType === MessageType.image">{{ userStore.getMapUser(item.fromId)?.name }}:[图片]</text>
  10. <text class="text" v-if="item.messageType === MessageType.file">{{ userStore.getMapUser(item.fromId)?.name }}:[文件]</text>
  11. <text class="text" v-if="item.messageType === MessageType.video">{{ userStore.getMapUser(item.fromId)?.name }}:[视频]</text>
  12. <text class="text" v-if="item.messageType === MessageType.voice">{{ userStore.getMapUser(item.fromId)?.name }}:[语音]</text>
  13. <text class="text" v-if="item.messageType === MessageType.forward">{{ userStore.getMapUser(item.fromId)?.name }}:[转发]</text>
  14. <text class="text" v-if="item.messageType === MessageType.event">{{ userStore.getMapUser(item.fromId)?.name }}:[提示]</text>
  15. </view>
  16. <div class="footer">聊天记录</div>
  17. </view>
  18. </template>
  19. <script setup lang="ts">
  20. import type Message from '@/mode/Message'
  21. import {useUserStore} from '@/store/userStore'
  22. import MessageType from '@/utils/MessageType'
  23. import {useMessageStore} from "@/store/messageStore";
  24. interface Props<T> {
  25. message: T
  26. }
  27. const props = defineProps<Props<Message>>()
  28. const userStore = useUserStore()
  29. const showMessageList = () => {
  30. if(props.message.extend!.messageList){
  31. useMessageStore().setMessage(props.message)
  32. uni.navigateTo({
  33. url:'/pages/chat/forward'
  34. })
  35. }
  36. }
  37. </script>
  38. <style scoped lang="scss">
  39. .im-chat-text {
  40. cursor: pointer;
  41. width: 400upx;
  42. background-color: #ffffff !important;
  43. padding-bottom: 5px;
  44. .title {
  45. font-weight: bold;
  46. font-size: 22upx;
  47. line-height: 2;
  48. color: #333333;
  49. }
  50. .text {
  51. display: inline-block;
  52. color: #cccccc;
  53. width: 100%;
  54. font-size: 22upx;
  55. text-overflow: ellipsis;
  56. white-space: nowrap;
  57. overflow: hidden;
  58. word-break: break-all;
  59. }
  60. }
  61. .im-chat-main .messages .im-chat-text:after {
  62. border-style: solid dashed dashed;
  63. border-color: #ffffff transparent transparent;
  64. }
  65. .im-chat-main .messages .im-chat-mine .im-chat-text:after {
  66. border-style: solid dashed dashed;
  67. border-color: #ffffff transparent transparent;
  68. }
  69. .footer {
  70. color: #999999;
  71. font-size: 20upx;
  72. border-top: 1px solid #f0f0f0;
  73. margin-top: 5px;
  74. line-height: 200%;
  75. }
  76. </style>