shuinishop/pages/goods/ratings/ratings.vue

389 lines
10 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>
<video id="myVideo" class="myVideo" :src="videoSrc" v-show="isPlayVideo" :show-fullscreen-btn="showFullscreenBtn" :direction="videoDirection" :show-play-btn="showPlayBtn" @pause="videoPause" @fullscreenchange="viderFullscreen">
<cover-image class="stopPlayVideoBtn" @click="stopPlayVideo" src="/static/img/close.png"></cover-image>
</video>
<view class="content">
<view class="label">
<view v-for="(label,index) in labelList" :class="{'on':index==labelIndex}" @tap="loadRatings(index)" :key="label.type">
{{label.name}}({{label.number}})
</view>
</view>
<view class="list">
<view class="row" v-for="(row,Rindex) in ratingsList" :key="Rindex">
<view class="left">
<view class="face">
<image :src="row.face"></image>
</view>
</view>
<view class="right">
<view class="name-date">
<view class="username">
{{row.username}}
</view>
<view class="date">
{{row.date}}
</view>
</view>
<view class="spec">
{{row.spec}}
</view>
<view class="first">
<view class="rat">
{{row.first.content}}
</view>
<view class="img-video">
<view class="box" v-for="item in row.first.video" @tap="playVideo(item.path)" :key="item.path">
<image mode="aspectFill" :src="item.img"></image>
<view class="playbtn">
<view class="icon bofang"></view>
</view>
</view>
<view class="box" v-for="item in row.first.img" @tap="showBigImg(item,row.first.img)" :key="item">
<image mode="aspectFill" :src="item"></image>
</view>
</view>
</view>
<view class="append" v-if="row.append">
<view class="date">
{{row.append.date}}天后追加
</view>
<view class="rat">
{{row.append.content}}
</view>
<view class="img-video">
<view class="box" v-for="item in row.append.video" @tap="playVideo(item.path)" :key="item.path">
<image mode="aspectFill" :src="item.img"></image>
<view class="playbtn">
<view class="icon bofang"></view>
</view>
</view>
<view class="box" v-for="item in row.append.img" @tap="showBigImg(item,row.append.img)" :key="item">
<image mode="aspectFill" :src="item"></image>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
labelList:[
{name:'全部',number:25,type:'all'},
{name:'好评',number:23,type:'good'},
{name:'中评',number:1,type:'secondary'},
{name:'差评',number:1,type:'poor'},
{name:'有图',number:12,type:'img'},
{name:'视频',number:2,type:'video'},
{name:'追加',number:2,type:'append'}
],
labelIndex:0,
ratingsList:[
{id:1,username:"大黑哥",face:"/static/img/face.jpg",date:'2019-04-21',spec:"规格: XL",grade:"good",
first:{content:"好看,可以,不愧是专业的,才拿到手上就研究了半天才装上",
img:["https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg","https://ae01.alicdn.com/kf/HTB1sL7hTjDpK1RjSZFrq6y78VXaw.jpg","https://ae01.alicdn.com/kf/HTB111soTbvpK1RjSZPiq6zmwXXaB.jpg","https://ae01.alicdn.com/kf/HTB1O2TRTmzqK1RjSZPcq6zTepXa4.jpg"],
video:[{img:"https://ae01.alicdn.com/kf/HTB1AMEBTcfpK1RjSZFOq6y6nFXaK.jpg",path:"https://mp4.vjshi.com/2018-12-28/1083f3db90334f86e3fc3586b4472914.mp4"}]
},
append:{date:65,content:"用了一段时间,质量很好,体验很流畅,推荐购买",
img:["https://ae01.alicdn.com/kf/HTB1dKZtTgHqK1RjSZFEq6AGMXXaS.jpg","https://ae01.alicdn.com/kf/HTB18h3oTmzqK1RjSZFjq6zlCFXap.jpg"],
video:[{img:"https://ae01.alicdn.com/kf/HTB1AMEBTcfpK1RjSZFOq6y6nFXaK.jpg",path:"https://mp4.vjshi.com/2017-06-17/ed1d63669bea39f5ef078c4e194291d6.mp4"}]
}
},
{id:2,username:"小黑狗",face:"/static/img/face.jpg",date:'2019-04-21',spec:"规格: XL",grade:"secondary",
first:{content:"好评,看图",
img:["https://ae01.alicdn.com/kf/HTB111soTbvpK1RjSZPiq6zmwXXaB.jpg","https://ae01.alicdn.com/kf/HTB1O2TRTmzqK1RjSZPcq6zTepXa4.jpg"],
video:[]
}
},
{id:3,username:"小黑狗",face:"/static/img/face.jpg",date:'2019-04-21',spec:"规格: XL",grade:"poor",
first:{content:"好评,看图",
img:["https://ae01.alicdn.com/kf/HTB111soTbvpK1RjSZPiq6zmwXXaB.jpg","https://ae01.alicdn.com/kf/HTB1O2TRTmzqK1RjSZPcq6zTepXa4.jpg"],
video:[]
}
},
{id:3,username:"小黑狗",face:"/static/img/face.jpg",date:'2019-04-21',spec:"规格: XL",grade:"secondary",
first:{content:"系统默认好评",
img:[],
video:[]
}
}
],
videoDirection:0,
showFullscreenBtn:true,
showPlayBtn:true,
isPlayVideo:true,
videoSrc:''
};
},
onReady: function (res) {
this.videoContext = uni.createVideoContext('myVideo')
},
//下拉刷新需要自己在page.json文件中配置开启页面下拉刷新 "enablePullDownRefresh": true
onPullDownRefresh() {
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
//上拉加载需要自己在page.json文件中配置"onReachBottomDistance"
onReachBottom() {
uni.showToast({ title: '触发上拉加载' });
},
methods: {
loadRatings(index){
this.labelIndex = index;
uni.showToast({
title:"切换评论列表"
})
//实际应用中请求对应类型的评论列表覆盖this.ratingsList
/*
let type = this.labelList[index].type; // 评论类型
......
*/
},
playVideo(path) {
this.videoSrc = path;
// this.isPlayVideo = true;
this.$nextTick(function() {
this.videoContext.requestFullScreen({direction:0});
});
},
stopPlayVideo(){
this.videoContext.pause();
},
videoPause(){
// this.isPlayVideo = false;
this.videoSrc = '';
},
viderFullscreen(e){
if(e.detail.fullScreen){
this.videoContext.play();
}else{
this.stopPlayVideo();
}
},
showBigImg(src,srclist){
uni.previewImage({
current:src,
urls: srclist
});
}
},
}
</script>
<style lang="scss">
page{
background-color: #fff;
}
.myVideo{
position: fixed;
top: 50%;
right: 100%;
}
.content{
view{
display: flex;
}
width: 94%;
padding: 0 3%;
.label{
width: 100%;
flex-wrap:wrap;
view{
padding: 0 20upx;
height: 50upx;
border-radius: 40upx;
border:solid 1upx #ddd;
align-items: center;
color: #555;
font-size: 26upx;
background-color: #f9f9f9;
margin: 10upx 20upx 10upx 0;
&.on{
border:solid 1upx #f06c7a;
color: #f06c7a;
}
}
}
.list{
width: 100%;
flex-wrap: wrap;
padding: 20upx 0;
.row{
width: 100%;
margin-top: 30upx;
.left{
width: 10vw;
flex-shrink: 0;
margin-right: 10upx;
.face{
width: 100%;
image{
width: 10vw;
height: 10vw;
border-radius: 100%;
}
}
}
.right{
width: 100%;
flex-wrap: wrap;
.name-date{
width: 100%;
justify-content: space-between;
align-items: baseline;
.username{
font-size: 32upx;
color: #555;
}
.date{
font-size:28upx;
color: #aaa;
}
}
.spec{
width: 100%;
color: #aaa;
font-size: 26upx;
}
.first{
width: 100%;
flex-wrap: wrap;
.rat{
font-size: 30upx;
}
.img-video{
width: 100%;
flex-wrap: wrap;
.box{
width: calc((84.6vw - 50upx)/4);
height: calc((84.6vw - 50upx)/4);
margin: 5upx 5upx;
position: relative;
justify-content: center;
align-items: center;
image{
position: absolute;
width: 100%;
height: 100%;
border-radius: 10upx;
}
.playbtn{
position: absolute;
.icon{
font-size: 80upx;
color: rgba(255,255,255,.9)
}
}
}
}
}
.append{
width: 100%;
flex-wrap: wrap;
.date{
width: 100%;
height: 40upx;
border-left: 10upx solid #f06c7a;
padding-left: 10upx;
align-items: center;
font-size: 32upx;
margin: 20upx 0;
}
.rat{
font-size: 30upx;
}
.img-video{
width: 100%;
flex-wrap: wrap;
.box{
width: calc((84.6vw - 10upx - (10upx * 4))/4);
height: calc((84.6vw - 10upx - (10upx * 4))/4);
margin: 5upx 5upx;
position: relative;
justify-content: center;
align-items: center;
image{
position: absolute;
width: 100%;
height: 100%;
border-radius: 10upx;
}
.playbtn{
position: absolute;
.icon{
font-size: 80upx;
color: rgba(255,255,255,.9);
}
}
}
}
}
}
}
}
}
/*
* <view class="list">
<view class="row">
<view class="right">
<view class="spec">
规格XL
</view>
<view class="first">
<view class="rat">
好看,可以,不愧是专业的,才拿到手上就研究了半天才装上
</view>
<view class="img-video">
<view class="box">
<image src="https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg"></image>
<view class="playbtn">
<view class="icon bofang"></view>
</view>
</view>
<view class="box">
<image src="https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg"></image>
</view>
<view class="box">
<image src="https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg"></image>
</view>
</view>
</view>
<view class="append">
<view class="date">
65天后追加
</view>
<view class="rat">
好看,可以,不愧是专业的,才拿到手上就研究了半天才装上
</view>
<view class="img-video">
<view class="box">
<image src="https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg"></image>
</view>
<view class="box">
<image src="https://ae01.alicdn.com/kf/HTB1wREwTXzqK1RjSZFvq6AB7VXaT.jpg"></image>
</view>
</view>
</view>
</view>
</view>
</view>
*
* */
</style>