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