Ai_GirlFriend/xuniYou/pages/friends/messageList.vue
2026-01-31 19:15:41 +08:00

274 lines
5.2 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page fc">
<uni-nav-bar fixed statusBar left-icon="left" background-color="transparent" :border="false" @clickLeft="back"
title="请求消息"></uni-nav-bar>
<view class="back"></view>
<scroll-view scroll-y="true" class="scroll-view f1" show-scrollbar @scrolltolower="onScrollToLower">
<view class="body">
<view class="list">
<view class="list_content">
<view class="list_title">好友请求</view>
<view class="list_friends">
<view class="list_request fa sb" v-for="(item,index) in applyInfoList" :key="index">
<view class="list_left f1 fa">
<image :src="item.from_user.avatar" mode="aspectFills"></image>
<view class="list_item f1">
<view class="list_title h1">{{item.from_user.nickname?item.from_user.nickname:''}}</view>
<view class="list_name h1">ID{{item.from_user.user_number?item.from_user.user_number:''}}</view>
</view>
</view>
<view class="list_right fa" v-if="item.status == 0">
<view class="list_stats fa" @click="agreeClick(item.id)">
<image src="/static/images/search_add.png" mode="widthFix"></image>
同意
</view>
<view class="list_stats fa" @click="refuseClick(item.id)">
<image src="/static/images/search_add.png" mode="widthFix"></image>
拒绝
</view>
</view>
</view>
</view>
<image class="list_add" src="/static/images/messageList_add.png" mode="widthFix"></image>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import {
ApplyList,
FriendHandle
} from '@/utils/api.js'
import notHave from '@/components/not-have.vue';
import topSafety from '@/components/top-safety.vue';
import tabBar from '@/components/tab-bar.vue';
export default {
components: {
notHave,
topSafety,
tabBar,
},
data() {
return {
form: {
page: 1
},
applyform: {
id: '',
status: 1
},
applyInfoList:[],
}
},
onLoad() {
},
onShow() {
this.page = 1;
this.applyInfoList = [];
this.applyList();
},
methods: {
applyList() {
ApplyList(this.form).then(res => {
if (res.code == 1) {
this.applyInfoList.push(...res.data.data)
console.log(this.applyInfoList)
} else {
uni.showToast({
title: res.msg,
icon: 'none',
position: 'top'
})
}
})
},
friendHandle() {
FriendHandle(this.applyform).then(res => {
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon: 'none',
position: 'top'
})
this.page = 1;
this.applyInfoList = [];
this.applyList();
} else {
uni.showToast({
title: res.msg,
icon: 'none',
position: 'top'
})
}
})
},
onScrollToLower() {
++this.form.page
console.log('触底事件')
this.applyList()
},
agreeClick(id){
this.applyform.id = id
this.applyform.status = 1
console.log(this.applyform)
this.friendHandle()
},
refuseClick(id){
this.applyform.id = id
this.applyform.status = 2
console.log(this.applyform)
this.friendHandle()
},
tosearch() {
uni.navigateTo({
url: '/pages/friends/search'
})
},
back() {
uni.navigateBack({
delta: 1,
});
},
}
}
</script>
<style>
page {
background: #F6F8FA;
}
</style>
<style>
.page {
position: relative;
height: 100vh;
overflow: hidden;
}
.scroll-view {
overflow: hidden;
}
.body {
position: relative;
padding: 0 60rpx 60rpx 60rpx;
}
.back {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 436rpx;
background: linear-gradient(180deg, #EAD6FF 0%, rgba(255, 255, 255, 0) 100%);
}
.list {
position: relative;
padding: 68rpx 0 0 0;
}
.list_content {
position: relative;
}
.list_title {
font-weight: 500;
font-size: 32rpx;
color: #333333;
line-height: 50rpx;
}
.list_friends {
position: relative;
margin: 30rpx 0 0 0;
}
.list_request {
position: relative;
margin: 0 0 30rpx 0;
padding: 32rpx 30rpx;
background: #FFFFFF;
border-radius: 16rpx;
}
.list_left {
position: relative;
overflow: hidden;
}
.list_left image {
width: 96rpx;
height: 96rpx;
display: block;
border-radius: 100rpx;
flex-shrink: 0;
}
.list_item {
position: relative;
margin: 0 0 0 20rpx;
overflow: hidden;
}
.list_title {
font-weight: 500;
font-size: 32rpx;
color: #222222;
line-height: 50rpx;
}
.list_name {
font-weight: 400;
font-size: 28rpx;
color: #B5B5B5;
line-height: 50rpx;
}
.list_right {
position: relative;
}
.list_right image {
margin: 0 5rpx 0 0;
width: 30rpx;
height: 30rpx;
}
.list_stats{
margin: 0 0 0 20rpx;
padding: 5rpx 22rpx;
font-weight: 400;
font-size: 26rpx;
color: #222222;
line-height: 50rpx;
border-radius: 226rpx;
border: 1rpx solid #DCDCDC;
}
.list_add {
position: absolute;
right: 0;
top: -40rpx;
width: 126rpx;
height: 126rpx;
display: block;
}
.list_contents {
position: relative;
margin: 70rpx 0 0 0;
}
.list_message {
position: absolute;
right: 0;
top: -20rpx;
width: 94rpx;
height: 94rpx;
display: block;
}
</style>