diff --git a/.DS_Store b/.DS_Store
index 0451fa5..c1a2c05 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/apis/interfaces/im.js b/apis/interfaces/im.js
index deb8b1c..ba17956 100644
--- a/apis/interfaces/im.js
+++ b/apis/interfaces/im.js
@@ -259,7 +259,7 @@ const removeGroupAdmin = (groupId, userId) => {
*/
const transferGroupOwner = (groupId, userId) => {
return request({
- method: 'DELETE',
+ method: 'POST',
url: 'im/groups/' + groupId + '/owner/' + userId
})
}
diff --git a/manifest.json b/manifest.json
index c65cec7..b375e89 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "ZH-HEALTH",
"appid" : "__UNI__C29473D",
"description" : "ZH-HEALTH,您手上的健康管理专家",
- "versionName" : "1.0.8",
- "versionCode" : 108,
+ "versionName" : "1.0.10",
+ "versionCode" : 110,
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
diff --git a/pages.json b/pages.json
index cf49ac9..254b27d 100644
--- a/pages.json
+++ b/pages.json
@@ -390,7 +390,7 @@
"path": "pages/im/friends/index",
"name": "imFriends",
"style": {
- "navigationBarTitleText": "我的好友",
+ "navigationBarTitleText": "通讯录",
"app-plus": {
"titleNView": {
"type": "default",
@@ -429,7 +429,9 @@
"path": "pages/im/friends/mine",
"name": "imFriendsMine",
"style": {
- "navigationBarTitleText": "我的资料"
+ "navigationBarTitleText": "我的二维码",
+ "navigationBarBackgroundColor": "#34CE98",
+ "navigationBarTextStyle": "white"
}
},
{
diff --git a/pages/im/components/connectionStatus.vue b/pages/im/components/connectionStatus.vue
new file mode 100644
index 0000000..3009e43
--- /dev/null
+++ b/pages/im/components/connectionStatus.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
diff --git a/pages/im/components/conversationList.vue b/pages/im/components/conversationList.vue
index cf3eeca..2468e8a 100644
--- a/pages/im/components/conversationList.vue
+++ b/pages/im/components/conversationList.vue
@@ -46,6 +46,16 @@
}
},
+ created() {
+ uni.getSystemInfo({
+ success: (e) => {
+ this.winSize = {
+ width: e.windowWidth,
+ height: e.windowHeight
+ }
+ }
+ })
+ },
methods: {
// 隐藏功能菜单
hidePop() {
@@ -79,12 +89,15 @@
} else {
style = `top:${touches.clientY}px;`
}
- if (touches.clientX > (this.winSize.witdh / 2)) {
- style += `right:${this.winSize.witdh-touches.clientX}px`
+
+ if (touches.clientX > (this.winSize.width / 2)) {
+ style += `right:${this.winSize.width-touches.clientX}px`
} else {
style += `left:${touches.clientX}px`
}
+
+
this.popButton[0] = item.isTop ? '取消置顶' : '置顶聊天'
this.popStyle = style
this.pickedItem = item
diff --git a/pages/im/components/friendApplyCell.vue b/pages/im/components/friendApplyCell.vue
index 94f3263..74ecf13 100644
--- a/pages/im/components/friendApplyCell.vue
+++ b/pages/im/components/friendApplyCell.vue
@@ -1,20 +1,15 @@
-
+
-
+
-
- {{ user.name }}
-
-
- {{ message.message }}
-
+ {{ user.name }}
+ {{ message.message!=='null' ? message.message : '听说你很优秀,想认识下你~' }}
-
- 通过
- 拒绝
+ 通过
+ 拒绝
@@ -41,15 +36,16 @@
methods: {
resolve() {
resolveFriend(this.message.sourceUserId).then(res => {
- this.clearMessages()
- uni.showToast({
- icon: 'none',
- title: '通过好友申请'
+ this.clearMessages()
+ uni.showToast({
+ icon: 'none',
+ title: '通过好友申请'
})
- }).catch(err => {
- uni.showToast({
- icon: 'none',
- title: err.message
+ uni.navigateBack({})
+ }).catch(err => {
+ uni.showToast({
+ icon: 'none',
+ title: err.message
})
})
},
@@ -73,7 +69,7 @@
// 不管是通过还是拒绝,都要把相关的信息清理
clearMessages() {
RongIMLib.deleteMessages(RongIMLib.ConversationType.SYSTEM, this.message.sourceUserId)
- this.$emit('success')
+ this.$emit('success')
uni.$emit('onContactNotification')
}
}
@@ -85,6 +81,7 @@
display: flex;
padding: $padding;
align-items: center;
+ border-bottom: solid 1rpx #f9f9f9;
.info {
flex: 1;
@@ -103,9 +100,19 @@
.action {
justify-content: space-between;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ box-sizing: border-box;
+
+ .u-button {
+ padding: 10rpx 20rpx !important;
+ font-size: $title-size-m;
+ height: 60rpx !important;
+ }
.u-button+.u-button {
- margin-top: 10rpx;
+ margin-left: 10rpx;
}
}
}
diff --git a/pages/im/components/friendApplyList.vue b/pages/im/components/friendApplyList.vue
index 10e2762..4fa31b6 100644
--- a/pages/im/components/friendApplyList.vue
+++ b/pages/im/components/friendApplyList.vue
@@ -8,7 +8,7 @@
{{ item.name }}
- {{ item.latestMessage.message }}
+ {{ item.latestMessage.message || '--' }}
通过
@@ -105,6 +105,7 @@ export default {
.agress-btn {
display: flex;
color: #fff;
+ font-size: $title-size-m;
span {
display: inline-block;
padding: 6rpx 14rpx;
diff --git a/pages/im/components/friendSearchList.vue b/pages/im/components/friendSearchList.vue
new file mode 100644
index 0000000..0bbb506
--- /dev/null
+++ b/pages/im/components/friendSearchList.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.address }}
+
+
+ 查看
+ 已是好友
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/im/components/groupUserList.vue b/pages/im/components/groupUserList.vue
new file mode 100644
index 0000000..f3ac5b6
--- /dev/null
+++ b/pages/im/components/groupUserList.vue
@@ -0,0 +1,331 @@
+
+
+
+
+
+
+ 管理
+ 群主
+
+ {{ item.name }}
+
+
+
+ 邀请好友
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/im/components/messageCell.vue b/pages/im/components/messageCell.vue
index 3c6563c..60cc614 100644
--- a/pages/im/components/messageCell.vue
+++ b/pages/im/components/messageCell.vue
@@ -6,8 +6,7 @@
.message--cell {
display: flex;
- padding: 20rpx 0 0 20rpx;
+ padding: 20rpx 10rpx 0 30rpx;
.avatar {
position: relative;
@@ -59,9 +58,10 @@
box-sizing: border-box;
position: relative;
flex: 1;
+
border-bottom-width: 0.5px !important;
- border-color: $u-border-color !important;
+ border-color: #f9f9f9 !important;
border-bottom-style: solid;
.header {
@@ -70,22 +70,26 @@
.name {
font-size: $title-size + 2;
- color: #454545;
- display: flex;
- align-items: center;
+ color: #454545;
+ display: flex;
+ align-items: center;
.qun {
color: $main-color;
- font-size: $title-size-m;
+ font-size: $title-size-m - 4;
margin-left: 4px;
+ position: relative;
+ top: -4rpx;
}
}
.time {
- font-size: $title-size-sm;
+ font-size: $title-size-sm - 3;
color: $text-gray-m;
position: absolute;
right: 30rpx;
+ padding-top: 4rpx;
+ font-weight: normal;
}
}
}
diff --git a/pages/im/components/messagePreview.nvue b/pages/im/components/messagePreview.vue
similarity index 61%
rename from pages/im/components/messagePreview.nvue
rename to pages/im/components/messagePreview.vue
index 8a0efab..e8450ca 100644
--- a/pages/im/components/messagePreview.nvue
+++ b/pages/im/components/messagePreview.vue
@@ -1,28 +1,31 @@
- {{ user.name }}: {{ msg.content || '' }}
+ {{ user.name }}:{{ msg.content || '' }}
- {{ user.name }}: [语音]
+ {{ user.name }}:[语音]
- {{ user.name }}: [图片]
+ {{ user.name }}:[图片]
- {{ user.name }}: [表情]
+ {{ user.name }}:[表情]
- {{ user.name }}: [文件]
+ {{ user.name }}:[文件]
- {{ user.name }}: [位置]
+ {{ user.name }}:[位置]
- {{ user.name }}: [语音通话]
+ {{ user.name }}:[语音通话]
- {{ user.name }}: [视频通话]
+ {{ user.name }}:[视频通话]
+
+
+ [{{ msg.message }}]
@@ -54,9 +57,9 @@
.preview {
word-break: break-all;
color: $text-gray-m;
- padding-top: $padding - 20;
+ padding-top: 6rpx;
padding-bottom: $padding;
- font-size: $title-size-m;
+ font-size: $title-size-m - 2;
height: 32rpx;
line-height: 32rpx;
width: 520rpx;
diff --git a/pages/im/components/sentMessageBar.nvue b/pages/im/components/sentMessageBar.vue
similarity index 74%
rename from pages/im/components/sentMessageBar.nvue
rename to pages/im/components/sentMessageBar.vue
index 0a0f785..c84b9cd 100644
--- a/pages/im/components/sentMessageBar.nvue
+++ b/pages/im/components/sentMessageBar.vue
@@ -3,22 +3,15 @@
- {showPopups = false, onSuccess()}">
+ {showPopups = false, onSuccess()}" />
diff --git a/pages/im/components/sentPopups.nvue b/pages/im/components/sentPopups.vue
similarity index 86%
rename from pages/im/components/sentPopups.nvue
rename to pages/im/components/sentPopups.vue
index 84d5f50..dbfa4fd 100644
--- a/pages/im/components/sentPopups.nvue
+++ b/pages/im/components/sentPopups.vue
@@ -8,7 +8,7 @@
拍摄
-
+
视频通话
@@ -33,6 +33,7 @@
diff --git a/pages/im/group/chat.nvue b/pages/im/group/chat.vue
similarity index 74%
rename from pages/im/group/chat.nvue
rename to pages/im/group/chat.vue
index f83d190..9642dbb 100644
--- a/pages/im/group/chat.nvue
+++ b/pages/im/group/chat.vue
@@ -1,23 +1,24 @@
-
- |
-
+
+
+ {{ item.content.message }}
+
+ :src="contact(item.senderUserId).portraitUrl" />
+ :msg="item.content" :name="contact(item.senderUserId).name" />
+ :msg="item.content" :name="contact(item.senderUserId).name" />
+ :msg="item.content" :name="contact(item.senderUserId).name" />
- |
-
-
-
+
+
+
+
@@ -25,6 +26,9 @@
import {
timeCustomCN
} from '@/utils/filters.js'
+ import {
+ getGroupBase
+ } from '@/apis/interfaces/im.js'
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
import im from '@/utils/im/index.js'
import showVoice from '../components/showVoice'
@@ -50,17 +54,22 @@
name: ''
}
}
- },
- computed: {
- latestMessage() {
- if (this.messages.length > 1) {
- return this.messages[this.messages.length - 1]
- } else {
- return {
- sentTime: 0
- }
- }
- }
+ },
+ computed: {
+ latestMessage() {
+ if (this.messages.length) {
+ return this.messages[this.messages.length - 1]
+ } else {
+ return {
+ sentTime: 0
+ }
+ }
+ },
+ contact() {
+ return function(targetId) {
+ return this.$store.getters.contactInfo(targetId)
+ }
+ }
},
onLoad(e) {
this.targetId = e.targetId
@@ -68,12 +77,21 @@
uni.setNavigationBarTitle({
title: this.groupInfo.name
})
+ // 获取群成员数量
+ getGroupBase(this.targetId).then(res => {
+ uni.setNavigationBarTitle({
+ title: this.groupInfo.name + `(${res.members})`
+ })
+ })
+ // 获取历史消息列表
this.getMessageList()
+ // 监听收到本群的消息,追加消息
uni.$on('onReceiveMessage', (msg) => {
if (msg.targetId == this.targetId) {
this.getNewMessage()
}
})
+ // 清理聊天记录
uni.$once('cleanGroupMessage', this.getMessageList)
},
onNavigationBarButtonTap() {
@@ -81,10 +99,15 @@
url: '/pages/im/group/info?targetId=' + this.targetId
})
},
+<<<<<<< HEAD:pages/im/group/chat.nvue
methods: {
onScroll(e){
this.$refs.messageBar.onHidePopus()
},
+=======
+ methods: {
+ // 转到好友资料页面
+>>>>>>> 6c0feb9cb60e7c756df3bbe34e36fbe467b90d27:pages/im/group/chat.vue
toUser(item) {
if (item.senderUserId == '__system__') {
return
@@ -104,7 +127,7 @@
this.conversationType,
this.targetId,
this.latestMessage.sentTime,
- 1,
+ 10,
false,
(messages) => {
this.messages = this.messages.concat(messages)
@@ -151,15 +174,24 @@
diff --git a/pages/im/group/invite.vue b/pages/im/group/invite.vue
index fa5fb59..91649aa 100644
--- a/pages/im/group/invite.vue
+++ b/pages/im/group/invite.vue
@@ -1,21 +1,137 @@
-
-
+
+
+
+
+
+
+
+
+
+
+ {{ contact(friendItem.targetId).name }}
+
+
+
+
+
+
-
diff --git a/pages/im/group/users.vue b/pages/im/group/users.vue
index 6daa258..f356d8b 100644
--- a/pages/im/group/users.vue
+++ b/pages/im/group/users.vue
@@ -1,164 +1,24 @@
-
-
-
-
-
- 邀请好友
-
-
-
- {{ item.name }}
-
-
- 成员总数({{ members.length }})
-
-
-
-
+
diff --git a/pages/im/index.vue b/pages/im/index.vue
index c16cbb1..f3e7b5c 100644
--- a/pages/im/index.vue
+++ b/pages/im/index.vue
@@ -17,11 +17,10 @@
-
-
+
- 临时测试用
+
@@ -39,7 +38,8 @@
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 {
data() {
@@ -50,20 +50,24 @@
}
},
components: {
- conversationList
+ conversationList,
+ connectionStatus
},
onLoad() {
// 好友申请数量
this.checkNewFriendPending()
- uni.$on('onConnectionStatusChange', (status) => {
- this.connection = status
+ // 监听新的好友申请
+ uni.$on('onContactNotification', () => {
+ this.checkNewFriendPending()
})
- uni.$on('onContactNotification', this.checkNewFriendPending)
},
onShow() {
if (this.$store.state.token !== '') {
this.getConversationList()
}
+ uni.$on('onConnectionStatusChange', (status) => {
+ this.connection = status
+ })
// 监听新消息
uni.$on('onReceiveMessage', (msg) => {
this.getConversationList()
@@ -97,9 +101,12 @@
getConversationList() {
const count = 1000
const timestamp = 0
- RongIMLib.getConversationList([1, 3], count, timestamp, (res) => {
- if (res.code === 0) {
- this.conversations = res.conversations
+ RongIMLib.getConversationList([1, 3], count, timestamp, ({
+ code,
+ conversations
+ }) => {
+ if (code === 0) {
+ this.conversations = conversations
}
})
},
@@ -137,9 +144,9 @@