diff --git a/apis/interfaces/im.js b/apis/interfaces/im.js
index fa8ac9e..2eb828a 100644
--- a/apis/interfaces/im.js
+++ b/apis/interfaces/im.js
@@ -174,10 +174,22 @@ const searchGroup = (name) => {
})
}
-const joinGroup = (groupId) => {
+/**
+ * 加群前,获取的群信息
+ */
+const joinGroupPre = (groupId) => {
+ return request({
+ url: 'im/groups/' + groupId + '/join'
+ })
+}
+
+const joinGroup = (groupId, message) => {
return request({
method: 'POST',
- url: 'im/groups/' + groupId + '/join'
+ url: 'im/groups/' + groupId + '/join',
+ data: {
+ message
+ }
})
}
@@ -187,9 +199,9 @@ const quitGroup = (groupId) => {
url: 'im/groups/' + groupId + '/quit'
})
}
-
-/**
- * 解散群聊
+
+/**
+ * 解散群聊
*/
const dismissGroup = (groupId) => {
return request({
@@ -220,7 +232,8 @@ export {
createGroupAnnouncement,
deleteGroupAnnouncement,
searchGroup,
+ joinGroupPre,
joinGroup,
- quitGroup,
+ quitGroup,
dismissGroup
}
diff --git a/pages.json b/pages.json
index 5053a57..d662e57 100644
--- a/pages.json
+++ b/pages.json
@@ -467,6 +467,13 @@
}
}
}
+ },
+ {
+ "path": "pages/im/group/apply",
+ "name": "imGroupApply",
+ "style": {
+ "navigationBarTitleText": "申请加群"
+ }
},
{
"path": "pages/im/group/info",
diff --git a/pages/im/group/apply.vue b/pages/im/group/apply.vue
new file mode 100644
index 0000000..3f7aa3f
--- /dev/null
+++ b/pages/im/group/apply.vue
@@ -0,0 +1,91 @@
+
+
+
+
+ {{ group.name }}
+
+
+
+
+ 群已满员
+ 禁止申请
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/im/group/info.vue b/pages/im/group/info.vue
index 3e3928b..6997e1a 100644
--- a/pages/im/group/info.vue
+++ b/pages/im/group/info.vue
@@ -2,7 +2,7 @@
-
+
{{ item.name }}
@@ -13,7 +13,7 @@
- 查看更多群成员 >
+ 查看更多群成员 >
@@ -30,8 +30,9 @@
-
+
+
@@ -52,6 +53,10 @@
+
+
+
@@ -74,14 +79,17 @@
group: {},
conversationType: 3,
announcement: '',
- members: [],
+ users: [],
status: false,
isTop: false,
loaded: false,
modalShow: false,
groupName: '',
qrCodeShow: false,
- qrContent: 'JOINGROUP|'
+ qrContent: 'JOINGROUP|',
+ joinType: '',
+ joinTypeMap: [],
+ showActions: false
}
},
onLoad(e) {
@@ -112,8 +120,16 @@
this.group = res.group
this.groupName = res.group.name
this.announcement = res.announcement
+ this.users = res.users
this.members = res.members
this.loaded = true
+ this.joinTypeMap = res.join_type_map.map(item => {
+ if (item.key == res.join_type) {
+ item.disabled = true
+ }
+ return item
+ })
+ this.joinType = res.join_type_map.filter(item => item.key == res.join_type)[0].name
}).catch(err => {
uni.showToast({
icon: 'none',
@@ -138,10 +154,16 @@
})
})
},
- toUser(item) {
- uni.navigateTo({
- url: '/pages/im/friends/info?targetId=' + item.targetId
- })
+ toUser(item) {
+ if (item.targetId == this.$store.getters.sender.userId) {
+ uni.navigateTo({
+ url: '/pages/im/friends/mine?targetId=' + item.targetId
+ })
+ } else {
+ uni.navigateTo({
+ url: '/pages/im/friends/info?targetId=' + item.targetId
+ })
+ }
},
inviteUser() {
@@ -185,6 +207,78 @@
this.modalShow = false
this.groupName = this.group.name
},
+ // 修改群头像
+ onGroupAvatar() {
+ console.log('onGroupAvatar');
+ uni.chooseImage({
+ count: 1,
+ sourceType: ['album'],
+ crop: {
+ quality: 100,
+ width: 128,
+ height: 128,
+ resize: true
+ },
+ success: res => {
+ console.log(res);
+ let path = res.tempFiles.map((val, index) => {
+ return {
+ name: 'uploads' + index,
+ uri: val.path
+ }
+ })
+ uploads(path).then(path => {
+ updateGroup(this.targetId, {
+ cover: path.path[0]
+ }).then(res => {
+ uni.showToast({
+ icon: 'none',
+ title: '群头像修改成功'
+ })
+ this.modalShow = false
+ this.group.cover = path.url[0]
+ })
+ }).catch(err => {
+ uni.showToast({
+ title: err.message,
+ icon: 'none'
+ })
+ })
+ },
+ fail: (err) => {
+ console.log(err);
+ }
+ })
+ },
+ onChangeJoinType() {
+ this.showActions = true
+ },
+ doAction(e) {
+ updateGroup(this.targetId, {
+ join_type: e.key
+ }).then(res => {
+ uni.showToast({
+ icon: 'none',
+ title: '修改成功'
+ })
+ this.joinTypeMap = this.joinTypeMap.map(item => {
+ if (item.key == e.key) {
+ item.disabled = true
+ } else {
+ item.disabled = false
+ }
+ return item
+ })
+ this.joinType = e.name
+ this.showActions = false
+ }).catch(err => {
+ console.log(err);
+ uni.showToast({
+ icon: 'error',
+ title: err.message
+ })
+ })
+ },
onClean() {
uni.showModal({
title: '清空聊天记录',
@@ -237,53 +331,6 @@
}
}
})
- },
- // 修改群头像
- onGroupAvatar() {
- uni.showToast({
- icon: 'none',
- title: '正在打开相册'
- })
- uni.chooseImage({
- count: 1,
- sizeType: ['original'],
- sourceType: ['album'],
- crop: {
- quality: 100,
- width: 128,
- height: 128,
- resize: true
- },
- success: res => {
- console.log(res);
- let path = res.tempFiles.map((val, index) => {
- return {
- name: 'uploads' + index,
- uri: val.path
- }
- })
- uploads(path).then(path => {
- updateGroup(this.targetId, {
- cover: path.path[0]
- }).then(res => {
- uni.showToast({
- icon: 'none',
- title: '群头像修改成功'
- })
- this.modalShow = false
- this.group.cover = path.url[0]
- })
- }).catch(err => {
- uni.showToast({
- title: err.message,
- icon: 'none'
- })
- })
- },
- fail: (err) => {
- console.log(err);
- }
- })
}
}
}
diff --git a/pages/im/index.vue b/pages/im/index.vue
index 8e86519..5cb1a75 100644
--- a/pages/im/index.vue
+++ b/pages/im/index.vue
@@ -72,10 +72,10 @@
uni.$off('onReceiveMessage')
},
methods: {
- checkNewFriendPending() {
- im.getPendingList((pendings) => {
- this.hasNewFriends = pendings.length
- })
+ checkNewFriendPending() {
+ im.getPendingList((pendings) => {
+ this.hasNewFriends = pendings.length
+ })
},
// 检查登录
toLogin() {
@@ -101,10 +101,19 @@
uni.scanCode({
success: (res) => {
if (res.scanType == 'QR_CODE') {
- res.result.substr(0, 10) == 'ADDFRIEND|'
- uni.navigateTo({
- url: '/pages/im/friends/info?targetId=' + res.result.substr(10)
- })
+ if (res.result.substr(0, 10) == 'ADDFRIEND|') {
+ uni.navigateTo({
+ url: '/pages/im/friends/info?targetId=' + res.result.substr(10)
+ })
+ } else if (res.result.substr(0, 10) == 'JOINGROUP|') {
+ uni.navigateTo({
+ url: '/pages/im/group/apply?targetId=' + res.result.substr(10)
+ })
+ } else {
+ uni.showToast({
+ title: '暂不支持的二维码'
+ })
+ }
}
}
})