SearchFileItem.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <template>
  2. <view @click="toPreviewFile" class="file_item">
  3. <view class="top_info">
  4. <view class="sender">
  5. <my-avatar
  6. :src="message.senderFaceURL"
  7. :desc="message.senderNickname"
  8. />
  9. <text class="sender_name">{{ message.senderNickname }}</text>
  10. </view>
  11. <text class="timer">{{ getSendTime }}</text>
  12. </view>
  13. <view class="file_info">
  14. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/file_icon_zip.png" alt="" />
  15. <view class="file_desc">
  16. <text>{{ message.fileElem.fileName }}</text>
  17. <text>{{ getSize }}</text>
  18. </view>
  19. </view>
  20. </view>
  21. </template>
  22. <script>
  23. import MyAvatar from "../../../../components/MyAvatar/index.vue";
  24. import { bytesToSize, formatConversionTime } from "../../../../util/imCommon";
  25. export default {
  26. name: "",
  27. components: {
  28. MyAvatar,
  29. },
  30. props: {
  31. message: Object,
  32. },
  33. data() {
  34. return {};
  35. },
  36. computed: {
  37. getSendTime() {
  38. return formatConversionTime(this.message.sendTime);
  39. },
  40. getSize() {
  41. return bytesToSize(this.message.fileElem.fileSize);
  42. },
  43. },
  44. methods: {
  45. toPreviewFile() {
  46. uni.$u.route("/pages/conversation/previewFile/index", {
  47. fileEl: JSON.stringify(this.message.fileElem),
  48. msgID: this.message.clientMsgID,
  49. });
  50. },
  51. },
  52. };
  53. </script>
  54. <style lang="scss" scoped>
  55. .file_item {
  56. @include colBox(false);
  57. padding: 32rpx 44rpx;
  58. background-color: #fff;
  59. color: $uni-text-color;
  60. margin-bottom: 12rpx;
  61. .top_info {
  62. @include btwBox();
  63. font-size: 28rpx;
  64. .timer {
  65. color: #999;
  66. }
  67. }
  68. .sender {
  69. @include vCenterBox();
  70. &_name {
  71. @include nomalEllipsis();
  72. max-width: 480rpx;
  73. margin-left: 24rpx;
  74. }
  75. }
  76. .file_info {
  77. @include vCenterBox();
  78. margin-top: 36rpx;
  79. font-size: 28rpx;
  80. .file_desc {
  81. @include colBox(false);
  82. margin-left: 24rpx;
  83. text {
  84. @include nomalEllipsis();
  85. max-width: 480rpx;
  86. &:last-child {
  87. color: #999;
  88. margin-top: 12rpx;
  89. }
  90. }
  91. }
  92. image {
  93. width: 40px;
  94. height: 38px;
  95. }
  96. }
  97. }
  98. </style>