From c337b40f1052733c86696cf3dbeb44ad8bf2a73d Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 16 十月 2024 20:54:05 +0800
Subject: [PATCH] 1.商品评论优化

---
 sub_pages/customer/shop/shop.vue |  263 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 252 insertions(+), 11 deletions(-)

diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue
index 14f0a17..9a9bee1 100644
--- a/sub_pages/customer/shop/shop.vue
+++ b/sub_pages/customer/shop/shop.vue
@@ -159,12 +159,72 @@
 				</view>
 			</view>
 
-			<!-- <view v-show="flg==='1'" class="brand-info-1">
-				<trade :hidefooter="true" :supplierId="id" :catgoryTree="catgoryTree" v-if="catgoryTree" ref="trade">
-				</trade>
+			<view v-show="flg==='2'" class="brand-info-1">
+				<!-- <trade :hidefooter="true" :supplierId="id" :catgoryTree="catgoryTree" v-if="catgoryTree" ref="trade">
+				</trade> -->
+						
+				<view class="m-t-12" style="text-align: center;">
+					
+					<span style="">综合评分<span style="color: #F8353A; margin-left: 5px;">{{comment.avg}}</span> </span>
+					
+				</view>
+				<view class="m-t-12">
+				
+					<view v-for="(item,index) of commentList" >
+						<u-row justify="space-between"  >
+							<u-col>
+								<view style="display: flex; justify-content: flex-start; align-items: center;padding: 5rpx;">
+									<u--image v-if="item.anonymityFalg==1 " :showLoading="true"
+									src="https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png" width="30px" height="30px"  shape="circle"></u--image>
+									<u--image v-else :showLoading="true" :src="item.customerCover" width="30px" height="30px"  shape="circle"></u--image>
+									<span v-if="item.anonymityFalg==1 " >匿名用户</span>
+									<span v-else>{{item.customerName}}</span>
+								</view>
+							</u-col>
+						
+						<!-- 	<u-col span="4">
+								<view style="font-size: 12px; margin-right: 10px; text-align: right;">{{item.updateTime}}</view>
+							</u-col> -->
+						</u-row>
+						<u-row justify="space-between"   class="flower-comment">
+							<u-col span="2"></u-col>
+							<u-col span="10">
+								<view class="rate">
+									<u-rate count="5" v-model="item.commentGrade" readonly size="30"></u-rate>
+									<view style="font-size: 12px; margin-right: 10px; text-align: right;">{{item.updateTime}}</view>
+								</view>
+								<view> 		
+									<view>
+										<span class="flower-unit" >{{item.flowerName}} &nbsp; {{item.flowerLevel}}</span>
+										<span class="comment">
+											{{item.comment}}
+										</span>
+									</view>
+									<view class="img-v" >
+									<!-- 	<u--image v-for="(commentImg,index2) of item.commentImagesList" :key="index2" class="comment-img" 
+										:showLoading="true" :src="commentImg"></u--image> -->
+										
+										<image v-for="(commentImg,index2) of item.commentImagesList" :key="index2" :src="commentImg" class="comment-img" @click="previewImg(commentImg)"></image>
+									</view>
+								
+								 </view>
+								 <!-- 平台回复 -->
+								 <view class="comment-replay" v-if="item.replayContent"> 
+									平台回复:{{item.replayContent}}
+								 </view>
+							</u-col>
+						</u-row>
+						
+					</view>
+					
+					
+				
+				
+				</view>
+				
 			</view>
-			 -->
-			<view v-if="flg==='2'" class="brand-info-3">
+			
+			<view v-if="flg==='3'" class="brand-info-3">
 				<view class="title">
 					基础信息
 				</view>
@@ -252,6 +312,16 @@
 		},
 		data() {
 			return {
+				comment:{
+					avg:0,
+					commentAmount:0,
+				},
+				commentList:[],
+				commentPage:{
+					size: 10,
+					current: 1,
+					total: 0,
+				},
 				// search_flow: '',
 				flg: '0',
 				tabs: [{
@@ -260,9 +330,9 @@
 					{
 						name: '分类'
 					},
-					// {
-					// 	name: '评价'
-					// },
+					{
+						name: '评价'
+					},
 					{
 						name: '商家'
 					},
@@ -278,6 +348,7 @@
 					level: '',
 					name: '',
 					categoryRoot: '',
+					
 				},
 				level_show: false,
 				level_columns: [
@@ -287,7 +358,8 @@
 				order_show: false,
 				order_columns: [
 					[]
-				]
+				],
+				
 			}
 		},
 		onShow() {
@@ -300,9 +372,19 @@
 			}
 			await this.refreshList('post')
 			uni.stopPullDownRefresh()
-
+			
+			if(this.flg=="2"){
+				// 评论相关下拉刷新
+				this.getCommentsStatis()
+				
+				this.commentList=[]
+				this.commentPage.current=1
+				this.getComments()
+			}
+			
 		},
 		onLoad(options) {
+			
 			this.id = options.id || ''
 			this.page.size = 300
 			if (this.id) {
@@ -335,6 +417,11 @@
 					value: ''
 				})
 			})
