diff --git a/apis/interfaces/im.js b/apis/interfaces/im.js
index ba17956..15f209e 100644
--- a/apis/interfaces/im.js
+++ b/apis/interfaces/im.js
@@ -85,10 +85,13 @@ const searchFriend = (value) => {
})
}
-const pedingFriend = (recipient) => {
+const pedingFriend = (recipient, message) => {
return request({
method: 'POST',
- url: 'im/friends/' + recipient
+ url: 'im/friends/' + recipient,
+ data: {
+ message
+ }
})
}
@@ -264,6 +267,20 @@ const transferGroupOwner = (groupId, userId) => {
})
}
+// //群成员待审核表 -- 废弃
+// const getGroupMakeSure = (groupId) => {
+// return request({
+// url:`im/groups/${groupId}/makesure`
+// })
+// }
+// // 群成员审核通过
+// const getGroupMakeSureAllow = (groupId, userId) => {
+// return request({
+// method: 'POST',
+// url: 'im/groups/' + groupId + '/owner/' + userId
+// })
+// }
+
export {
getImToken,
deleteFriend,
@@ -294,5 +311,6 @@ export {
removeGroupUser,
setGroupAdmin,
removeGroupAdmin,
- transferGroupOwner
+ // transferGroupOwner, // -废弃待审核列表
+ // getGroupMakeSure // -废弃待审核列表
}
diff --git a/pages.json b/pages.json
index 254b27d..9d8aede 100644
--- a/pages.json
+++ b/pages.json
@@ -373,11 +373,20 @@
{
"path": "pages/im/private/chat",
"style": {
- "disableScroll": true,
- "navigationBarTitleText": "聊天",
- "enablePullDownRefresh": false,
- "navigationBarBackgroundColor": "#F3F6FB"
- }
+ "navigationBarBackgroundColor":"#FFFFFF",
+ "disableScroll": false,
+ "app-plus": {
+ "titleNView": {
+ "type": "default",
+ "buttons": [{
+ "float": "right",
+ "fontSrc": "/static/iconfont.ttf",
+ "text": "\ue607",
+ "fontSize": "20px"
+ }]
+ }
+ }
+ }
},
{
"path": "pages/im/private/call",
@@ -488,7 +497,14 @@
"path": "pages/im/group/invite",
"name": "imGroupInvite",
"style": {
- "navigationBarTitleText": "邀请好友"
+ "navigationBarTitleText": "选择联系人"
+ }
+ },
+ {
+ "path": "pages/im/group/reviewed",
+ "name": "imGroupReviewed",
+ "style": {
+ "navigationBarTitleText": "群聊邀请确认"
}
},
{
@@ -633,12 +649,6 @@
"navigationBarBackgroundColor": "#34CE98",
"navigationBarTextStyle": "white"
}
- },
- {
- "path": "pages/im/chatDemo",
- "style": {
- "navigationBarTitleText": "demo"
- }
}
],
"tabBar": {
diff --git a/pages/im/chatDemo.nvue b/pages/im/chatDemo.nvue
deleted file mode 100644
index 9ad8468..0000000
--- a/pages/im/chatDemo.nvue
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/pages/im/components/messageCell.vue b/pages/im/components/messageCell.vue
index 60cc614..e53c2b5 100644
--- a/pages/im/components/messageCell.vue
+++ b/pages/im/components/messageCell.vue
@@ -6,11 +6,12 @@
-
+
@@ -26,6 +27,9 @@
return {}
}
}
+ },
+ mounted() {
+ console.log(this.item);
},
computed: {
contact() {
@@ -58,7 +62,7 @@
box-sizing: border-box;
position: relative;
flex: 1;
-
+
border-bottom-width: 0.5px !important;
border-color: #f9f9f9 !important;
diff --git a/pages/im/components/messagePreview.vue b/pages/im/components/messagePreview.vue
index e8450ca..2120904 100644
--- a/pages/im/components/messagePreview.vue
+++ b/pages/im/components/messagePreview.vue
@@ -1,32 +1,37 @@
-
-
- {{ user.name }}:{{ msg.content || '' }}
-
-
- {{ user.name }}:[语音]
-
-
- {{ user.name }}:[图片]
-
-
- {{ user.name }}:[表情]
-
-
- {{ user.name }}:[文件]
-
-
- {{ user.name }}:[位置]
-
-
- {{ user.name }}:[语音通话]
-
-
- {{ user.name }}:[视频通话]
+
+
+ [草稿] {{ draft }}
-
- [{{ msg.message }}]
-
+
+
+ {{ user.name }}:{{ msg.content || '' }}
+
+
+ {{ user.name }}:[语音]
+
+
+ {{ user.name }}:[图片]
+
+
+ {{ user.name }}:[表情]
+
+
+ {{ user.name }}:[文件]
+
+
+ {{ user.name }}:[位置]
+
+
+ {{ user.name }}:[语音通话]
+
+
+ {{ user.name }}:[视频通话]
+
+
+ [{{ msg.message }}]
+
+
@@ -36,10 +41,14 @@
msg: {
type: Object,
default: {}
- },
- conversationType: {
- type: Number,
- default: 0
+ },
+ conversationType: {
+ type: Number,
+ default: 0
+ },
+ draft: {
+ type: String,
+ default: ''
},
user: {
type: Object,
@@ -63,6 +72,11 @@
height: 32rpx;
line-height: 32rpx;
width: 520rpx;
- @extend .nowrap;
+ @extend .nowrap;
+
+ .draft {
+ color: $text-price;
+ padding-right: 10rpx;
+ }
}
diff --git a/pages/im/components/sentMessageBar.vue b/pages/im/components/sentMessageBar.vue
index c84b9cd..80ea063 100644
--- a/pages/im/components/sentMessageBar.vue
+++ b/pages/im/components/sentMessageBar.vue
@@ -1,5 +1,5 @@
-
+
@@ -106,7 +106,8 @@
name: '视频通话'
}
],
- callShow: false
+ callShow: false,
+ hasPeding: false
}
},
onLoad(e) {
@@ -201,36 +202,35 @@
},
// 申请好友
toBeFriend() {
- pedingFriend(this.targetId).then(res => {
+ if (this.hasPeding) {
+ uni.showToast({
+ icon: 'none',
+ title: '请不要频繁操作'
+ })
+ return
+ }
+ pedingFriend(this.targetId, 'message').then(res => {
uni.showToast({
title: ` 申请成功,等待审核 `,
icon: 'none',
duration: 3000,
mask: true
});
+ this.hasPeding = true
})
.catch(err => {
- // if(err.status_code === 6001){
- // this.userInfo.friendship = 'accepted'
- // }else{
- uni.showToast({
- icon: 'error',
- title: err.message,
- duration: 2000,
- mask: true
- })
- // }
+ uni.showToast({
+ icon: 'error',
+ title: err.message,
+ duration: 2000,
+ mask: true
+ })
})
},
singleCall(e) {
- uni.showToast({
- icon: 'none',
- title: '功能正在开发中'
+ uni.redirectTo({
+ url: '/pages/im/private/call?targetId=' + this.targetId + '&mediaType=' + e.type
})
- // 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/pending.vue b/pages/im/friends/pending.vue
index efe53e6..e0d2212 100644
--- a/pages/im/friends/pending.vue
+++ b/pages/im/friends/pending.vue
@@ -15,7 +15,7 @@
diff --git a/pages/im/group/reviewed.vue b/pages/im/group/reviewed.vue
new file mode 100644
index 0000000..76ba1ff
--- /dev/null
+++ b/pages/im/group/reviewed.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ {{`艾米的猫儿 `}}想邀请{{` 艾米的猫儿洛基艾米`}}加入群聊
+ 申请原因:{{`呵呵哒。。`}}
+
+ 去确认
+
+
+
+
+
+
+
diff --git a/pages/im/group/reviewedInfo.vue b/pages/im/group/reviewedInfo.vue
new file mode 100644
index 0000000..dc5a399
--- /dev/null
+++ b/pages/im/group/reviewedInfo.vue
@@ -0,0 +1,62 @@
+
+
+
+ 确认信息页面
+
+
+
+
+
+
diff --git a/pages/im/index.vue b/pages/im/index.vue
index f3e7b5c..bf25ff0 100644
--- a/pages/im/index.vue
+++ b/pages/im/index.vue
@@ -17,7 +17,7 @@
-
+
@@ -38,7 +38,7 @@
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import im from '@/utils/im/index.js'
import userAuth from '@/public/userAuth'
- import conversationList from './components/conversationList'
+ import conversationList from './components/conversationList'
import connectionStatus from './components/connectionStatus'
export default {
@@ -50,7 +50,7 @@
}
},
components: {
- conversationList,
+ conversationList,
connectionStatus
},
onLoad() {
@@ -105,7 +105,7 @@
code,
conversations
}) => {
- if (code === 0) {
+ if (code === 0) {
this.conversations = conversations
}
})
diff --git a/pages/im/private/chat.vue b/pages/im/private/chat.vue
index 1175f79..4b67c82 100644
--- a/pages/im/private/chat.vue
+++ b/pages/im/private/chat.vue
@@ -1,36 +1,88 @@
+
+
+
-
-
-
-
- {{ customCN(item.sentTime) }}
-
-
-
-
-
-
-
- {{ item.sentStatus == 50 ? '已读': '未读'}}
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ item.sentTime|timeCustomCN }}
+
+
+
+
+
+
+
+
+ {{ item.sentStatus == 50 ? '已读': '未读'}}
+
+
+
+
+
+
+
+
-
-
+
diff --git a/router/index.js b/router/index.js
index f9e2b07..e493a11 100644
--- a/router/index.js
+++ b/router/index.js
@@ -9,12 +9,6 @@ import store from '@/store/index'
// #ifdef APP-NVUE
const ROUTES = [{
"path": "/pages/im/private/call"
-}, {
- "path": "/pages/im/private/chat"
-}, {
- "path": "/pages/im/group/chat"
-}, {
- "path": "/pages/im/chatDemo"
}];
// #endif
diff --git a/static/imgs/no-level-list.png b/static/imgs/no-level-list.png
new file mode 100644
index 0000000..28bba92
Binary files /dev/null and b/static/imgs/no-level-list.png differ
diff --git a/utils/im/listeners.js b/utils/im/listeners.js
index e2086c6..cefa358 100644
--- a/utils/im/listeners.js
+++ b/utils/im/listeners.js
@@ -69,7 +69,8 @@ const imLibListeners = () => {
store.dispatch('updateContact', JSON.parse(message.content.data))
// 调用完更新之后,删除这条消息
IMLib.deleteMessagesByIds([message.messageId])
- } else if (message.objectName === IMLib.ObjectName.ContactNotification) {
+ } else if (message.objectName === IMLib.ObjectName.ContactNotification) {
+ console.error('触发一个新好友的通知事件', message);
// 触发一个新好友的通知事件
uni.$emit('onContactNotification', message)
} else if (message.objectName === IMLib.ObjectName.GroupNotification) {
@@ -115,7 +116,8 @@ const callLibListeners = () => {
uni.$emit('onCallOutgoing')
})
// 远端响铃
- CallLib.onRemoteUserRinging((res) => {
+ CallLib.onRemoteUserRinging((res) => {
+ console.log('onRemoteUserRinging', res);
uni.$emit('onRemoteUserRinging')
})
// 远端加入
diff --git a/utils/im/message.js b/utils/im/message.js
index 39f0352..851e0ae 100644
--- a/utils/im/message.js
+++ b/utils/im/message.js
@@ -15,7 +15,7 @@ const getMessageList = (conversationType, targetId, timeStamp, count, isForward,
'RC:LBSMsg',
'RC:SightMsg',
'RC:ReferenceMsg',
- 'RC:CombineMsg',
+ 'RC:CombineMsg',
'RC:GrpNtf'
]
@@ -57,6 +57,22 @@ const getPendingList = (callback, total) => {
})
}
+// 群组申请列表,邀请列表
+const getGroupPendinglist = (targetId, callback) => {
+ total = total || 100
+ RongIMLib.getConversationList([RongIMLib.ConversationType.SYSTEM], total, 0, (res) => {
+ if (res.code === 0) {
+ const pendings = res.conversations.filter((item) => {
+ return item.targetId == targetId &&
+ item.objectName == RongIMLib.ObjectName.ContactNotification &&
+ item.latestMessage.operation === 'GroupPending'
+ })
+
+ callback(pendings)
+ }
+ })
+}
+
/**
* 发送文本消息
* @param {number} conversationType 消息类型
@@ -209,6 +225,7 @@ const sendFile = (conversationType, targetId, fileUrl, time, user, callback) =>
export default {
getMessageList,
getPendingList,
+ getGroupPendinglist,
sentText,
sentVoice,
sentImage,