删除公告,消息撤回优化
This commit is contained in:
BIN
pages/im/.DS_Store
vendored
Normal file
BIN
pages/im/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -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;
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
<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>
|
||||||
</block>
|
</block>
|
||||||
|
|
||||||
<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>
|
||||||
@@ -41,17 +32,12 @@
|
|||||||
type: '' // cheack ' 查看详情'
|
type: '' // cheack ' 查看详情'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
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
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -22,10 +22,10 @@
|
|||||||
import showMessageCell from '../components/showMessageCell'
|
import showMessageCell from '../components/showMessageCell'
|
||||||
import utils from '@/utils/index.js'
|
import utils from '@/utils/index.js'
|
||||||
import onGroupDismiss from '../mixins/onGroupDismiss.js'
|
import onGroupDismiss from '../mixins/onGroupDismiss.js'
|
||||||
import imBase from '../mixins/imBase.js'
|
import imBase from '../mixins/imBase.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [
|
mixins: [
|
||||||
imBase,
|
imBase,
|
||||||
onGroupDismiss
|
onGroupDismiss
|
||||||
],
|
],
|
||||||
@@ -54,9 +54,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.initGroupInfo()
|
this.initGroupInfo()
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
this.targetId = e.targetId
|
this.targetId = e.targetId
|
||||||
@@ -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('onReceiveMessage_' + this.targetId)
|
uni.$off('remove_message_' + 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')
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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')
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ const notifyMsgTypes = [
|
|||||||
IMLib.ObjectName.Location,
|
IMLib.ObjectName.Location,
|
||||||
IMLib.ObjectName.Voice,
|
IMLib.ObjectName.Voice,
|
||||||
IMLib.ObjectName.HQVoice,
|
IMLib.ObjectName.HQVoice,
|
||||||
IMLib.ObjectName.Sight,
|
IMLib.ObjectName.Sight,
|
||||||
IMLib.ObjectName.GroupNotification
|
IMLib.ObjectName.GroupNotification
|
||||||
]
|
]
|
||||||
|
|
||||||
const imLibListeners = () => {
|
const imLibListeners = () => {
|
||||||
@@ -72,7 +72,7 @@ const imLibListeners = () => {
|
|||||||
checkContactExists(message)
|
checkContactExists(message)
|
||||||
if (utils.inArray(message.objectName, notifyMsgTypes)) {
|
if (utils.inArray(message.objectName, notifyMsgTypes)) {
|
||||||
onReceiveMessage(message)
|
onReceiveMessage(message)
|
||||||
} else if (message.objectName === IMLib.ObjectName.ProfileNotification) {
|
} else if (message.objectName === IMLib.ObjectName.ProfileNotification) {
|
||||||
uni.$emit('onUpdateProfile_' + message.targetId)
|
uni.$emit('onUpdateProfile_' + message.targetId)
|
||||||
// 更新联系人信息
|
// 更新联系人信息
|
||||||
store.dispatch('updateContact', JSON.parse(message.content.data))
|
store.dispatch('updateContact', JSON.parse(message.content.data))
|
||||||
@@ -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)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// 监听需要群聊消息回执
|
// 监听需要群聊消息回执
|
||||||
|
|||||||
Reference in New Issue
Block a user