删除公告,消息撤回优化

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 { .text {
box-sizing: border-box; box-sizing: border-box;
max-width: 502rpx; max-width: 502rpx;
<<<<<<< HEAD
padding:10rpx 30rpx;
=======
padding: 20rpx 24rpx; padding: 20rpx 24rpx;
>>>>>>> 32e3e0ef3040a5320c18aa4803fc5bf1476deb06
line-height: 46rpx; line-height: 46rpx;
font-size: 32rpx; font-size: 32rpx;
color: $text-color; color: $text-color;

View File

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

View File

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

View File

@@ -121,7 +121,7 @@
}, },
tabA(id) { tabA(id) {
uni.navigateTo({ 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) { onTop(aId) {

View File

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

View File

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

View File

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