+			
+			
+			this.getCommentsStatis()
+			
+			
 		},
 		// #ifdef PUB_CUSTOMER
 		onShareAppMessage() {
@@ -361,11 +448,115 @@
 		},
 		// #endif
 		onReachBottom() {
+			console.log("下拉")
 			// if (this.flg === '0') {
 			// 	this.getMore('post')
 			// }
+			if (this.flg ==2) {
+				// debugger;
+				// this.listApi="/api/v2/flower-comment/page"
+				// this.query={
+				// 	supplierId:this.id 
+				// }
+				// this.getMore()
+				this.commentPage.current++
+				this.getComments()
+			}
 		},
 		methods: {
+			
+			async getCommentsStatis() {
+				{
+					this.$message.showLoading()
+			
+					const {
+						code,
+						data
+					} = await this.$http.request('get', `/api/v2/flower-comment/statis/${this.id}`, {
+						params: {}
+					})
+					if (code === 0) {
+						this.comment=data
+						this.tabs[2].name=`评价(${this.comment.commentAmount})`
+					}
+			
+					this.$message.hideLoading()
+				}
+			
+			},
+			
+			async getComments() {
+			
+				{
+					this.$message.showLoading()
+					const params={
+						l:0,
+						supplierId:this.id ,
+						...this.commentPage,
+					}
+					const {
+						code,
+						data
+					} = await this.$http.request('get', `/api/v2/flower-comment/page`, {
+						params: params
+					})
+					if (code === 0) {
+						// this.commentList=data.records
+						this.commentPage.current=data.current
+						this.commentPage.pages=data.pages
+						this.commentPage.size=data.size
+						this.commentPage.total=data.total
+						// this.commentList = data.records.map(item => {
+						//   return {
+						//     ...item,
+						//     commentImagesList: item.commentImages ? JSON.parse(item.commentImages) : [] // 将字符串转换成数组
+						//   };
+						// });
+						data.records.forEach(item => {
+						    const commentImagesList = item.commentImages ? JSON.parse(item.commentImages) : [];
+						    const existingCommentIndex = this.commentList.findIndex(comment => comment.id === item.id);
+						    
+						    if (existingCommentIndex !== -1) {
+						        // 更新已存在的评论
+						        this.commentList[existingCommentIndex] = {
+						            ...this.commentList[existingCommentIndex],
+						            ...item,
+						            commentImagesList,
+									updateTime: item.updateTime ? this.formatUpdateTime(item.updateTime) : null
+						        };
+						    } else {
+						        // 新增评论
+						        this.commentList.push({
+						            ...item,
+						            commentImagesList,
+									updateTime: item.updateTime ? this.formatUpdateTime(item.updateTime) : null
+						        });
+						    }
+							console.log("评论列表:")
+							console.log(this.commentList)
+						 });
+
+					}
+			
+					this.$message.hideLoading()
+				}
+			
+			},
+			formatUpdateTime(time) {
+		
+			    if (!time) return ''; // 如果时间为空,直接返回空字符串
+			    const date = new Date(time);
+			
+			    // 格式化为 "YYYY-MM-DD HH:mm" 形式
+			    const year = date.getFullYear();
+			    const month = (date.getMonth() + 1).toString().padStart(2, '0');
+			    const day = date.getDate().toString().padStart(2, '0');
+			    const hours = date.getHours().toString().padStart(2, '0');
+			    const minutes = date.getMinutes().toString().padStart(2, '0');
+			
+			    return `${year}-${month}-${day} ${hours}:${minutes}`;
+			},
+			
 			getList_after() {
 				if (this.list) {
 					for (var item of this.list) {
@@ -482,6 +673,12 @@
 					}
 
 				}
+			
+				if(flg=="2"){
+					this.getCommentsStatis()
+					this.getComments()
+				}
+				
 				this.flg = '' + flg
 				//如果没有加载数据,需要加载一下
 
@@ -758,11 +955,55 @@
 				.input {
 
 					background-color: #fff !important;
-
+					
 					border-radius: 8rpx;
 				}
 
 			}
 		}
+		.flower-comment{
+			padding:10px;
+			line-height: 1.5;
+			
+			.comment{
+				margin: 10px;
+				font-size: 12rpx; 
+			}
+			
+		}
+		
+		.rate{
+			display: flex;
+			justify-content: space-between; 
+			margin:10px 10px 10px 0px;
+		}
+		
+		.img-v{
+			margin:10px;
+			display: flex;
+			flex-wrap: wrap;
+			.comment-img{
+				margin:10px; 
+				width:80px;; 
+				height:80px;
+			}
+		}
+		
+		.comment-replay{
+			background-color: #F6F6F6;
+			color: #6582B6;
+			margin-top:10rpx;
+			padding: 10rpx;
+		}
+		
+		.flower-unit{
+			color:#3E9FFB;
+			border: 1rpx solid #3E9FFB; 
+			margin:10px;
+			margin-left:0px;
+			padding-left: 5rpx;
+			padding-right: 5rpx;
+			// font-size: 12px; 
+		}
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3