index.vue 903 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="TUI-ImageMessage" @tap="previewImage">
  3. <image :class="'image-message ' + (isMine ? 'my-image' : '')" mode="widthFix" :src="renderDom[0].src"></image>
  4. </view>
  5. </template>
  6. <script>
  7. import { parseImage } from '../../../base/message-facade';
  8. export default {
  9. data() {
  10. return {
  11. renderDom: [],
  12. percent: 0
  13. };
  14. },
  15. components: {},
  16. props: {
  17. message: {
  18. type: Object,
  19. default: ''
  20. },
  21. isMine: {
  22. type: Boolean,
  23. default: true
  24. }
  25. },
  26. watch: {
  27. message: {
  28. handler: function(newVal) {
  29. this.setData({
  30. renderDom: parseImage(newVal),
  31. percent: newVal.percent
  32. });
  33. },
  34. immediate: true,
  35. deep: true
  36. }
  37. },
  38. methods: {
  39. previewImage() {
  40. uni.previewImage({
  41. current: this.renderDom[0].src,
  42. // 当前显示图片的http链接
  43. urls: [this.renderDom[0].src]
  44. });
  45. }
  46. }
  47. };
  48. </script>
  49. <style>
  50. @import './index.css';
  51. </style>