修改撤回显示规则
This commit is contained in:
parent
380b0120bc
commit
b0abca9bf2
@ -4,39 +4,72 @@ import { formatTime } from '@/utils/datetime'
|
|||||||
defineProps({
|
defineProps({
|
||||||
login_uid: {
|
login_uid: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0,
|
||||||
},
|
},
|
||||||
user_id: {
|
user_id: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0,
|
||||||
},
|
},
|
||||||
talk_type: {
|
talk_type: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0,
|
||||||
},
|
},
|
||||||
nickname: {
|
nickname: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: '',
|
||||||
},
|
},
|
||||||
datetime: {
|
datetime: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: '',
|
||||||
},
|
},
|
||||||
msg_id: {
|
msg_id: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: '',
|
||||||
|
},
|
||||||
|
revokeInfo: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extra:{
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="im-message-revoke">
|
<div class="im-message-revoke">
|
||||||
<div class="content">
|
<div class="content" v-if="JSON.stringify(revokeInfo) !== '{}'">
|
||||||
<span v-if="login_uid == user_id"> 你撤回了一条消息 | {{ formatTime(datetime) }}
|
<span v-if="talk_type === 1 && login_uid === revokeInfo.withdraw_id">
|
||||||
<slot></slot> <!-- 添加插槽用于放置重新编辑按钮 -->
|
你撤回了一条消息 | {{ formatTime(datetime) }}
|
||||||
|
<slot></slot>
|
||||||
|
<!-- 添加插槽用于放置重新编辑按钮 -->
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="talk_type == 1"> 对方撤回了一条消息 | {{ formatTime(datetime) }} </span>
|
<span v-if="talk_type === 1 && login_uid !== revokeInfo.withdraw_id">
|
||||||
<span v-else>
|
{{revokeInfo.withdraw_name}}撤回了一条消息 | {{ formatTime(datetime) }}
|
||||||
"{{ nickname }}" 撤回了一条消息 |
|
</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) }}
|
||||||
|
{{extra}}
|
||||||
|
</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) }}
|
{{ formatTime(datetime) }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@ -44,6 +77,27 @@ defineProps({
|
|||||||
<span v-else-if="login_uid == user_idB"> A撤回你了一条消息 | {{ formatTime(datetime) }} </span>
|
<span v-else-if="login_uid == user_idB"> A撤回你了一条消息 | {{ formatTime(datetime) }} </span>
|
||||||
<span v-else> A撤回B了一条消息 | {{ formatTime(datetime) }} </span> -->
|
<span v-else> A撤回B了一条消息 | {{ formatTime(datetime) }} </span> -->
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@ -68,20 +68,38 @@ class Revoke extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handle() {
|
handle() {
|
||||||
const {updateDialogueRecord} = useDialogueListStore()
|
const { updateDialogueRecord } = useDialogueListStore()
|
||||||
useTalkStore().updateItem({
|
useTalkStore().updateItem({
|
||||||
index_name: this.getIndexName(),
|
index_name: this.getIndexName(),
|
||||||
msg_text: this.resource.text,
|
msg_text: this.resource.text,
|
||||||
updated_at: parseTime(new Date())
|
revokeInfo: {
|
||||||
|
retracted_id: this.resource.retracted_id,
|
||||||
|
retracted_name: this.resource.retracted_name,
|
||||||
|
withdraw_id: this.resource.withdraw_id,
|
||||||
|
withdraw_name: this.resource.withdraw_name,
|
||||||
|
},
|
||||||
|
updated_at: parseTime(new Date()),
|
||||||
})
|
})
|
||||||
|
|
||||||
useDialogueStore().updateDialogueRecord({
|
useDialogueStore().updateDialogueRecord({
|
||||||
msg_id: this.msg_id,
|
msg_id: this.msg_id,
|
||||||
is_revoke: 1
|
revokeInfo: {
|
||||||
|
retracted_id: this.resource.retracted_id,
|
||||||
|
retracted_name: this.resource.retracted_name,
|
||||||
|
withdraw_id: this.resource.withdraw_id,
|
||||||
|
withdraw_name: this.resource.withdraw_name,
|
||||||
|
},
|
||||||
|
is_revoke: 1,
|
||||||
})
|
})
|
||||||
updateDialogueRecord({
|
updateDialogueRecord({
|
||||||
msg_id: this.msg_id,
|
msg_id: this.msg_id,
|
||||||
is_revoke: 1
|
revokeInfo: {
|
||||||
|
retracted_id: this.resource.retracted_id,
|
||||||
|
retracted_name: this.resource.retracted_name,
|
||||||
|
withdraw_id: this.resource.withdraw_id,
|
||||||
|
withdraw_name: this.resource.withdraw_name,
|
||||||
|
},
|
||||||
|
is_revoke: 1,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,8 @@
|
|||||||
:talk_type="item.talk_type"
|
:talk_type="item.talk_type"
|
||||||
:datetime="item.created_at"
|
:datetime="item.created_at"
|
||||||
:msg_id="item.msg_id"
|
:msg_id="item.msg_id"
|
||||||
|
:revokeInfo="item.revokeInfo"
|
||||||
|
:extra="item.extra"
|
||||||
>
|
>
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="
|
||||||
|
@ -443,6 +443,8 @@ const getDArray = (dArray) => {
|
|||||||
//输入搜索内容
|
//输入搜索内容
|
||||||
const inputSearchText = (e) => {
|
const inputSearchText = (e) => {
|
||||||
state.searchText = e
|
state.searchText = e
|
||||||
|
state.cursor = 0
|
||||||
|
queryAllSearch()
|
||||||
}
|
}
|
||||||
|
|
||||||
//点击取消搜索
|
//点击取消搜索
|
||||||
@ -465,6 +467,7 @@ const queryAllSearch = () => {
|
|||||||
start_time: '',
|
start_time: '',
|
||||||
end_time: '',
|
end_time: '',
|
||||||
group_member_user_id: 0, //群成员id,当查询群历史消息的时候,需要指定群成员的时候送
|
group_member_user_id: 0, //群成员id,当查询群历史消息的时候,需要指定群成员的时候送
|
||||||
|
file_name: state.msg_type === 6 ? state.searchText : '',
|
||||||
}
|
}
|
||||||
console.log(params)
|
console.log(params)
|
||||||
const resp = ServeFindTalkRecords(params)
|
const resp = ServeFindTalkRecords(params)
|
||||||
@ -472,7 +475,8 @@ const queryAllSearch = () => {
|
|||||||
resp.then(({ code, data }) => {
|
resp.then(({ code, data }) => {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
let dateList = state.searchResultList
|
// 当cursor为0时,清空searchResultList
|
||||||
|
let dateList = state.cursor === 0 ? [] : state.searchResultList
|
||||||
let noMore = false
|
let noMore = false
|
||||||
if (data?.items?.length > 0) {
|
if (data?.items?.length > 0) {
|
||||||
data.items.forEach((item) => {
|
data.items.forEach((item) => {
|
||||||
@ -518,14 +522,26 @@ const queryAllSearch = () => {
|
|||||||
noMore = true
|
noMore = true
|
||||||
}
|
}
|
||||||
console.log(dateList)
|
console.log(dateList)
|
||||||
|
if (state.cursor === 0) {
|
||||||
|
state.searchResultList = dateList
|
||||||
|
zPaging.value?.complete(dateList)
|
||||||
|
} else {
|
||||||
|
state.searchResultList = dateList
|
||||||
|
zPaging.value?.completeByNoMore(dateList, noMore)
|
||||||
|
}
|
||||||
state.cursor = data?.cursor
|
state.cursor = data?.cursor
|
||||||
zPaging.value?.completeByNoMore(dateList, noMore)
|
|
||||||
} else {
|
} else {
|
||||||
|
if (state.cursor === 0) {
|
||||||
|
state.searchResultList = []
|
||||||
|
}
|
||||||
zPaging.value?.complete([])
|
zPaging.value?.complete([])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
resp.catch(() => {
|
resp.catch(() => {
|
||||||
|
if (state.cursor === 0) {
|
||||||
|
state.searchResultList = []
|
||||||
|
}
|
||||||
zPaging.value?.complete([])
|
zPaging.value?.complete([])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -107,15 +107,17 @@ export const useDialogueListStore = createGlobalState(() => {
|
|||||||
const addChatRecord = (indexName, item) => {
|
const addChatRecord = (indexName, item) => {
|
||||||
const dialogue = lodash.cloneDeep(useDialogueStore())
|
const dialogue = lodash.cloneDeep(useDialogueStore())
|
||||||
if (dialogue?.index_name === indexName) {
|
if (dialogue?.index_name === indexName) {
|
||||||
const index = virtualList.value.findIndex(
|
if (item?.file_num) {
|
||||||
(v) => v?.file_num === item?.file_num,
|
const index = virtualList.value.findIndex(
|
||||||
)
|
(v) => v?.file_num === item?.file_num,
|
||||||
if (index > -1) {
|
)
|
||||||
// 保持响应性的同时替换整个对象
|
if (index > -1) {
|
||||||
virtualList.value.splice(index, 1, {
|
// 保持响应性的同时替换整个对象
|
||||||
...virtualList.value[index], // 保留原有不需要修改的字段
|
virtualList.value.splice(index, 1, {
|
||||||
...item, // 覆盖需要更新的字段
|
...virtualList.value[index], // 保留原有不需要修改的字段
|
||||||
})
|
...item, // 覆盖需要更新的字段
|
||||||
|
})
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
zpagingRef.value?.addChatRecordData(item, false, false)
|
zpagingRef.value?.addChatRecordData(item, false, false)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user