import React, { useState } from 'react'
import { View, Text, ScrollView, Swiper, SwiperItem } from '@tarojs/components'
import Taro from '@tarojs/taro'
definePageConfig({
navigationBarTitleText: '评价详情',
})
const EvaluateDetailPage: React.FC = () => {
const [evaluation, setEvaluation] = useState({
id: 1,
goodsId: 1,
goodsName: '高品质保温杯',
goodsImage: '',
score: 5,
content: '质量很好,保温效果非常棒!物流也很快,包装严实,非常满意的一次购物体验。\n\n杯子的外观设计很时尚,颜色也很正,同事们都问我在哪里买的。保温效果真的很好,早上装的开水,到下午还是温热的。\n\n唯一的小缺点就是盖子有点紧,不过用多了应该会好一些。总体来说非常满意,推荐大家购买!',
images: ['', '', ''],
isAnonymous: false,
userName: '张***',
createTime: '2026-05-10 14:30:00',
likes: 12,
isLiked: false,
replies: [
{
id: 1,
content: '感谢您的好评!我们会继续努力提供优质产品和服务。',
createTime: '2026-05-10 15:00:00',
isOfficial: true,
},
],
})
// 渲染星星
const renderStars = (score: number) => {
const stars = []
for (let i = 1; i <= 5; i++) {
stars.push(
★
)
}
return stars
}
// 处理点赞
const handleLike = () => {
setEvaluation(prev => ({
...prev,
isLiked: !prev.isLiked,
likes: prev.isLiked ? prev.likes - 1 : prev.likes + 1,
}))
Taro.showToast({ title: evaluation.isLiked ? '已取消点赞' : '点赞成功', icon: 'success' })
}
// 图片预览
const handleImagePreview = (index: number) => {
// 这里应该调用 Taro.previewImage
Taro.showToast({ title: `查看第${index + 1}张图片`, icon: 'none' })
}
return (
{/* 用户信息 */}
{evaluation.isAnonymous ? '匿' : evaluation.userName[0]}
{evaluation.userName}
{renderStars(evaluation.score)}
{evaluation.createTime.split(' ')[0]}
{/* 商品信息 */}
Taro.navigateTo({ url: `/pages/shop/product-detail?id=${evaluation.goodsId}` })}
>
🛍️
{evaluation.goodsName}
查看商品详情
→
{/* 评价内容 */}
{evaluation.content}
{/* 评价图片 */}
{evaluation.images && evaluation.images.length > 0 && (
{evaluation.images.map((_, index) => (
🖼️
评价图片 {index + 1}
))}
{evaluation.images.map((_, index) => (
))}
)}
{/* 商家回复 */}
{evaluation.replies && evaluation.replies.length > 0 && (
商家回复
{evaluation.replies.map(reply => (
{reply.isOfficial && (
官方
)}
{reply.createTime}
{reply.content}
))}
)}
{/* 底部操作栏 */}
{evaluation.isLiked ? '❤️' : '🤍'}
{evaluation.likes}
Taro.showToast({ title: '收藏成功', icon: 'success' })}>
⭐
收藏
Taro.showToast({ title: '举报已提交', icon: 'success' })}>
⚠️
举报
Taro.navigateTo({ url: `/pages/shop/product-detail?id=${evaluation.goodsId}` })}
>
查看商品
)
}
export default EvaluateDetailPage