MessageFile.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <view class="file-box" v-if="message.messageType===MessageType.file && message.extend?.url && message.extend?.fileName">
  3. <view class="file-icon">
  4. <text class="cuIcon cuIcon-down" style="color: #666666;"></text>
  5. </view>
  6. <uni-link color="#666666" class="file-text" :href="message.extend.url" :text="message.extend.fileName"/>
  7. </view>
  8. </template>
  9. <script setup lang="ts">
  10. import MessageType from "@/utils/MessageType";
  11. import UniLink from "@/uni_modules/uni-link/components/uni-link/uni-link.vue";
  12. import type Message from "@/mode/Message";
  13. interface Props<T> {
  14. message: T
  15. }
  16. defineProps<Props<Message>>()
  17. </script>
  18. <style lang="scss" scoped>
  19. .file-box {
  20. width: 60vw;
  21. display: flex;
  22. background-color: #efefef;
  23. color: #666666;
  24. .file-icon {
  25. background-color: #cccccc;
  26. padding: 10px;
  27. width: 60px;
  28. flex-shrink: 0;
  29. display: flex;
  30. align-items: center;
  31. justify-content: center;
  32. .cuIcon {
  33. line-height: normal;
  34. font-size: 2rem;
  35. }
  36. }
  37. .file-text {
  38. width: 0;
  39. padding: 10px;
  40. flex: 5;
  41. display: flex;
  42. align-items: center;
  43. flex-shrink: 0;
  44. overflow: hidden;
  45. text-decoration: none;
  46. .file-name {
  47. -webkit-line-clamp: 2;
  48. white-space: nowrap;
  49. overflow: hidden;
  50. text-overflow: ellipsis;
  51. overflow-wrap: break-word;
  52. word-break: break-all;
  53. }
  54. }
  55. }
  56. </style>