message-revoked.vue 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div class="revoke">
  3. <label v-if="message.flow === 'in'">{{message.nick || message.from }}</label>
  4. <label v-else>你</label>
  5. <span>撤回了一条消息</span>
  6. <span class="edit" v-if="message.flow === 'out'" @click="edit">重新编辑</span>
  7. </div>
  8. </template>
  9. <script lang="ts">
  10. import { defineComponent, watchEffect, reactive, toRefs } from 'vue';
  11. const MessageRevoked = defineComponent({
  12. props: {
  13. data: {
  14. type: Object,
  15. default: () => {
  16. return {};
  17. }
  18. },
  19. },
  20. setup(props:any, ctx:any) {
  21. const data = reactive({
  22. message: {},
  23. });
  24. watchEffect(()=>{
  25. data.message = props.data;
  26. });
  27. const edit = () => {
  28. ctx.emit('edit', data.message);
  29. };
  30. return {
  31. ...toRefs(data),
  32. edit
  33. };
  34. }
  35. });
  36. export default MessageRevoked
  37. </script>
  38. <style lang="scss" scoped>
  39. .revoke {
  40. display: flex;
  41. justify-content: center;
  42. color: #999999;
  43. width: 100%;
  44. font-size: 13px;
  45. padding: 5px;
  46. .edit {
  47. padding: 0 5px;
  48. color: #006EFF;
  49. }
  50. }
  51. </style>