message-file.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div
  3. class="file-message-montainer"
  4. :title="TUITranslateService.t('TUIChat.单击下载')"
  5. @click="filePreview(props.content.url)"
  6. >
  7. <Icon :file="files" class="file-icon" />
  8. <div>
  9. <div>{{ props.content.name }}</div>
  10. <div>{{ props.content.size }}</div>
  11. </div>
  12. </div>
  13. </template>
  14. <script lang="ts" setup>
  15. import { withDefaults } from "../../../../adapter-vue";
  16. import {
  17. TUITranslateService,
  18. IMessageModel,
  19. } from "@tencentcloud/chat-uikit-engine";
  20. import Icon from "../../../common/Icon.vue";
  21. import files from "../../../../assets/icon/files.png";
  22. import type { IFileMessageContent } from "../../../../interface";
  23. const props = withDefaults(
  24. defineProps<{
  25. content: IFileMessageContent;
  26. messageItem: IMessageModel;
  27. }>(),
  28. {
  29. content: () => ({} as IFileMessageContent),
  30. messageItem: () => ({} as IMessageModel),
  31. }
  32. );
  33. // 预览简历
  34. const filePreview = (url) => {
  35. webUni.webView.navigateTo({
  36. url: "/subpages/my/addition/preview?url=" + url,
  37. });
  38. };
  39. </script>
  40. <style lang="scss" scoped>
  41. @import "../../../../assets/styles/common";
  42. .file-message-montainer {
  43. display: flex;
  44. flex-direction: row;
  45. cursor: pointer;
  46. .file-icon {
  47. margin: auto 8px;
  48. }
  49. }
  50. </style>