dl_uniapp/pages/mine/member/member-index.vue
2025-04-15 15:44:20 +08:00

364 lines
8.3 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="auth-choose-box">
<navigation-bar-vue title="通告主详情" style="width: 100%;" background-color="#ffffff"
title-color="#000000"></navigation-bar-vue>
<view class="choose-detail">
<view class="people-info-box">
<view class="image-box">
<image :src="imageUrl+member.avatar" mode="aspectFit"></image>
</view>
<view class="people-name-box">
<view class="name-box">
<view class="name-dom">{{ member.nickName }}</view>
<view class="fans-dom">{{ member.tfansNum }}关注</view>
</view>
<view class="renzheng-dom">
<image src="@/static/mine/auth/renzhen.png" mode="aspectFit"></image>
认证{{ member.identityName }}
</view>
</view>
<view class="opt-box">
<view class="lahei">拉黑</view>
<view class="guanzhu">关注</view>
</view>
</view>
<!-- <view class="bozhu-type-box">-->
<!-- <view class="item-dom">好物</view>-->
<!-- <view class="item-dom">颜值</view>-->
<!-- </view>-->
<view class="pingjia-box">
<view class="pingjia-content">
<view class="top-title">
<image src="@/static/mine/auth/pingjia.png" mode="aspectFit"></image>
合作博主评价
</view>
<view class="item-box">
<view v-for="item in member.evaluates" class="item-dom">{{item.evaluate}}(<text>{{ item.num }}</text>)</view>
</view>
</view>
</view>
<view class="dl-title">
<image src="@/static/mine/auth/dian.png" mode="aspectFit"></image>
<text>进行中的通告(<text>{{total}}</text>)</text>
</view>
<view class="data-list-box">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled
@refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered">
<notice-item v-if="dataList.length>0" :dataList="dataList" ></notice-item>
<view style="text-align: center" v-if="dataList.length==0">
<image class="" src="@/static/images/nothing.png"></image>
</view>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
import {toast} from '@/utils/common.js'
import {queryListByUserId} from '@/api/business/notice.js'
import {announcerDetail} from '@/api/business/member.js'
import noticeItem from '@/pages/components/notice-item.vue'
import navigationBarVue from '@/components/navigation/navigationBar.vue';
import config from '@/config'
export default {
components: {
navigationBarVue,
noticeItem
},
data() {
return {
imageUrl: config.baseUrl,
member:{},
dataList: ['', ''],
queryParams: {
pageNum: 1,
pageSize: 10,
userId:null,
status:'进行中',
},
userId:null,
total: 0,
//下来刷新状态
isTriggered: false
}
},
onLoad(option){
this.userId = option.userId
this.queryParams.userId = option.userId
this.initMember()
this.initNotice()
},
methods: {
/**出初始化通告主详情*/
initMember(){
announcerDetail(this.userId).then(res=>{
if (res.code ==200){
this.member = res.data
}
})
},
/**初始化通告列表*/
initNotice(){
queryListByUserId(this.queryParams).then(res=>{
this.isTriggered = false
if (res.code == 200){
if (this.queryParams.pageNum == 1) {
this.dataList = res.data.records
} else {
this.dataList = this.dataList.concat(res.data.records)
}
this.total = res.data.total
}
})
},
/**
* 上滑加载数据
*/
onReachBottomCus() {
//判断 如果页码*页容量大于等于总条数,提示该页数据加载完毕
if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) {
toast("没有更多数据了")
return
}
//页码+1,调用获取数据的方法获取第二页数据
this.queryParams.pageNum++
this.initNotice()
},
/**
* 下拉刷新数据
*/
onRefresherrefresh() {
this.isTriggered = true
this.queryParams.pageNum = 1
this.total = 0
this.initNotice()
},
}
}
</script>
<style lang="scss">
.auth-choose-box {
padding-top: calc(90rpx + var(--status-bar-height));
border-top: 1rpx solid #F4F4F4;
background-color: white;
width: 100%;
color: #363636;
font-size: 30rpx;
height: 100%;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: center;
position: relative;
.choose-detail {
border-top: 1rpx solid #F4F4F4;
width: 100%;
background-color: #F2F2F2;
border-radius: 20rpx;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: start;
position: relative;
.people-info-box {
width: 100%;
padding: 30rpx;
background-color: white;
display: flex;
align-items: center;
justify-content: center;
.image-box {
display: flex;
align-items: center;
justify-content: center;
image {
border-radius: 50%;
width: 100rpx;
height: 100rpx;
}
}
.people-name-box {
flex: 1;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: center;
padding: 0 15rpx;
.name-box {
flex: 1;
min-width: 0;
display: flex;
align-items: center;
justify-content: center;
.name-dom {
font-size: 34rpx;
font-weight: bold;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 20rpx;
}
.fans-dom {
font-size: 22rpx;
padding: 5rpx 15rpx;
border: 1rpx solid #FC1F3E;
color: #FC1F3E;
border-radius: 25rpx 25rpx 25rpx 0;
}
}
.renzheng-dom {
padding: 8rpx 0;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
}
}
.opt-box {
width: 230rpx;
font-size: 25rpx;
display: flex;
align-items: center;
justify-content: flex-end;
.lahei {
display: flex;
align-items: center;
justify-content: center;
border-radius: 20rpx;
color: white;
background-color: #929292;
padding: 5rpx 20rpx;
}
.guanzhu {
display: flex;
align-items: center;
justify-content: center;
margin-left: 20rpx;
background-color: #FC1F3E;
color: white;
border-radius: 20rpx;
padding: 5rpx 20rpx;
}
}
}
.bozhu-type-box {
width: 100%;
background-color: white;
border-bottom: 1rpx solid #F4F4F4;
.item-dom {
display: flex;
align-items: center;
justify-content: center;
float: left;
padding: 4rpx 25rpx;
background-color: #F4F4F4;
color: #363636;
margin: 0 0 30rpx 30rpx;
border-radius: 30rpx;
}
}
.pingjia-box {
width: 100%;
background-color: white;
padding: 30rpx;
.pingjia-content {
width: 100%;
background-color: #FAFAFA;
border-radius: 30rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.top-title {
width: 100%;
padding: 30rpx 30rpx 20rpx 30rpx;
display: flex;
align-items: center;
justify-content: start;
image {
width: 50rpx;
height: 50rpx;
margin-right: 10rpx;
font-weight: bold;
}
}
.item-box {
width: 100%;
.item-dom {
float: left;
padding: 5rpx 25rpx;
color: #363636;
border-radius: 30rpx;
border: 1rpx solid #E5E5E5;
margin: 0 0 15rpx 30rpx;
}
}
}
}
.dl-title {
padding: 20rpx 30rpx;
width: 100%;
display: flex;
align-items: center;
justify-content: start;
margin-bottom: 20rpx;
image {
width: 30rpx;
height: 30rpx;
}
text {
margin-left: 10rpx;
font-weight: bold;
font-size: 32rpx;
}
}
.data-list-box {
padding: 5rpx 30rpx 20rpx 30rpx;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: start;
width: 100%;
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 400rpx);
}
}
}
</style>