连云港陪玩陪聊
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

268 lines
5.6 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">
3 months ago
<view class="item" v-for="i in 10" :key="i" @click="openPage(1,1)">
3 months ago
<view class="a">
<view class="fl">
<image src="@/static/nv.png"></image>
<view class="info">
<view class="name">幽默的先生</view>
<view class="desc">2024-06-06 11:23</view>
</view>
</view>
<view class="fr">
<image src="@/static/shenglue.png"></image>
</view>
</view>
<view class="b">今天天气真好啊碧蓝的天空绿油油的油菜花空中飘香远远的山脉看着忽远忽近</view>
<view class="c">
<image mode="aspectFill" src="@/static/1.png"></image>
<image mode="aspectFill" src="@/static/2.png"></image>
<image mode="aspectFill" src="@/static/3.png"></image>
</view>
<view class="d">
<view class="fl">
<view class="li">
<image src="@/static/xiaoxi.png"></image>69
</view>
<view class="li">
<image src="@/static/dianzan.png"></image>896
</view>
3 months ago
<view class="li" @click.stop="openPage(2)">
3 months ago
<image src="@/static/fenxiang.png"></image>分享
</view>
</view>
3 months ago
<view class="fr" @click.stop="openPage(3)">搭讪</view>
3 months ago
</view>
</view>
</view>
3 months ago
<view class="dongtai-fd" @click.stop="openPage(4)">
<image src="@/static/icon-fabu.png"></image>
</view>
3 months ago
<share :isShare="isShare" />
3 months ago
</view>
</template>
<script>
export default {
data() {
return {
3 months ago
isShare: false,
3 months ago
current: 0,
2 months ago
pageNum: 1,
total: 1,
3 months ago
list:[{'name': '广场'},{'name': '关注'}],
activeStyle:{'fontSize': '35rpx'}
}
},
2 months ago
onReady() {
const that = this;
that.getList();
uni.$on("toAddDongtai",res=>{
that.pageNum = 1;
that.current = 0;
that.list = [];
that.getList();
})
},
onReachBottom() {
const that = this;
uni.showLoading({
title: "加载中"
})
if(this.list.length <= this.total){
that.offset ++;
setTimeout(function() {
that.getList(1);
}, 1000);
}
3 months ago
},
methods: {
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,
pageNum: this.pageNum,
})
if(code == 200){
if(type == 1){
uni.hideLoading();
}
this.total = data.total;
this.list = arrayUnique([...this.list,...data.list],"id")
}
},
3 months ago
openPage(index,id){
if(index == 1){
uni.navigateTo({
url: "/pages/dongtai/detail?id="+id
})
}else if(index == 2){
this.isShare = true;
}else if(index == 4){
uni.navigateTo({
url: "/pages/dongtai/add"
})
}
3 months ago
},
3 months ago
changeTabs(index){
this.current = index
},
}
}
</script>
<style scoped lang="scss">
.dongtai{
overflow: hidden;
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>