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 @@ @@ -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 @@ + + + + + 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 @@ + + + + + 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 @@ - {{ contact(item.targetId).name }} [群] + {{ contact(item.targetId).name }} [群] {{ item.sentTime|timeCustomCN }} .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 @@ @@ -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 @@ - - - - - - - - - + + + + + - + 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 @@ @@ -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 @@ - 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 @@ 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 @@