This commit is contained in:
2022-02-11 15:24:10 +08:00
parent efcfa00545
commit 35cb716299
4 changed files with 132 additions and 65 deletions

View File

@@ -369,7 +369,6 @@
"path": "pages/im/index",
"name": "IM",
"style": {
"navigationBarBackgroundColor": "#FFFFFF",
"navigationStyle": "custom"
}
},
@@ -411,24 +410,21 @@
"path": "pages/im/friends/pending",
"name": "imFriendsPending",
"style": {
"navigationBarTitleText": "新朋友",
"navigationBarBackgroundColor": "#F3F6FB"
"navigationBarTitleText": "新朋友"
}
},
{
"path": "pages/im/friends/search",
"name": "SearchFriend",
"style": {
"navigationBarTitleText": "好友搜索",
"navigationBarBackgroundColor": "#F3F6FB"
"navigationBarTitleText": "好友搜索"
}
},
{
"path": "pages/im/friends/info",
"name": "imFriendsInfo",
"style": {
"navigationBarTitleText": "用户资料",
"navigationBarBackgroundColor": "#FFFFFF"
"navigationBarTitleText": "用户资料"
}
},
{

View File

@@ -106,7 +106,6 @@
}
},
onLoad(e) {
console.log(e);
this.targetId = e.targetId
getFriendInfo(e.targetId).then(res => {
this.userInfo = res
@@ -128,7 +127,7 @@
if (code == 0) {
this.isTop = conversation.isTop
}
});
})
},
methods: {
copyAddress() {

View File

@@ -1,45 +1,44 @@
<template>
<view>
<view class="members">
<view class="container">
<view class="members u-border-bottom">
<view class="users">
<view class="user" v-for="(item, index) in members" :key="index" @click="toUser(item)">
<u-avatar size="44" shape="square" :src="item.portraitUrl"></u-avatar>
<text class="name">{{ item.name }}</text>
<view class="name">{{ item.name }}</view>
</view>
<view class="user">
<u-avatar @click="inviteUser" size="44" shape="square" icon="plus" bg-color="#eeeeee"
color="#999999"></u-avatar>
<text class="name">邀请用户</text>
<view class="name">邀请用户</view>
</view>
</view>
<view class="">
<text @click="loadMore" class="loadmore">查看更多群成员</text>
</view>
<view @click="loadMore" class="loadmore">查看更多群成员</view>
</view>
<u-cell-group>
<u-cell-group class="cells">
<u-cell isLink title="群公告" :label="announcement" @click="toAnnouncement"></u-cell>
<u-cell isLink title="聊天置顶"></u-cell>
<u-cell isLink title="免打扰"></u-cell>
<u-cell title="聊天置顶">
<u-switch slot="value" size="20" v-model="isTop" activeColor="#34CE98" @change="setTop"></u-switch>
</u-cell>
<u-cell title="免打扰">
<u-switch slot="value" size="20" v-model="status" activeColor="#34CE98" @change="setStatus"></u-switch>
</u-cell>
</u-cell-group>
<u-cell-group v-if="group.is_owner">
<u-cell isLink title="修改群聊名称" :value="group.name"></u-cell>
<u-cell isLink title="修改群头像"></u-cell>
<u-cell-group class="cells" v-if="group.is_owner">
<u-cell isLink title="修改群聊名称" :value="group.name" @click="onGroupName"></u-cell>
<u-cell isLink title="修改群头像">
<u-avatar slot="value" size="24" shape="square" :src="group.cover"></u-avatar>
</u-cell>
</u-cell-group>
<view class="actions u-border-top">
<view class="action u-border-bottom" @click="onClean">
<text>清空聊天记录</text>
</view>
<view class="action u-border-bottom" v-if="group.is_owner" @click="onDismiss">
<text>解散群聊</text>
</view>
<view class="action u-border-bottom" v-else @click="onQuite">
<text>删除并退出</text>
</view>
<view class="cells actions u-border-top">
<view class="action u-border-bottom" @click="onClean">清空聊天记录</view>
<view class="action u-border-bottom" v-if="group.is_owner" @click="onDismiss">解散群聊</view>
<view class="action u-border-bottom" v-else @click="onQuite">删除并退出</view>
</view>
</view>
</template>
@@ -47,25 +46,60 @@
import {
getGroupInfo
} from '@/apis/interfaces/im.js'
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
export default {
data() {
return {
targetId: '',
group: {},
conversationType: 3,
announcement: '',
members: []
members: [],
status: false,
isTop: false,
}
},
onLoad(e) {
this.targetId = e.targetId
getGroupInfo(this.targetId).then(res => {
this.group = res.group
console.log(this.group);
this.announcement = res.announcement
this.members = res.members
})
RongIMLib.getConversationNotificationStatus(this.conversationType, this.targetId, ({
status
}) => {
this.status = !Boolean(status)
})
RongIMLib.getConversation(this.conversationType, this.targetId, ({
code,
conversation
}) => {
if (code == 0) {
this.isTop = conversation.isTop
}
})
},
methods: {
setStatus() {
RongIMLib.setConversationNotificationStatus(this.conversationType, this.targetId, this.status,
({
status
}) => {
this.status = !Boolean(status)
})
},
setTop() {
RongIMLib.setConversationToTop(this.conversationType, this.targetId, this.isTop, (res) => {
RongIMLib.getConversation(this.conversationType, this.targetId, ({
conversation
}) => {
this.isTop = conversation.isTop
})
})
},
toUser(item) {
uni.navigateTo({
url: '/pages/im/friends/info?targetId=' + item.targetId
@@ -84,20 +118,52 @@
url: '/pages/im/group/announcement?targetId=' + this.targetId
})
},
onClean() {
onGroupName() {
},
onClean() {
uni.showModal({
title: '清空聊天记录',
content: '清空聊天记录,只会清空本地的记录,其他成员不会变化',
success: (res) => {
if (res.confirm) {
RongIMLib.deleteMessages(3, this.targetId, () => {
uni.showToast({
icon: 'none',
title: '清空成功'
})
})
}
}
})
},
onDismiss() {
uni.showToast({
icon: 'none',
title: '开发中'
})
},
onQuite() {
uni.showToast({
icon: 'none',
title: '开发中'
})
}
}
}
</script>
<style lang="scss" scoped>
.container {
min-height: 100vh;
background: $window-color;
}
.cells {
margin-top: $padding;
background-color: white;
}
.members {
background-color: white;
padding-bottom: 40rpx;
@@ -121,6 +187,8 @@
font-size: 28rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-word;
}
}
}
@@ -134,8 +202,10 @@
.actions {
margin-top: $padding;
text-align: center;
.action {
padding: $padding;
color: $text-price;
justify-content: center;
}

View File

@@ -3,7 +3,7 @@
<view class="users">
<view class="user" v-for="(item, index) in members" :key="index" @click="toUser(item)">
<u-avatar size="44" shape="square" :src="item.portraitUrl"></u-avatar>
<text class="name">{{ item.name }}</text>
<view class="name">{{ item.name }}</view>
</view>
</view>
</view>
@@ -65,6 +65,8 @@
font-size: 28rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-word;
}
}
}