删除公告,消息撤回优化

This commit is contained in:
2022-02-24 10:56:16 +08:00
parent 8b7a259c00
commit e72d6b3a91
8 changed files with 87 additions and 80 deletions

BIN
pages/im/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -57,11 +57,7 @@
.text {
box-sizing: border-box;
max-width: 502rpx;
<<<<<<< HEAD
padding:10rpx 30rpx;
=======
padding: 20rpx 24rpx;
>>>>>>> 32e3e0ef3040a5320c18aa4803fc5bf1476deb06
line-height: 46rpx;
font-size: 32rpx;
color: $text-color;

View File

@@ -2,7 +2,8 @@
<view class="">
<view class="notify" v-if="message.objectName === 'RC:GrpNtf'">
{{ message.content.message }}
<text class="link" @click="toAnnounce(message)" v-if="message.content.operation == 'ANNOUNCEMENT'">点击查看 </text>
<text class="link" @click="toAnnounce(message)" v-if="message.content.operation == 'ANNOUNCEMENT'">点击查看
</text>
</view>
<view class="notify" v-else-if="message.objectName === 'RC:RcNtf'">
{{ contact(message.senderUserId).name }} 撤回了一条消息
@@ -25,6 +26,9 @@
</template>
<script>
import {
getGroupAnnouncement
} from '@/apis/interfaces/im.js'
import * as IMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import showVoice from './show/showVoice'
import showImage from './show/showImage'
@@ -68,17 +72,25 @@
}
},
// 跳转群公告
<<<<<<< HEAD
toAnnounce(message) {
if (message.content.extra) {
getGroupAnnouncement(message.targetId, message.content.extra).then(res => {
uni.navigateTo({
url: '/pages/im/group/announceCreate?type=cheack&targetId=' + message.targetId + '&aId=' + message.content.extra
=======
toAnnounce(targetId) {
if (targetId) {
uni.navigateTo({
url: '/pages/im/group/announceCreate?type=check&targetId=' + this.message.targetId + '&aId=' + targetId
>>>>>>> 32e3e0ef3040a5320c18aa4803fc5bf1476deb06
url: '/pages/im/group/announceCreate?type=check&targetId=' + message
.targetId + '&aId=' + message.content.extra
})
}).catch(err => {
IMLib.deleteMessagesByIds([message.messageId], ({
code
}) => {
if (code === 0) {
uni.$emit('remove_message_' + message.targetId, message.messageId)
}
})
uni.showToast({
title: '公告不存在或已删除',
icon: 'none',
})
})
} else {
uni.showToast({

View File

@@ -1,14 +1,6 @@
<template>
<view class="create">
<view class="create-title">公告内容</view>
<<<<<<< HEAD
<block v-if="type !== 'cheack'">
<u--textarea v-model="content" count height="240" maxlength="240" placeholder="请输入公告内容" />
<u-button type="primary" text="发布" :disabled="disabled" @click="onCreate" color="#34CE98" />
</block>
<block v-if="type === 'cheack'">
<view class="content-a"> {{content}} </view>
=======
<block v-if="type === 'check'">
<view class="content"> {{content}} </view>
@@ -17,7 +9,6 @@
<block v-else>
<u--textarea v-model="content" count height="240" maxlength="240" placeholder="请输入公告内容" />
<u-button type="primary" text="发布" :disabled="disabled" @click="onCreate" color="#34CE98" />
>>>>>>> 32e3e0ef3040a5320c18aa4803fc5bf1476deb06
</block>
</view>
</template>
@@ -42,11 +33,6 @@
}
},
onLoad(e) {
<<<<<<< HEAD
console.log(e,'e,,,,,')
=======
console.log('E', e);
>>>>>>> 32e3e0ef3040a5320c18aa4803fc5bf1476deb06
this.targetId = e.targetId
if (e.type) {
this.type = e.type
@@ -62,11 +48,17 @@
getGroupAnnouncement(this.targetId, this.aId).then(res => {
this.content = res.content
}).catch(err => {
if (err.status_code == 404) {
this.$nextTick(() => {
uni.navigateBack()
})
} else {
uni.showToast({
title: err.message,
icon: 'none',
mask: true
})
}
})
}
},

View File

@@ -121,7 +121,7 @@
},
tabA(id) {
uni.navigateTo({
url: '/pages/im/group/announceCreate?type=cheack&targetId=' + this.targetId + '&aId=' + id
url: '/pages/im/group/announceCreate?type=check&targetId=' + this.targetId + '&aId=' + id
})
},
onTop(aId) {

View File

@@ -89,22 +89,24 @@
})
// 清理聊天记录
uni.$once('cleanGroupMessage', this.getMessageList)
uni.$on('onRecallMessage', (res) => {
if (res.targetId == this.targetId) {
uni.$on('onRecallMessage_' + this.targetId, (message) => {
this.messages = this.messages.map(item => {
if (res.messageId == item.messageId) {
return res
if (message.messageId == item.messageId) {
return message
} else {
return item
}
})
}
})
uni.$on('remove_message_' + this.targetId, (messageId) => {
this.messages = this.messages.filter(item => item.messageId != messageId)
})
},
onUnload() {
uni.$off('remove_message_' + this.targetId)
uni.$off('onReceiveMessage_' + this.targetId)
uni.$off('onUpdateProfile_' + this.targetId)
uni.$off('onRecallMessage')
uni.$off('onRecallMessage_' + this.targetId)
uni.$off('onReceiptRequest')
uni.$off('onReceiptResponse')
},

View File

@@ -75,20 +75,19 @@
})
}
})
uni.$on('onRecallMessage', (res) => {
if (res.targetId == this.targetId) {
uni.$on('onRecallMessage_' + this.targetId, (message) => {
this.messages = this.messages.map(item => {
if (res.messageId == item.messageId) {
return res
if (message.messageId == item.messageId) {
return message
} else {
return item
}
})
}
})
},
onUnload() {
uni.$off('onReceiveMessage_' + this.targetId)
uni.$off('onRecallMessage_' + this.targetId)
uni.$off('onRecallMessage')
uni.$off('onReadReceiptReceived')
},

View File

@@ -119,10 +119,16 @@ const imLibListeners = () => {
uni.$emit('onReadReceiptReceived', data)
})
// 监听消息撤回操作
IMLib.addRecallMessageListener((res) => {
IMLib.getMessage(res.data.messageId, (res) => {
console.error("消息撤回: ", res.message);
uni.$emit('onRecallMessage', res.message)
IMLib.addRecallMessageListener(({
data
}) => {
IMLib.getMessage(data.messageId, ({
message
}) => {
console.error("消息撤回: ", message);
im.setNotifyBadge()
uni.$emit('onReceiveMessage', message)
uni.$emit('onRecallMessage_' + message.targetId, message)
})
})
// 监听需要群聊消息回执