This commit is contained in:
2022-01-25 09:52:20 +08:00
4 changed files with 142 additions and 138 deletions

View File

@@ -1,6 +1,5 @@
<template> <template>
<view> <view>
<block v-if="friends.length > 0">
<u-index-list :index-list="indexs" inactiveColor="#666" activeColor="#34CE98"> <u-index-list :index-list="indexs" inactiveColor="#666" activeColor="#34CE98">
<view> <view>
<view class="friend-flex" @click="toPending"> <view class="friend-flex" @click="toPending">
@@ -12,6 +11,7 @@
<view class="name">我的群聊</view> <view class="name">我的群聊</view>
</view> </view>
</view> </view>
<block v-if="friends.length > 0">
<template v-for="(item, friend) in friends"> <template v-for="(item, friend) in friends">
<!-- #ifdef APP-NVUE --> <!-- #ifdef APP-NVUE -->
<u-index-anchor :text="indexs[friend]" bgColor="#F3F6FB" height="20" size="12" color="#666"></u-index-anchor> <u-index-anchor :text="indexs[friend]" bgColor="#F3F6FB" height="20" size="12" color="#666"></u-index-anchor>
@@ -20,105 +20,95 @@
<!-- #ifndef APP-NVUE --> <!-- #ifndef APP-NVUE -->
<u-index-anchor :text="indexs[friend]" bgColor="#F3F6FB" height="20" size="12" color="#666"></u-index-anchor> <u-index-anchor :text="indexs[friend]" bgColor="#F3F6FB" height="20" size="12" color="#666"></u-index-anchor>
<!-- #endif --> <!-- #endif -->
<view v-for="(friendItem, index) in item" :key="friendItem.userId" class="friend-flex"> <view
v-for="(friendItem, index) in item"
:key="friendItem.userId"
class="friend-flex"
@click="$Router.push({ name: 'imFriendsInfo', params: { id: friendItem.userId } })"
>
<block v-if="friendItem.portraitUrl != ''"> <block v-if="friendItem.portraitUrl != ''">
<u-avatar class="cover" size="40" shape="square" :src="friendItem.portraitUrl || ''" :default-url="require('@/static/user/cover.png')"></u-avatar> <u-avatar class="cover" size="40" shape="square" :src="friendItem.portraitUrl || ''" :default-url="require('@/static/user/cover.png')"></u-avatar>
</block> </block>
<block v-else> <block v-else><u-avatar class="cover" size="40" shape="square" :src="require('@/static/user/cover.png')"></u-avatar></block>
<u-avatar class="cover" size="40" shape="square" :src="require('@/static/user/cover.png')"></u-avatar> <view class="name">{{ friendItem.name }}</view>
</block>
<view class="name">{{friendItem.name}}</view>
</view> </view>
</u-index-item> </u-index-item>
</template> </template>
</block>
<block v-else><u-empty class="pages-null" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" text="暂无好友"></u-empty></block>
</u-index-list> </u-index-list>
</block>
<block v-else>
<u-empty class="pages-null" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" text="暂无好友">
</u-empty>
</block>
</view> </view>
</template> </template>
<script> <script>
import { import { getFriends } from '@/apis/interfaces/im';
getFriends export default {
} from '@/apis/interfaces/im'
export default {
data() { data() {
return { return {
indexs : [], indexs: [],
friends: [] friends: []
} };
}, },
onShow() { onShow() {
getFriends().then(res => { getFriends().then(res => {
this.indexs = res.indexList this.indexs = res.indexList;
this.friends = res.itemArr this.friends = res.itemArr;
console.log(res.itemArr)
})
},
computed: {
console.log(res.itemArr);
});
}, },
computed: {},
methods: { methods: {
// 扫码提示 // 扫码提示
showToast() { showToast() {
uni.showToast({ uni.showToast({
title: "群聊功能暂未开放,敬请期待", title: '群聊功能暂未开放,敬请期待',
icon: "none" icon: 'none'
}) });
}, },
// 新朋友 // 新朋友
toPending() { toPending() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/im/friends/pending' url: '/pages/im/friends/pending'
}) });
},
// 用户资料
toInfo(targetId) {
uni.navigateTo({
url: '/pages/im/friends/info?targetId=' + targetId
})
} }
}, },
onNavigationBarButtonTap(e) { onNavigationBarButtonTap(e) {
this.toPending() this.toPending();
}
} }
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// 页面空 // 页面空
.pages-null { .pages-null {
height: 70vh; height: 70vh;
} }
// 好友列表 // 好友列表
.friend-flex{ .friend-flex {
position: relative; position: relative;
padding: 20rpx $padding; padding: 20rpx $padding;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
// .cover // .cover
.name{ .name {
flex: 1; flex: 1;
padding-left: $padding; padding-left: $padding;
font-size: $title-size; font-size: $title-size;
@extend .nowrap; @extend .nowrap;
} }
&::after{ &::after {
position: absolute; position: absolute;
height: 1rpx; height: 1rpx;
background: $border-color; background: $border-color;
left: calc(40px + #{$padding * 2}); left: calc(40px + #{$padding * 2});
right: 0; right: 0;
bottom: 0; bottom: 0;
content: " "; content: ' ';
} }
&:last-child::after{ &:last-child::after {
display: none; display: none;
} }
} }
</style> </style>

View File

@@ -38,12 +38,9 @@
userInfo: {} userInfo: {}
} }
}, },
onLoad(e) { mounted() {
this.targetId = e.targetId getUserInfo(this.$Route.query.id).then(res => {
console.log('获取资料',e.targetId);
getUserInfo(e.targetId).then(res => {
this.userInfo = res this.userInfo = res
console.log('获取资料', res);
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: res.name title: res.name
}) })

View File

@@ -1,11 +1,29 @@
<template> <template>
<div> <div>
我的资料也就展示个二维码吧 我的资料也就展示个二维码吧
获取一波资料吧
</div> </div>
</template> </template>
<script> <script>
import { getUserInfo } from '@/apis/interfaces/im'
export default{
data(){
return{
}
},
mounted() {
console.log(this.$Route)
// getUserInfo(this.$Route.query.id).then(res => {
// })
},
methods: {
}
}
</script> </script>
<style> <style lang="scss" scoped>
</style> </style>

View File

@@ -12,10 +12,8 @@
<view class="chat-status" :class="{'hide': item.sentStatus == 50}" <view class="chat-status" :class="{'hide': item.sentStatus == 50}"
v-if="item.messageDirection == 1">{{ item.sentStatus == 50 ? '已读': '未读'}}</view> v-if="item.messageDirection == 1">{{ item.sentStatus == 50 ? '已读': '未读'}}</view>
<view class="chat-avatar"> <view class="chat-avatar">
<u-avatar v-if="item.messageDirection == 2" bg-color="#ffffff" :src="userInfo.portraitUrl" <u-avatar v-if="item.messageDirection == 2" bg-color="#ffffff" :src="userInfo.portraitUrl" @click="showFriend(targetId)"></u-avatar>
@click="showFriend(targetId)"></u-avatar> <u-avatar v-else @click="showMine" bg-color="#ffffff" :src="$store.getters.sender.portraitUrl" />
<u-avatar v-else @click="showMine" bg-color="#ffffff"
:src="$store.getters.sender.portraitUrl" />
</view> </view>
</view> </view>
<view class="chat-item-time" :id="'chatId_'+index"> <view class="chat-item-time" :id="'chatId_'+index">
@@ -249,6 +247,7 @@
.chat-avatar { .chat-avatar {
position: absolute; position: absolute;
top: 0; top: 0;
background: white;
} }
&.left { &.left {