index.vue 964 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <view class="TUI-faceMessage" @tap="previewImage"><image class="face-message" :src="renderDom.src"></image></view>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. renderDom: [],
  9. percent: 0,
  10. faceUrl: 'https://web.sdk.qcloud.com/im/assets/face-elem/'
  11. };
  12. },
  13. components: {},
  14. props: {
  15. message: {
  16. type: Object
  17. },
  18. isMine: {
  19. type: Boolean,
  20. default: true
  21. }
  22. },
  23. watch: {
  24. message: {
  25. handler: function(newVal) {
  26. this.setData({
  27. renderDom: this.parseFace(newVal)
  28. });
  29. },
  30. immediate: true,
  31. deep: true
  32. }
  33. },
  34. methods: {
  35. // 解析face 消息
  36. parseFace(message) {
  37. const renderDom = {
  38. src: `${this.faceUrl + message.payload.data}@2x.png`
  39. };
  40. return renderDom;
  41. },
  42. previewImage() {
  43. uni.previewImage({
  44. current: this.renderDom[0].src,
  45. // 当前显示图片的http链接
  46. urls: [this.renderDom[0].src]
  47. });
  48. }
  49. }
  50. };
  51. </script>
  52. <style>
  53. @import './index.css';
  54. </style>