连云港陪玩陪聊
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chunwan/pages/dongtai/index.vue

328 lines
7.0 KiB

3 months ago
<template>
<view class="dongtai">
3 months ago
<view class="dongtai-tab">
3 months ago
<view class="tab">
<u-tabs :list="list" bg-color="transparent" :is-scroll="false" active-color="#222222" inactive-color="#666666" font-size="30" :active-item-style="activeStyle" bar-height="10" bar-width="60" v-model="current" @change="changeTabs"></u-tabs>
</view>
3 months ago
</view>
3 months ago
<view class="dongtai-list">
2 months ago
<view class="item" v-for="(a,i) in dongtaiList" :key="i" @click="openPage(1,a.id)">
3 months ago
<view class="a">
<view class="fl">
2 months ago
<image :src="a.faceImage?a.faceImage:a.img"></image>
3 months ago
<view class="info">
2 months ago
<view class="name">{{a.nickname}}</view>
<view class="desc">{{a.createTime}}</view>
3 months ago
</view>
</view>
<view class="fr">
<image src="@/static/shenglue.png"></image>
</view>
</view>
2 months ago
<view class="b">{{a.content}}</view>
3 months ago
<view class="c">
2 months ago
<image mode="aspectFill" v-for="(b,idx) in a.imgurl" :key="idx" @click.stop="previewImage(i,idx)" :src="b"></image>
3 months ago
</view>
<view class="d">
<view class="fl">
<view class="li">
2 months ago
<image src="@/static/xiaoxi.png"></image>{{a.pinglun}}
3 months ago
</view>
<view class="li">
2 months ago
<image v-if="a.isUserZan == 0 " src="@/static/dianzan.png"></image>
<image v-else src="@/static/zandin2.png"></image>{{a.zan}}
3 months ago
</view>
2 months ago
<view class="li">
3 months ago
<image src="@/static/fenxiang.png"></image>分享
</view>
</view>
2 months ago
<view class="fr">搭讪</view>
3 months ago
</view>
</view>
2 months ago
<view style="margin-top: 25rpx;">
<u-divider v-if="total>=1 && total==dongtaiList.length" bg-color="transparent">到底啦~</u-divider>
</view>
<view class="empty" v-if="total == 0">
<image src="@/static/empty.png"></image>
<view class="txt">暂无数据</view>
</view>
3 months ago
</view>
2 months ago
<view class="dongtai-fd" @click.stop="openPage(2)">
3 months ago
<image src="@/static/icon-fabu.png"></image>
</view>
2 months ago
<unverified :isPopup="isPopup" />
3 months ago
</view>
</template>
<script>
export default {
data() {
return {
2 months ago
isPopup: false,
3 months ago
current: 0,
2 months ago
pageNum: 1,
total: 1,
3 months ago
list:[{'name': '广场'},{'name': '关注'}],
2 months ago
activeStyle:{'fontSize': '35rpx'},
dongtaiList: [],
userInfo: {}
3 months ago
}
},
2 months ago
onReady() {
const that = this;
that.getList();
uni.$on("toAddDongtai",res=>{
that.pageNum = 1;
that.current = 0;
2 months ago
that.dongtaiList = [];
2 months ago
that.getList();
})
2 months ago
uni.$on("closeSharePopup",res=>{
that.isPopup = false;
})
},
onShow() {
this.getUserInfo();
2 months ago
},
onReachBottom() {
const that = this;
uni.showLoading({
title: "加载中"
})
2 months ago
if(this.dongtaiList.length <= this.total){
that.pageNum ++;
2 months ago
setTimeout(function() {
that.getList(1);
}, 1000);
}
3 months ago
},
methods: {
2 months ago
previewImage(index,i){
uni.previewImage({
urls: this.dongtaiList[index].imgurl,
count: i
})
},
2 months ago
//数组对象去重
arrayUnique (arr, name) {
var hash = {};
return arr.reduce(function (item, next) {
hash[next[name]]
? ""
: (hash[next[name]] = true && item.push(next));
return item;
}, []);
},
//查询列表
async getList(type) {
const { code, data } = await this.$api.articleList({
userId: uni.getStorageSync("userInfo").id,
type: Number(this.current)+1,
limit: 20,
2 months ago
page: this.pageNum,
2 months ago
})
if(code == 200){
if(type == 1){
uni.hideLoading();
}
2 months ago
console.log(data.total)
if(data.totalCount > 0){
data.list.map(a=>{
if(a.imgurl){
a.imgurl = a.imgurl.split(",")
}
})
}
this.total = data.totalCount;
this.dongtaiList = this.arrayUnique([...this.dongtaiList,...data.list],"id")
2 months ago
}
},
3 months ago
openPage(index,id){
if(index == 1){
uni.navigateTo({
url: "/pages/dongtai/detail?id="+id
})
}else if(index == 2){
2 months ago
if(this.userInfo.realnameFlag == 0){
2 months ago
this.isPopup = true
return ;
}
3 months ago
uni.navigateTo({
url: "/pages/dongtai/add"
})
}
3 months ago
},
2 months ago
async getUserInfo() {
const { code, data , msg } = await this.$api.findUserInfo({userId: uni.getStorageSync("userInfo").id});
if(code == 200){
this.userInfo = data;
uni.setStorageSync("userInfo",data)
}else{
uni.showToast({
title: mgs,
position: "bottom",
icon: "none",
})
}
},
3 months ago
changeTabs(index){
this.current = index
2 months ago
this.pageNum = 1;
this.total = 1;
this.dongtaiList = []
this.getList();
3 months ago
},
}
}
</script>
<style scoped lang="scss">
.dongtai{
overflow: hidden;
2 months ago
.empty{
padding: 150rpx 0;
text-align: center;
font-weight: 500;
font-size: 28rpx;
color: #222222;
image{
display: block;
width: 460rpx;
height: 400rpx;
margin: 0 auto;
}
}
3 months ago
&-fd{
width: 135rpx;
height: 135rpx;
position: fixed;
right: 10rpx;
bottom: 100rpx;
z-index: 22;
image{
width: 100%;
height: 100%;
}
}
3 months ago
&-tab{
display: flex;
margin-top: 10rpx;
overflow: hidden;
.tab{
width: 250rpx;
}
}
&-list{
padding: 0 25rpx 25rpx;
overflow: hidden;
.item{
width: 100%;
background: #FFFFFF;
border-radius: 20rpx;
padding: 30rpx;
box-sizing: border-box;
margin-top: 20rpx;
.d{
font-weight: 400;
font-size: 24rpx;
color: #333333;
line-height: 42rpx;
margin-top: 20rpx;
text-align: left;
display: flex;
align-items: center;
justify-content: space-between;
.fl{
flex: 1;
display: flex;
align-items: center;
.li{
display: flex;
align-items: center;
width: 120rpx;
image{
width: 32rpx;
height: 32rpx;
margin-right: 10rpx;
}
}
}
.fr{
width: 90rpx;
line-height: 44rpx;
background: #000000;
border-radius: 44rpx;
text-align: center;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
}
}
.c{
width: 110%;
margin-top: 20rpx;
overflow: hidden;
image{
width: 210rpx;
height: 210rpx;
border-radius: 10rpx;
margin-right: 10rpx;
}
}
.b{
font-weight: 400;
font-size: 28rpx;
color: #222222;
line-height: 42rpx;
margin-top: 20rpx;
text-align: left;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 定义文本的行数 */
overflow: hidden;
text-overflow: ellipsis;
}
.a{
display: flex;
align-items: center;
justify-content: space-between;
.fl{
flex: 1;
display: flex;
align-items: center;
margin-right: 20rpx;
image{
width: 80rpx;
height: 80rpx;
background: #E6E9ED;
border-radius: 50%;
margin-right: 20rpx;
}
.info{
flex: 1;
}
.name{
font-weight: 400;
font-size: 30rpx;
color: #222222;
}
.desc{
font-weight: 400;
font-size: 22rpx;
color: #B6BCC2;
margin-top: 10rpx;
}
}
.fr{
width: 32rpx;
image{
width: 32rpx;
height: 32rpx;
}
}
}
}
}
}
</style>