135 lines
4.1 KiB
Vue
135 lines
4.1 KiB
Vue
<script setup>
|
|
import { formatTime } from '@/utils/datetime'
|
|
|
|
defineProps({
|
|
login_uid: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
user_id: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
talk_type: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
nickname: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
datetime: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
msg_id: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
revokeInfo: {
|
|
type: Object,
|
|
default() {
|
|
return {}
|
|
},
|
|
},
|
|
extra:{
|
|
type: String,
|
|
default: '',
|
|
}
|
|
})
|
|
</script>
|
|
<template>
|
|
<div class="im-message-revoke">
|
|
<div class="content" v-if="JSON.stringify(revokeInfo) !== '{}'">
|
|
<span v-if="talk_type === 1 && login_uid === revokeInfo.withdraw_id">
|
|
你撤回了一条消息 | {{ formatTime(datetime) }}
|
|
<slot></slot>
|
|
<!-- 添加插槽用于放置重新编辑按钮 -->
|
|
</span>
|
|
<span v-if="talk_type === 1 && login_uid !== revokeInfo.withdraw_id">
|
|
{{revokeInfo.withdraw_name}}撤回了一条消息 | {{ formatTime(datetime) }}
|
|
</span>
|
|
<span v-if="talk_type === 2 && login_uid === revokeInfo.withdraw_id && login_uid === revokeInfo.retracted_id">
|
|
你撤回了一条消息 |
|
|
{{ formatTime(datetime) }}
|
|
<slot></slot>
|
|
</span>
|
|
<span v-if="talk_type === 2 && login_uid === revokeInfo.withdraw_id && login_uid !== revokeInfo.retracted_id">
|
|
你撤回了{{revokeInfo.retracted_name}}一条消息 |
|
|
{{ formatTime(datetime) }}
|
|
</span>
|
|
<span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && revokeInfo.withdraw_id === revokeInfo.retracted_id">
|
|
{{revokeInfo.withdraw_name}}撤回了一条消息 |
|
|
{{ formatTime(datetime) }}
|
|
</span>
|
|
|
|
<span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && login_uid === revokeInfo.retracted_id && revokeInfo.withdraw_id !== revokeInfo.retracted_id">
|
|
{{revokeInfo.withdraw_name}}撤回了你一条消息 |
|
|
{{ formatTime(datetime) }}
|
|
</span>
|
|
<span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && login_uid !== revokeInfo.retracted_id && revokeInfo.withdraw_id !== revokeInfo.retracted_id">
|
|
{{revokeInfo.withdraw_name}}撤回了{{revokeInfo.retracted_name}}一条消息 |
|
|
{{ formatTime(datetime) }}
|
|
</span>
|
|
|
|
<!-- <span v-if="login_uid == user_idA"> 你撤回B了一条消息 | {{ formatTime(datetime) }} </span>
|
|
<span v-else-if="login_uid == user_idB"> A撤回你了一条消息 | {{ formatTime(datetime) }} </span>
|
|
<span v-else> A撤回B了一条消息 | {{ formatTime(datetime) }} </span> -->
|
|
</div>
|
|
<div class="content" v-if="JSON.stringify(revokeInfo) === '{}'">
|
|
<span v-if="talk_type === 1 && login_uid === user_id">
|
|
你撤回了一条消息 | {{ formatTime(datetime) }}
|
|
<slot></slot>
|
|
<!-- 添加插槽用于放置重新编辑按钮 -->
|
|
</span>
|
|
<span v-if="talk_type === 1 && login_uid !== user_id">
|
|
{{nickname}}撤回了一条消息 | {{ formatTime(datetime) }}
|
|
</span>
|
|
<span v-if="talk_type === 2 && !extra && login_uid === user_id">
|
|
你撤回了一条消息 | {{ formatTime(datetime) }}
|
|
<slot></slot>
|
|
<!-- 添加插槽用于放置重新编辑按钮 -->
|
|
</span>
|
|
<span v-if="talk_type === 2 && !extra && login_uid !== user_id">
|
|
{{nickname}}撤回了一条消息 | {{ formatTime(datetime) }}
|
|
</span>
|
|
<span v-if="talk_type === 2 && extra">
|
|
{{extra}} | {{ formatTime(datetime) }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<style lang="less" scoped>
|
|
.im-message-revoke {
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
.content {
|
|
margin: 10px auto;
|
|
background-color: #f5f5f5;
|
|
font-size: 11px;
|
|
line-height: 30px;
|
|
padding: 0 8px;
|
|
word-break: break-all;
|
|
word-wrap: break-word;
|
|
color: #979191;
|
|
user-select: none;
|
|
font-weight: 300;
|
|
display: inline-block;
|
|
border-radius: 3px;
|
|
|
|
span {
|
|
margin: 0 5px;
|
|
}
|
|
}
|
|
}
|
|
|
|
html[theme-mode='dark'] {
|
|
.im-message-revoke {
|
|
.content {
|
|
background: unset;
|
|
}
|
|
}
|
|
}
|
|
</style>
|