166 lines
3.1 KiB
Vue
166 lines
3.1 KiB
Vue
<template>
|
||
<view
|
||
:class="{
|
||
reply: true,
|
||
noPic: !data?.pics
|
||
}"
|
||
>
|
||
<view class="reply-content">
|
||
<view class="reply-warp">
|
||
<view class="reply-user">
|
||
<view class="reply-user-pic">
|
||
<image
|
||
class="img"
|
||
:src="data.avatar"
|
||
@click="doPreviewImage(0,[data.avatar])"
|
||
/>
|
||
</view>
|
||
<view class="reply-user-name">
|
||
<view class="name">
|
||
{{ data.nickname }}
|
||
</view>
|
||
<view class="productScore">
|
||
<uv-rate
|
||
count="5"
|
||
:value="data.productScore"
|
||
readonly
|
||
size="26rpx"
|
||
gutter="1"
|
||
active-color="#ee6d46"
|
||
inactive-color="#999999"
|
||
></uv-rate>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="reply-time">{{ data.createTime }}</view>
|
||
</view>
|
||
<view class="reply-text">
|
||
{{ data.comment }}
|
||
</view>
|
||
<view
|
||
class="reply-pic flex flex-ai__center"
|
||
v-if="data.pics && data.pics.filter(item=>!!item).length>0"
|
||
>
|
||
<template
|
||
v-for="(pic,index) in data.pics.filter(item=>!!item)"
|
||
:key="index"
|
||
>
|
||
<image
|
||
class="image"
|
||
:src="pic"
|
||
@click="doPreviewImage(index, data.pics)"
|
||
/>
|
||
</template>
|
||
</view>
|
||
<view class="reply-sku">规格:{{data.sku}}</view>
|
||
</view>
|
||
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { toRefs } from 'vue';
|
||
import { useImage } from "@/hooks/useImage";
|
||
|
||
const props = defineProps(['data'])
|
||
|
||
const {data} = toRefs(props);
|
||
|
||
const {preview} = useImage()
|
||
|
||
function doPreviewImage(current, urls) {
|
||
preview({
|
||
current,
|
||
urls,
|
||
})
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.reply {
|
||
border-top: 1rpx solid #E6E6E6;
|
||
padding-bottom: 10rpx;
|
||
&-content {
|
||
padding: 32rpx 34rpx;
|
||
border-right: 0;
|
||
flex: 1;
|
||
font-size: 30rpx;
|
||
color: #333333;
|
||
|
||
.reply-warp {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
|
||
.reply-time {
|
||
font-size: 24rpx;
|
||
line-height: 1em;
|
||
color: #999999;
|
||
}
|
||
}
|
||
}
|
||
|
||
&.noPic {
|
||
.reply-content {
|
||
}
|
||
}
|
||
|
||
&-pic {
|
||
//width: 180rpx;
|
||
//height: 180rpx;
|
||
//background: #FFFFFF;
|
||
//border-radius: 15rpx;
|
||
padding: 0 24rpx;
|
||
}
|
||
|
||
&-user {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 16rpx;
|
||
|
||
&-pic {
|
||
border-radius: 50%;
|
||
margin-right: 20rpx;
|
||
|
||
.img {
|
||
width: 70rpx;
|
||
height: 70rpx;
|
||
display: block;
|
||
border-radius: 50%;
|
||
|
||
}
|
||
}
|
||
|
||
&-name {
|
||
line-height: 40rpx;
|
||
font-size: 28rpx;
|
||
color: #333333;
|
||
}
|
||
}
|
||
|
||
&-text {
|
||
margin-top: 30rpx;
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
&-sku{
|
||
font-size: 24rpx;
|
||
line-height: 33rpx;
|
||
color: #999999;
|
||
margin-top: 20rpx;
|
||
}
|
||
}
|
||
|
||
.reply-pic {
|
||
gap: 20rpx;
|
||
margin: 20rpx 0;
|
||
flex-wrap: wrap;
|
||
padding: 0;
|
||
.image {
|
||
width: 212rpx;
|
||
height: 212rpx;
|
||
}
|
||
}
|
||
</style>
|