This commit is contained in:
唐明明
2022-02-24 14:19:39 +08:00
8 changed files with 60 additions and 26 deletions

View File

@@ -104,7 +104,10 @@
hideAction(item) { hideAction(item) {
this.actionShow = false this.actionShow = false
}, },
showAction(item) { showAction(item) {
if (item.is_admin == 2) {
return
}
this.currentUser = item this.currentUser = item
this.actionTitle = item.name this.actionTitle = item.name
// 只有管理员以上才会弹窗 // 只有管理员以上才会弹窗

View File

@@ -121,8 +121,8 @@
icon: 'none', icon: 'none',
title: '消息撤回成功' title: '消息撤回成功'
}) })
IMLib.getMessage(this.message.messageId, res => { IMLib.getMessage(this.message.messageId, res => {
uni.$emit('onRecallMessage', res.message) uni.$emit('onRecallMessage_' + this.message.targetId, res.message)
}) })
} else { } else {
uni.showToast({ uni.showToast({

View File

@@ -4,7 +4,7 @@
<!-- 用户信息 --> <!-- 用户信息 -->
<view class="info-flex"> <view class="info-flex">
<view class="info-flex-item"> <view class="info-flex-item">
<u-avatar :src="infoObj.portraitUrl" shape="square" size="210rpx" bg-color="#fff" class="avatar" /> <u-avatar :src="infoObj.portraitUrl" @click='previewImg(infoObj.portraitUrl)' shape="square" size="210rpx" bg-color="#fff" class="avatar" />
<view class="nickname">{{infoObj.name}}</view> <view class="nickname">{{infoObj.name}}</view>
<view class="address">{{infoObj.address}}</view> <view class="address">{{infoObj.address}}</view>
<view class="info-code"> <view class="info-code">
@@ -47,7 +47,13 @@
this.infoObj = res this.infoObj = res
}) })
}, },
methods: { methods: {
previewImg(item){
console.log(item)
uni.previewImage({
urls:[item]
})
},
copy() { copy() {
uni.setClipboardData({ uni.setClipboardData({
data: this.downUrl, data: this.downUrl,
@@ -100,7 +106,7 @@
.avatar { .avatar {
// padding: 14rpx; // padding: 14rpx;
border-radius: 10rpx; border-radius: 20rpx;
background-color: #fff; background-color: #fff;
border: solid 14rpx rgba($color: #fff, $alpha:1); border: solid 14rpx rgba($color: #fff, $alpha:1);
} }

View File

@@ -84,8 +84,18 @@
} }
}) })
}) })
uni.$once('onUserDelete_' + this.targetId, () => {
uni.showToast({
icon: 'none',
title: '好友关系已解除'
})
uni.switchTab({
url: '/pages/im/index'
})
})
}, },
onUnload() { onUnload() {
uni.$off('onUserDelete_' + this.targetId)
uni.$off('onReceiveMessage_' + this.targetId) uni.$off('onReceiveMessage_' + this.targetId)
uni.$off('onRecallMessage_' + this.targetId) uni.$off('onRecallMessage_' + this.targetId)
uni.$off('onRecallMessage') uni.$off('onRecallMessage')

View File

@@ -76,7 +76,8 @@ export default {
name: contactInfo.name, name: contactInfo.name,
hash: contactInfo.hash, hash: contactInfo.hash,
portraitUrl: contactInfo.portraitUrl, portraitUrl: contactInfo.portraitUrl,
localAvatar: savedFilePath localAvatar: savedFilePath,
type: contactInfo.type
} }
model.update('targetId="' + contactInfo.targetId + '"', info, (err, model.update('targetId="' + contactInfo.targetId + '"', info, (err,
res) => { res) => {
@@ -90,7 +91,8 @@ export default {
name: contactInfo.name, name: contactInfo.name,
hash: contactInfo.hash, hash: contactInfo.hash,
portraitUrl: contactInfo.portraitUrl, portraitUrl: contactInfo.portraitUrl,
localAvatar: result[0].localAvatar localAvatar: result[0].localAvatar,
type: contactInfo.type
} }
model.update('targetId="' + contactInfo.targetId + '"', info, (err, res) => { model.update('targetId="' + contactInfo.targetId + '"', info, (err, res) => {
console.log('UPDATE NAME, ERR', err, info); console.log('UPDATE NAME, ERR', err, info);
@@ -117,7 +119,8 @@ export default {
name: contactInfo.name, name: contactInfo.name,
hash: contactInfo.hash, hash: contactInfo.hash,
portraitUrl: contactInfo.portraitUrl, portraitUrl: contactInfo.portraitUrl,
localAvatar: savedFilePath localAvatar: savedFilePath,
type: contactInfo.type
} }
model.insert(info, (err, res) => {}) model.insert(info, (err, res) => {})
// 保存头像后,更新信息 // 保存头像后,更新信息
@@ -130,7 +133,8 @@ export default {
name: contactInfo.name, name: contactInfo.name,
hash: contactInfo.hash, hash: contactInfo.hash,
portraitUrl: contactInfo.portraitUrl, portraitUrl: contactInfo.portraitUrl,
localAvatar: '' localAvatar: '',
type: contactInfo.type
} }
model.insert(info, (err, res) => {}) model.insert(info, (err, res) => {})
} }

View File

@@ -62,7 +62,7 @@ const connect = (token, userInfo, callback) => {
// 设置未读消息数量 // 设置未读消息数量
setNotifyBadge() setNotifyBadge()
// 首次运行获取好友列表 // 首次运行获取好友列表
const FK = 'ZHKD_' + userInfo.targetId const FK = 'ZH_V_' + userInfo.targetId
uni.getStorage({ uni.getStorage({
key: FK, key: FK,

View File

@@ -67,7 +67,7 @@ const imLibListeners = () => {
// 添加消息监听函数 // 添加消息监听函数
IMLib.addReceiveMessageListener((res) => { IMLib.addReceiveMessageListener((res) => {
const message = res.data.message const message = res.data.message
console.error('[收到消息]',IMLib.ObjectName.GroupNotification, message) console.error('[收到消息]', message)
checkContactExists(message) checkContactExists(message)
if (utils.inArray(message.objectName, notifyMsgTypes)) { if (utils.inArray(message.objectName, notifyMsgTypes)) {
onReceiveMessage(message) onReceiveMessage(message)
@@ -78,29 +78,36 @@ const imLibListeners = () => {
// 调用完更新之后,删除这条消息 // 调用完更新之后,删除这条消息
IMLib.deleteMessagesByIds([message.messageId]) IMLib.deleteMessagesByIds([message.messageId])
} else if (message.objectName === IMLib.ObjectName.ContactNotification) { } else if (message.objectName === IMLib.ObjectName.ContactNotification) {
// 触发一个新好友的通知事件,【会话列表,通讯录,新朋友】页面 if (message.content.operation === 'Request') {
uni.$emit('onNewContactConversation', message) // 触发一个新好友的通知事件,【会话列表,通讯录,新朋友】页面
uni.$emit('onNewContactFriends', message) uni.$emit('onNewContactConversation', message)
uni.$emit('onNewContactPendings', message) uni.$emit('onNewContactFriends', message)
} else if (message.objectName === IMLib.ObjectName.GroupNotification) { uni.$emit('onNewContactPendings', message)
console.log('踢出用户',message); } else if (message.content.operation === 'Delete') {
IMLib.cleanHistoryMessages(1, message.targetId, message.sentTime, false)
// 解散了就删了吧
IMLib.removeConversation(1, message.targetId)
// 刷新会话列表
uni.$emit('onUserDelete_' + message.targetId)
uni.$emit('onReceiveMessage', message)
}
} else if (message.objectName === IMLib.ObjectName.GroupNotification) {
// 解散群 // 解散群
if (message.content.operation === 'Dismiss') { if (message.content.operation === 'Dismiss') {
IMLib.cleanHistoryMessages(message.conversationType, message.targetId, message.sentTime, IMLib.cleanHistoryMessages(3, message.targetId, message.sentTime,
false) false)
// 解散了就删了吧 // 解散了就删了吧
IMLib.removeConversation(message.conversationType, message.targetId) IMLib.removeConversation(3, message.targetId)
// 发布群解散的消息 // 发布群解散的消息
uni.$emit('onGroupDismiss') uni.$emit('onGroupDismiss')
uni.$emit('onGroupDismiss_' + message.targetId) uni.$emit('onGroupDismiss_' + message.targetId)
} else if (message.content.operation === 'REMOVE') { } else if (message.content.operation === 'REMOVE') {
console.log('踢出', message.content);
// 要判断是否当前用户,然后把当前用户踢出到主页去, 删除聊天记录,会话列表 // 要判断是否当前用户,然后把当前用户踢出到主页去, 删除聊天记录,会话列表
if (message.content.extra == store.getters.sender.userId) { if (message.content.extra == store.getters.sender.userId) {
IMLib.cleanHistoryMessages(message.conversationType, message.targetId, message.sentTime, IMLib.cleanHistoryMessages(3, message.targetId, message.sentTime,
false) false)
// 解散了就删了吧 // 解散了就删了吧
IMLib.removeConversation(message.conversationType, message.targetId) IMLib.removeConversation(3, message.targetId)
// 为了更新群列表 // 为了更新群列表
uni.$emit('onGroupDismiss') uni.$emit('onGroupDismiss')
uni.$emit('onGroupRemoveYou_' + message.targetId) uni.$emit('onGroupRemoveYou_' + message.targetId)

View File

@@ -13,9 +13,13 @@ const contactModel = usqlite.model('contacts', {
type: String, type: String,
unique: true unique: true
}, },
portraitUrl: String, type: {
type: Number,
default: 0
},
portraitUrl: String,
localAvatar: String localAvatar: String
}) })
export default { export default {
contactModel contactModel