diff --git a/apis/interfaces/im.js b/apis/interfaces/im.js index 6fae377..22ef137 100644 --- a/apis/interfaces/im.js +++ b/apis/interfaces/im.js @@ -99,20 +99,68 @@ const getMyGroups = () => { }) } +/** + * 获取群信息,包含基础信息和 14 个用户 + */ const getGroupInfo = (groupId) => { return request({ url: 'im/groups/' + groupId }) } +const getGroupUsers = (groupId) => { + return request({ + url: 'im/groups/' + groupId + '/users' + }) +} + +const getGroupAnnouncements = (groupId) => { + return request({ + url: 'im/groups/' + groupId + '/announcements' + }) +} +/** + * 创建群聊 + */ const createGroup = (data) => { return request({ method: 'POST', url: 'im/groups', data: data }) +} + +const updateGroup = (groupId, data) => { + return request({ + method: 'PUT', + url: 'im/groups/' + groupId, + data: data + }) } +/** + * 搜索群聊 + */ +const searchGroup = (name) => { + return request({ + url: 'im/groups/search?name=' + name + }) +} + +const joinGroup = (groupId) => { + return request({ + method: 'POST', + url: 'im/groups/' + groupId + '/join' + }) +} + +const quitGroup = (groupId) => { + return request({ + method: 'POST', + url: 'im/groups/' + groupId + '/quit' + }) +} + export { getImToken, deleteFriend, @@ -126,6 +174,12 @@ export { searchFriend, pedingFriend, getMyGroups, - createGroup, - getGroupInfo + createGroup, + updateGroup, + getGroupInfo, + getGroupUsers, + getGroupAnnouncements, + searchGroup, + joinGroup, + quitGroup } diff --git a/pages.json b/pages.json index baf22cd..31af73a 100644 --- a/pages.json +++ b/pages.json @@ -427,7 +427,7 @@ "path": "pages/im/friends/info", "name": "imFriendsInfo", "style": { - "navigationBarTitleText": "好友资料", + "navigationBarTitleText": "用户资料", "navigationBarBackgroundColor": "#FFFFFF" } }, @@ -489,6 +489,20 @@ "style": { "navigationBarTitleText": "创建群聊" } + }, + { + "path": "pages/im/group/users", + "name": "imGroupUsers", + "style": { + "navigationBarTitleText": "群成员" + } + }, + { + "path": "pages/im/group/announcement", + "name": "imGroupAnnouncement", + "style": { + "navigationBarTitleText": "群公告" + } }, { "path": "pages/wallet/add", diff --git a/pages/im/friends/info.vue b/pages/im/friends/info.vue index 3b84028..a7ba9e7 100644 --- a/pages/im/friends/info.vue +++ b/pages/im/friends/info.vue @@ -105,7 +105,8 @@ callShow: false } }, - onLoad(e) { + onLoad(e) { + console.log(e); this.targetId = e.targetId getFriendInfo(e.targetId).then(res => { this.userInfo = res diff --git a/pages/im/group/announcement.nvue b/pages/im/group/announcement.nvue new file mode 100644 index 0000000..3dbff79 --- /dev/null +++ b/pages/im/group/announcement.nvue @@ -0,0 +1,32 @@ + + + + + diff --git a/pages/im/group/chat.nvue b/pages/im/group/chat.nvue index b3b85c4..d89a658 100644 --- a/pages/im/group/chat.nvue +++ b/pages/im/group/chat.nvue @@ -3,7 +3,7 @@ - + @@ -71,7 +71,13 @@ url: '/pages/im/group/info?targetId=' + this.targetId }) }, - methods: { + methods: { + toUser(item) { + console.log(item); + uni.navigateTo({ + url: '/pages/im/friends/info?targetId=' + item.senderUserId + }) + }, // 获取消息列表 getMessageList() { im.getMessageList( diff --git a/pages/im/group/info.nvue b/pages/im/group/info.nvue index ebf877b..4af8085 100644 --- a/pages/im/group/info.nvue +++ b/pages/im/group/info.nvue @@ -1,24 +1,40 @@ @@ -32,21 +48,77 @@ return { targetId: '', group: {}, + announcement: '', members: [] } }, onLoad(e) { this.targetId = e.targetId getGroupInfo(this.targetId).then(res => { - this.info = res.group + this.group = res.group + this.announcement = res.announcement this.members = res.members - }).catch(err => { - console.log(err); }) + }, + methods: { + toUser(item) { + uni.navigateTo({ + url: '/pages/im/friends/info?targetId=' + item.targetId + }) + }, + inviteUser() { + + }, + loadMore() { + uni.navigateTo({ + url: '/pages/im/group/users?targetId=' + this.targetId + }) + }, + toAnnouncement() { + uni.navigateTo({ + url: '/pages/im/group/announcement?targetId=' + this.targetId + }) + } } } - diff --git a/pages/im/group/users.nvue b/pages/im/group/users.nvue new file mode 100644 index 0000000..bd44611 --- /dev/null +++ b/pages/im/group/users.nvue @@ -0,0 +1,68 @@ + + + + + diff --git a/pages/im/index.vue b/pages/im/index.vue index 8ac9edb..a98a875 100644 --- a/pages/im/index.vue +++ b/pages/im/index.vue @@ -98,7 +98,6 @@ RongIMLib.getConversationList([1, 3], count, timestamp, (res) => { if (res.code === 0) { this.conversations = res.conversations - console.log(res.conversations); } }) }, diff --git a/router/index.js b/router/index.js index 0b6e2f4..0f5459d 100644 --- a/router/index.js +++ b/router/index.js @@ -3,10 +3,10 @@ import { createRouter } from 'uni-simple-router'; import store from '@/store/index' - -// #ifdef APP-NVUE + // CALL 页面,必须是nvue,但是NVUE 不支持webpack的 ROUTES 注入 // https://github.com/SilurianYang/uni-read-pages/issues/20 +// #ifdef APP-NVUE const ROUTES = [{ 'path': '/pages/im/private/call', 'name': 'imPrivateCall' @@ -25,8 +25,13 @@ const ROUTES = [{ },{ 'path': '/pages/im/group/create', 'name': 'imGroupCreate' +},{ + 'path': '/pages/im/group/users', + 'name': 'imGroupUsers' +},{ + 'path': '/pages/im/group/announcement', + 'name': 'imGroupAnnouncement' }] - // #endif const router = createRouter({