抖音小程序端
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.

248 lines
4.8 KiB

<template>
<view class="creator">
<view>
<swiper class="swiper-box" :autoplay="autoplay" :interval="interval" :duration="duration"
:indicator-dots="indicatorDots">
<swiper-item v-for="(item, index) in banner" :key="index">
<image class="img" @click="linkTo(item)" :src="item.bannerImg"></image>
</swiper-item>
</swiper>
</view>
4 years ago
<view class="list">
<view v-for="(item, index) in userImgList" :key="index" class="list-item">
<!-- 展示用户相关信息 -->
<view class="fb-d-r fb-j-sb fb-a-c list-top" @click="toUserDetail(item)">
<view class="fb-d-r fb-a-c head-box">
<image class="head" :src="item.img"></image>
<view class="ml-10">
4 years ago
<view class="">
<text class="">{{item.username}}</text>
4 years ago
</view>
<view class="fb-d-r fb-j-sb">
<view class="imgLength-box">
<image class="img-icon" src="../../static/imgLength.png" mode=""></image>
<text>11111</text>
</view>
<view class="imgLength-box">
<image class="img-icon" src="../../static/collectLength.png" mode=""></image>
<text>11111</text>
</view>
<view class="imgLength-box">
<image class="img-icon" src="../../static/likeLength.png" mode=""></image>
<text>11111</text>
</view>
4 years ago
</view>
</view>
</view>
<image class="jiantou" src="../../static/jiantou-right.png" mode=""></image>
</view>
<!-- 展示用户对应三张图 -->
<view class="fb-d-r fb-j-sb img-box">
<view v-for="(pic,param) in item.imgList" :key="param">
<image class="threeImg" @click="linkTo(pic)" :src="pic.imgUrl"></image>
</view>
</view>
4 years ago
</view>
</view>
</view>
</template>
<script>
import {
getBannerList,
getUserImgList
} from '@/api/creator.js'
export default {
data() {
return {
banner: [],
userImgList: [],
autoplay: true,
interval: 2000,
duration: 1000,
indicatorDots: true,
}
},
onLoad() {
this.getBanner();
this.getUserImgList();
},
// 下拉刷新
onPullDownRefresh(){
this.getBanner();
this.getUserImgList();
uni.stopPullDownRefresh()
},
methods: {
// 跳转用户详情页
toUserDetail(item){
if (item) {
uni.setStorage({
key: 'userDetail',
data: item,
success() {
uni.navigateTo({
url: '../creator/userDetail'
})
}
})
}
},
// 跳转图片详情页
linkTo(item) {
console.log(item)
if (item.id) {
uni.setStorage({
key: 'detailId',
data: item.id,
success() {
console.log(111111)
uni.navigateTo({
url: '../creator/imgDetail'
})
}
})
}
},
getUserDetails(item) {
//TODO 点击跳转对应用户详情页面
console.log(item);
},
async getBanner() {
const res = await getBannerList()
if (res.data.code === 200) {
this.banner = res.data.data
} else {
uni.showModal({
content: 'banner加载失败!',
showCancel: false
});
}
},
async getUserImgList() {
const res = await getUserImgList()
if (res.data.code === 200) {
this.userImgList = res.data.data
console.log('userListImg', this.userImgList)
} else {
uni.showModal({
content: '用户图片列表加载失败!',
showCancel: false
});
}
}
}
}
</script>
4 years ago
<style scoped lang="scss">
.creator {
4 years ago
padding: 20rpx;
background-color: #ffffff;
font-size: 22rpx;
4 years ago
.list {
margin-top: 20rpx;
4 years ago
&-item {
padding: 5rpx;
margin-top: 20rpx;
}
.list-top{
margin-bottom: 20rpx;
}
4 years ago
.head-box {
flex: .8;
4 years ago
&>.ml-10 {
flex: 1;
height: 40px;
padding: 4rpx 0;
display: flex;
flex-direction:column;
justify-content: space-between;
.imgLength-box {
display: flex;
justify-content: flex-start;
align-items: center;
.img-icon {
width: 30rpx;
height: 30rpx;
}
}
4 years ago
}
}
.jiantou {
width: 40rpx;
height: 40rpx;
}
4 years ago
.img-box {
margin-top: 10rpx;
display: flex;
justify-content: flex-start;
view {
4 years ago
width: 32%;
image {
border-radius: 8rpx;
width: calc(100% - 12rpx);
4 years ago
}
}
}
}
}
.swiper-box {
4 years ago
height: 250rpx;
// border: 2rpx solid #18BC37;
border-radius: 8rpx;
overflow: hidden;
}
.swiper-item {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
height: 200px;
color: #fff;
}
.img {
position: absolute;
width: 100%;
height: 100%;
}
.head {
4 years ago
// flex: 1;
// display: flex;
width: 80rpx;
height: 80rpx;
4 years ago
border-radius: 50%;
// justify-content: space-between;
// align-items: flex-end;
}
.userName {
4 years ago
margin-left: 10rpx;
}
.threeImg {
height: 300rpx;
width: 200rpx;
}
</style>