diff --git a/apis/interfaces/im.js b/apis/interfaces/im.js index b179e16..b6ff4d4 100644 --- a/apis/interfaces/im.js +++ b/apis/interfaces/im.js @@ -22,14 +22,14 @@ const getImToken = () => { url: 'im/token', }, true) } - -// 删除好友 -const deleteFriend = (targetId) => { - return request({ - method: 'DELETE', - url: 'im/friends/' + targetId, - }) -} + +// 删除好友 +const deleteFriend = (targetId) => { + return request({ + method: 'DELETE', + url: 'im/friends/' + targetId, + }) +} // 获取用户信息 const getUserInfo = (targetId) => { @@ -37,9 +37,9 @@ const getUserInfo = (targetId) => { url: 'im/userInfo/' + targetId, }) } - -/** - * 查看好友资料,附带好友关系 + +/** + * 查看好友资料,附带好友关系 */ const getFriendInfo = (userId) => { return request({ @@ -84,16 +84,26 @@ const pedingFriend = (recipient) => { url: 'im/friends/' + recipient }) } + +/** + * 好友申请数量 + */ +const getPendingCount = () => { + return request({ + url: 'im/friends/pending/count' + }) +} export { - getImToken, + getImToken, deleteFriend, getFriends, - getUserInfo, + getUserInfo, getFriendInfo, getPedings, resolveFriend, rejectFriend, searchFriend, - pedingFriend + pedingFriend, + getPendingCount } diff --git a/manifest.json b/manifest.json index c09ce08..c681adb 100644 --- a/manifest.json +++ b/manifest.json @@ -32,6 +32,7 @@ "", "", "", + "", "", "", "", diff --git a/pages/im/friends/index.vue b/pages/im/friends/index.vue index 9d93e73..a053b62 100644 --- a/pages/im/friends/index.vue +++ b/pages/im/friends/index.vue @@ -4,7 +4,9 @@ - 新的朋友 + + 新的朋友 ({{ pendingCount }}) + @@ -22,7 +24,8 @@ - import { - getFriends + getFriends, + getPendingCount } from '@/apis/interfaces/im'; + export default { data() { return { indexs: [], - friends: [] + friends: [], + pendingCount: 0 }; }, onShow() { getFriends().then(res => { - this.indexs = res.indexList; - this.friends = res.itemArr; - }); + this.indexs = res.indexList + this.friends = res.itemArr + }) + getPendingCount().then(res => { + console.log(res); + this.pendingCount = res + }) }, - computed: {}, methods: { - // 扫码提示 showToast() { uni.showToast({ title: '群聊功能暂未开放,敬请期待', diff --git a/pages/im/friends/info.vue b/pages/im/friends/info.vue index 11663da..35b8edc 100644 --- a/pages/im/friends/info.vue +++ b/pages/im/friends/info.vue @@ -104,7 +104,8 @@ callShow: false } }, - onLoad(e) { + onLoad(e) { + console.log(e); this.targetId = e.targetId getFriendInfo(e.targetId).then(res => { this.userInfo = res @@ -243,16 +244,14 @@ }) }, singleCall(e) { - CallLib.startSingleCall(this.targetId, e.type, ''); - uni.redirectTo({ - url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type, - success: (err) => { - console.log('跳转视频通话成功'); - }, - fail: (err) => { - console.log('跳转视频页失败', err); - } + uni.showToast({ + icon: 'none', + title: '功能正在开发中' }) + // CallLib.startSingleCall(this.targetId, e.type, ''); + // uni.redirectTo({ + // url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type + // }) } } } diff --git a/pages/im/friends/mine.vue b/pages/im/friends/mine.vue index a7070d1..de6672a 100644 --- a/pages/im/friends/mine.vue +++ b/pages/im/friends/mine.vue @@ -1,183 +1,191 @@ - - - - - diff --git a/pages/im/index.vue b/pages/im/index.vue index 5aa6310..0fff2fa 100644 --- a/pages/im/index.vue +++ b/pages/im/index.vue @@ -56,7 +56,7 @@ {{item}} - + @@ -74,7 +74,9 @@ import * as RongIMLib from "@/uni_modules/RongCloud-IMWrapper/js_sdk/index" import im from '@/utils/im/index.js' import userAuth from '@/public/userAuth' - import { getImToken } from '@/apis/interfaces/im.js' + import { + getImToken + } from '@/apis/interfaces/im.js' export default { data() { return { @@ -99,13 +101,20 @@ } } }, + onLoad() { + if (this.isShown) { + uni.$on('onReceiveMessage', (msg) => { + console.log(msg); + this.getConversationList() + }) + uni.$on('onConnectionStatusChange', (status) => { + this.connection = status + }) + } + }, onShow() { if (this.$store.state.token !== '') { - getImToken().then(res => { - im.connect(res.token, res.userInfo, () => { - this.getConversationList() - }) - }) + this.getConversationList() } this.isShown = true }, @@ -127,16 +136,6 @@ } } }, - watch: { - '$store.getters.newMessage': function(n, o) { - if (this.isShown) { - this.getConversationList() - } - }, - '$store.getters.connection': function(n, o) { - this.connection = n - } - }, methods: { hidePop() { this.showPop = false @@ -202,9 +201,6 @@ // 进入聊天的详情页面,清理未读消息数量 toDetail(item) { this.hidePop() - // uni.navigateTo({ - // url: '/pages/im/private/call?targetId=' + item.targetId + '&mediaType=1' - // }) uni.navigateTo({ url: '/pages/im/private/index?targetId=' + item.targetId + '&conversationType=' + item .conversationType @@ -229,10 +225,8 @@ scanQrCode() { uni.scanCode({ success: (res) => { - // "result": "ADDFRIEND|10010", if (res.scanType == 'QR_CODE') { res.result.substr(0, 10) == 'ADDFRIEND|' - // 跳转到添加好友页面 uni.navigateTo({ url: '/pages/im/friends/info?targetId=' + res.result.substr(10) }) diff --git a/pages/im/private/index.vue b/pages/im/private/index.vue index e0e70c8..947f48e 100644 --- a/pages/im/private/index.vue +++ b/pages/im/private/index.vue @@ -123,6 +123,18 @@ console.log('------------------获取到了录音的临时路径---------------') console.log(res.tempFilePath) }) + // 简童收到新消息,判断是否是当前会话,更新会话内容 + uni.$on('onReceiveMessage', (msg) => { + if (msg.targetId == this.targetId) { + RongIMLib.clearMessagesUnreadStatus(msg.conversationType, msg.targetId, msg.sentTime) + RongIMLib.sendReadReceiptMessage(msg.conversationType, msg.targetId, msg.sentTime) + this.getMessageList() + im.setNotifyBadge() + } + }) + }, + beforeDestroy() { + uni.$off('onReceiveMessage') }, onUnload() { RongIMLib.clearReadReceiptReceivedListener() @@ -146,16 +158,6 @@ }) } }, - watch: { - '$store.getters.newMessage': function(msg) { - if (msg.targetId == this.targetId) { - RongIMLib.clearMessagesUnreadStatus(msg.conversationType, msg.targetId, msg.sentTime) - RongIMLib.sendReadReceiptMessage(msg.conversationType, msg.targetId, msg.sentTime) - this.getMessageList() - im.setNotifyBadge() - } - } - }, methods: { // 播放语音消息 onPlayMsg() { diff --git a/pages/user/index.vue b/pages/user/index.vue index 84a04f2..91ff793 100644 --- a/pages/user/index.vue +++ b/pages/user/index.vue @@ -1,472 +1,531 @@ -