TextMessageRender.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <view class="text_message_container bg_container">
  3. <!-- <mp-html
  4. @linktap="navigate"
  5. :previewImg="false"
  6. :showImgMenu="false"
  7. :lazyLoad="false"
  8. :content="getContent"
  9. /> -->
  10. {{getContent}}
  11. <!-- <u-parse :imgOptions="false" @navigate="navigate" :content="getContent" /> -->
  12. </view>
  13. </template>
  14. <script>
  15. import { parseBr } from "../../../../../util/common";
  16. import { parseAt, parseLink } from "../../../../../util/imCommon";
  17. import { MessageType } from "openim-uniapp-polyfill";
  18. export default {
  19. name: "TextMessageRender",
  20. components: {},
  21. props: {
  22. message: Object,
  23. },
  24. computed: {
  25. getContent() {
  26. if (this.message.contentType === MessageType.QuoteMessage) {
  27. return this.message.quoteElem.text;
  28. }
  29. if (this.message.contentType === MessageType.AtTextMessage) {
  30. return parseAt(this.message.atTextElem);
  31. }
  32. return parseLink(parseBr(this.message.textElem?.content));
  33. },
  34. },
  35. data() {
  36. return {};
  37. },
  38. methods: {
  39. navigate(link) {
  40. // console.log(link);
  41. if (link.innerText.includes("@")) {
  42. this.$emit("showInfo", link.href);
  43. }
  44. },
  45. },
  46. };
  47. </script>
  48. <style lang="scss" scoped></style>