index.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <view class="page_container">
  3. <custom-nav-bar :title="title" />
  4. <u-list class="message_list" >
  5. <u-list-item v-for="message in mergeList" :key="message.clientMsgID">
  6. <nomal-message-item @click="clickMessage" :source="message" />
  7. </u-list-item>
  8. </u-list>
  9. </view>
  10. </template>
  11. <script>
  12. import { myPreview } from "../../../util/preview";
  13. import CustomNavBar from "../../../components/CustomNavBar/index.vue";
  14. import NomalMessageItem from "./NomalMessageItem.vue";
  15. import { MessageType } from "openim-uniapp-polyfill";
  16. export default {
  17. components: {
  18. CustomNavBar,
  19. NomalMessageItem,
  20. },
  21. data() {
  22. return {
  23. mergeList: [],
  24. title: "",
  25. };
  26. },
  27. onLoad(options) {
  28. try {
  29. const mergeData = JSON.parse(decodeURIComponent(options.mergeData));
  30. this.mergeList = mergeData.multiMessage;
  31. this.title = mergeData.title;
  32. console.log("qxj title");
  33. console.log(this.title);
  34. } catch (e) {}
  35. },
  36. methods: {
  37. clickMessage(message) {
  38. switch (message.contentType) {
  39. case MessageType.PictureMessage:
  40. // uni.previewImage({
  41. // urls: [message.pictureElem.sourcePicture.url],
  42. // });
  43. myPreview(0, [message.pictureElem.sourcePicture.url])
  44. break;
  45. case MessageType.VideoMessage:
  46. uni.$u.route("/pages/conversation/previewVideo/index", {
  47. previewVideoUrl: message.videoElem.videoUrl,
  48. });
  49. break;
  50. case MessageType.CardMessage:
  51. uni.$u.route("/pages/common/userCard/index", {
  52. sourceID: message.cardElem.userID,
  53. });
  54. break;
  55. case MessageType.LocationMessage:
  56. let locationInifo = {};
  57. try {
  58. locationInifo = JSON.parse(message.locationElem.description);
  59. } catch (e) {}
  60. if (!locationInifo.latng) return;
  61. uni.$u.route("/pages/conversation/previewLocation/index", {
  62. latng: locationInifo.latng,
  63. });
  64. break;
  65. case MessageType.MergeMessage:
  66. uni.$u.route("/pages/conversation/previewMerge/index", {
  67. mergeData: encodeURIComponent(JSON.stringify(message.mergeElem)),
  68. });
  69. break;
  70. default:
  71. break;
  72. }
  73. },
  74. },
  75. };
  76. </script>
  77. <style lang="scss" scoped>
  78. .page_container {
  79. background-color: #f8f8f8;
  80. .message_list {
  81. display: flex;
  82. flex: 1;
  83. margin-top: 24rpx;
  84. }
  85. }
  86. </style>