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.
 
 
 
 
 

229 lines
5.6 KiB

<template>
<view class="evaluateItem">
<view class="dis-flex evaluate-title">
<image :src="evaItem.avatar" mode=""></image>
<view class="flex-box">
<view class="f-28 col-3 f-w">{{evaItem.nickname}}</view>
<view class="f-24 col-9 p-top-10">{{evaItem.createtime}}</view>
</view>
<!-- #ifdef H5 -->
<view class="f-24 col-9 dis-flex" style="position: relative;top: -25upx;">
<tui-rate :current="evaItem.star" :disabled="true" :score="1" active="#ff4444"></tui-rate>
<view style="line-height: 90upx;padding-left: 5upx;">{{evaItem.star == 5 || evaItem.star == 4?'好评':evaItem.star == 3?'中评':'差评'}}</view>
</view>
<!-- #endif -->
<!-- #ifndef H5 -->
<view class="f-24 col-9 dis-flex" style="">
<tui-rate :current="evaItem.star" :disabled="true" :score="1" active="#ff4444"></tui-rate>
<view style="line-height: 45upx;padding-left: 5upx;">{{evaItem.star == 5 || evaItem.star == 4?'好评':evaItem.star == 3?'中评':'差评'}}</view>
</view>
<!-- #endif -->
</view>
<view style="padding-left: 110upx;">
<view class="col-3 f-28 p-top-20">{{evaItem.text}}</view>
<view class="img-flex" style="padding-top: 30upx;" v-if="evaItem.pic.length > 0">
<image
v-for="(item, index) in evaItem.pic" :key="index"
:src="item"
@click="lookImg(evaItem.pic,index)"
mode=""
></image>
</view>
<view class="dis-flex condition f-28 col-3 f-w" >
<view @click="like">
<image :src="imgfixUrls + 'homemakingImg/weidianzan.png'" v-if="evaItem.praiseflag == 0" mode=""></image>
<image :src="imgfixUrls + 'homemakingImg/yidianzan.png'" v-else mode=""></image>
<view class="text">{{evaItem.praisetotal}}</view>
</view>
<view style="padding-left: 50upx;" @click="openComm" v-if="hidereply == 0">
<image :src="imgfixUrls + 'homemakingImg/huifukuang.png'" mode=""></image>
<view class="text">{{evaItem.replytotal}}</view>
</view>
</view>
<view class="criticList" v-if="evaItem.replylist.length != 0 || evaItem.replytextone">
<view class="criticItem f-24 col-3 " v-if="evaItem.replytextone">
<text class="f-w" style="color: #007AFF;">商家回复:</text>
<text>{{evaItem.replytextone}}</text>
</view>
<view class="criticItem f-24 col-3 " v-for="(item,index) in evaItem.replylist">
<text class="f-w">{{item.nickname}}:</text>
<text>{{item.content}}</text>
</view>
</view>
<view class="f-28 col-3 f-w t-r" style="padding-top: 20upx;" @click="open" v-if="evaItem.replytotal != evaItem.replylist.length - 1 && evaItem.replylist.length != 0">
{{evaItem.replytotal>5?'展开':''}}
</view>
</view>
<PopManager :show="commShow" :type="'center'" :overlay="'false'" :showOverlay="'false'" @clickmask="close">
<view class="commBox">
<textarea value="" v-if="commShow" v-model="textCom" class="textarea" placeholder="回复:" />
<view class="commBtn" @click="reply">
回复
</view>
</view>
</PopManager>
</view>
</template>
<script>
import App from '@/common/js/app.js';
import tuiRate from '@/components/template/rate.vue';
import PopManager from '@/components/template/PopManager';
export default {
data() {
return {
onnumber:5,
commShow:false,
textCom:''
};
},
components: {
tuiRate,
PopManager
},
props:{
evaItem:{
type:Object,
default:{}
},
hidereply:{
type:Number,
default:0
}
},
methods:{
lookImg(imgs,index){
uni.previewImage({
current:imgs[index],
urls: imgs
})
},
like(){
App._post_form(
`&p=housekeep&do=clickPraise`,
{cid:this.evaItem.id},
res => {
console.log(res);
uni.showToast({
title: res.message
});
this.$emit('getData');
},
false,
() => {}
);
},
reply(){
let data = {
content:this.textCom,
cid:this.evaItem.id
}
App._post_form(
`&p=housekeep&do=leaveMessage`,
data,
res => {
console.log(res);
uni.showToast({
title: res.message
});
this.$emit('getData');
this.textCom = '';
this.commShow = false;
},
false,
() => {}
);
},
openComm(){
this.commShow = true;
},
close(){
this.commShow = false;
this.textCom = ''
},
open(){
this.$emit('getmoreCom',this.evaItem.id);
}
}
};
</script>
<style lang="scss" scoped>
.evaluateItem {
padding: 30upx 0;
.evaluate-title {
image {
width: 90upx;
height: 90upx;
border-radius: 50%;
margin-right: 20upx;
// border: 1upx solid #707070;
}
}
.commBox{
width: 450upx;
background-color: #FFFFFF;
border-radius: 30upx;
padding: 30upx;
.textarea{
width: 100%;
height: 200upx;
font-size: 28upx;
}
.commBtn{
width: 200upx;
height: 60upx;
line-height: 60upx;
border-radius: 60upx;
text-align: center;
font-size: 28upx;
font-weight: bold;
background-color: #72AAFD;
color: #FFFFFF;
margin: auto;
}
}
.img-flex:after{
content:'';
width:187upx;
}
.img-flex {
display: flex;
display: -webkit-flex;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
// padding-top: 20upx;
image {
// flex: 0 0 30%;
width: 187upx;
height: 187upx;
margin-top: 20upx;
border-radius: 20upx;
}
}
.condition{
// padding-left: 110upx;
padding: 40upx 0 40upx;
// border-bottom: 1upx solid #EEEEEE;
image{
width: 34upx;
height: 34upx;
vertical-align: bottom;
}
.text{
display: inline-block;
vertical-align: bottom;
line-height: 34upx;
padding-left: 10upx;
}
}
.criticList{
padding: 20upx 0;
border-top: 1upx solid #EEEEEE;
.criticItem{
padding-bottom: 10upx;
}
}
}
</style>