message-revoked.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <div class="revoke">
  3. <span v-if="message.flow === 'in'">{{
  4. message.nick || message.from
  5. }}</span>
  6. <span v-else-if="message.from === message.revoker">{{
  7. TUITranslateService.t("TUIChat.您")
  8. }}</span>
  9. <span v-else>{{ message.revoker }}</span>
  10. <span>{{ TUITranslateService.t("TUIChat.撤回了一条消息") }}</span>
  11. <span
  12. v-if="message.flow === 'out' && isEditMsg"
  13. class="edit"
  14. @click="messageEdit"
  15. >{{ TUITranslateService.t("TUIChat.重新编辑") }}</span>
  16. </div>
  17. </template>
  18. <script lang="ts" setup>
  19. import { watchEffect, ref } from '../../../../adapter-vue';
  20. import { TUITranslateService, IMessageModel } from '@tencentcloud/chat-uikit-engine';
  21. const props = defineProps({
  22. isEdit: {
  23. type: Boolean,
  24. default: () => false,
  25. },
  26. messageItem: {
  27. type: Object,
  28. default: () => ({}),
  29. },
  30. });
  31. const message = ref<IMessageModel>();
  32. const isEditMsg = ref(false);
  33. const emits = defineEmits(['messageEdit']);
  34. watchEffect(() => {
  35. message.value = props.messageItem;
  36. isEditMsg.value = props.isEdit;
  37. });
  38. const messageEdit = () => {
  39. emits('messageEdit');
  40. };
  41. </script>
  42. <style lang="scss" scoped>
  43. @import "../../../../assets/styles/common";
  44. .revoke {
  45. display: flex;
  46. flex-direction: row;
  47. justify-content: center;
  48. color: #999;
  49. font-size: 12px;
  50. margin-bottom: 10px;
  51. .edit {
  52. padding: 0 5px;
  53. color: #006eff;
  54. }
  55. }
  56. </style>