Browse Source

商城修改评价

zhuxiuping 2 years ago
parent
commit
30d7f467e8

+ 1 - 1
packageShang/common/common.scss

@@ -94,7 +94,7 @@ view[class*='border-radius']{ overflow: hidden;}
 
 
 /* 背景色 */
 /* 背景色 */
 .bg-main { background: #fff; } .bg-drak { background: #f5f5f5; } .bg-base{ background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;line-height: 71rpx;font-size: 24rpx;margin:-60rpx 0 0 562rpx; } 
 .bg-main { background: #fff; } .bg-drak { background: #f5f5f5; } .bg-base{ background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;line-height: 71rpx;font-size: 24rpx;margin:-60rpx 0 0 562rpx; } 
-.bg-base-sou{background-color:rgba(36, 147, 241, 1) ; color: rgba(255, 255, 255, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;text-align: center;line-height: 71rpx;}
+.bg-base-sou{background-color:rgba(36, 147, 241, 1) ; color: rgba(255, 255, 255, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;text-align: center;line-height: 51rpx;}
 .bg-base-tuikuan{ background-color: rgba(36, 147, 241, 1); color: rgba(255, 255, 255, 1);width: 158rpx;height: 71rpx;font-size: 24rpx; }
 .bg-base-tuikuan{ background-color: rgba(36, 147, 241, 1); color: rgba(255, 255, 255, 1);width: 158rpx;height: 71rpx;font-size: 24rpx; }
 .bg-base-succ{background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;}
 .bg-base-succ{background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;}
 .bg-base-ping{background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;}
 .bg-base-ping{background-color: rgba(255, 255, 255, 1); color: rgba(36, 147, 241, 1);width: 158rpx;height: 71rpx;font-size: 24rpx;}

+ 94 - 44
packageShang/pages/goods/goods-evaluate.vue

@@ -12,18 +12,26 @@
 		<view class="evaluate-area">
 		<view class="evaluate-area">
 			<view class="padding-lr padding-top bg-main">
 			<view class="padding-lr padding-top bg-main">
 				<view class="eva-box dflex-s padding-bottom-lg" v-for="(item, index) in evaluateDatas" :key="index">
 				<view class="eva-box dflex-s padding-bottom-lg" v-for="(item, index) in evaluateDatas" :key="index">
-					<image class="portrait border-radius-c" :src="item.member_headimg"></image>
+					<image class="portrait border-radius-c" :src="item.userImg"></image>
 					<view class="right-area flex1 padding-left-sm">
 					<view class="right-area flex1 padding-left-sm">
 						<view class="dflex-b ft-dark">
 						<view class="dflex-b ft-dark">
 							<view class="dflex">
 							<view class="dflex">
-								<text class="name margin-right">{{ item.member_name }}</text>
-								<use-rate :value="item.review_cnt" disabled></use-rate>
+								<text class="name margin-right">{{ item.createBy }}</text>
+								<use-rate :value="item.reviewCnt" disabled></use-rate>
 							</view>
 							</view>
-							<text class="time fs-xs">{{ $api.format(item.create_time, 'yyyy-MM-dd') }}</text>
+							<text class="time fs-xs">{{ $api.format(item.createTime, 'yyyy-MM-dd') }}</text>
 						</view>
 						</view>
-						<view class="fs-sm ft-main padding-top-xs padding-bottom-sm">{{ item.review_content }}</view>
+						<view class="fs-sm ft-main padding-top-xs padding-bottom-sm">{{ item.reviewContent }}</view>
 						<view class="dflex dflex-wrap-w">
 						<view class="dflex dflex-wrap-w">
-							<image v-for="(img, i) in item.review_imgs" :src="img" :key="i" mode="widthFix" class="" @click="preview(item.imgs, img)"></image>
+							<image
+								class="border-radius-xs"
+								v-if="item.reviewImgs.indexOf(',') != -1"
+								mode="aspectFill"
+								:lazy-load="true"
+								:src="item.reviewImgs.substring(0, item.reviewImgs.indexOf(','))"
+								 @click="preview(item.reviewImgs.substring(0, item.reviewImgs.indexOf(',')))"
+							></image>
+							<image class="border-radius-xs" v-else mode="aspectFill" :lazy-load="true" :src="item.reviewImgs" @click="preview(item.reviewImgs)"></image>
 						</view>
 						</view>
 						<view class="">
 						<view class="">
 							<text class="fs-xs ft-dark">{{ item.goods_type || '套餐1' }}</text>
 							<text class="fs-xs ft-dark">{{ item.goods_type || '套餐1' }}</text>
@@ -35,11 +43,17 @@
 	</view>
 	</view>
 </template>
 </template>
 <script>
 <script>
+import {pingjia } from '../../utils/api_goods.js'
 export default {
 export default {
 	data() {
 	data() {
 		return {
 		return {
 			// 评价状态
 			// 评价状态
-			stateDatas: [],
+			stateDatas: [
+				{name:'全部',cnt:''},
+				{name:'好评',cnt:''},
+				{name:'中评',cnt:''},
+				{name:'差评',cnt:''},
+			],
 			// 评价数据
 			// 评价数据
 			evaluateDatas: [],
 			evaluateDatas: [],
 			// 商品ID
 			// 商品ID
@@ -55,54 +69,90 @@ export default {
 	},
 	},
 	methods: {
 	methods: {
 		loadData() {
 		loadData() {
-			const $ = this.$dbcmd.aggregate;
-			this.$db['usemall-goods-comment']
-				.collection()
-				.aggregate()
-				.match({
-					goods_id: $.eq(this.goods_id),
-					state: '显示'
-				})
-				.group({
-					_id: '$review_type',
-					num: $.sum(1)
-				})
-				.end()
-				.then(res => {
-					let __stateDatas = [];
-					let total = 0;
-					res.result.data.forEach(x => {
-						__stateDatas.push({ name: x._id, cnt: x.num });
-						total += x.num;
-					});
+			this.stateDatas[0].cnt=0
+			this.stateDatas[1].cnt=0
+			this.stateDatas[2].cnt=0
+			this.stateDatas[3].cnt=0
+			this.evaluateDatas=[]
+			if(this.state=='全部'){
+				var type=''
+			}else if(this.state=='好评'){
+				var type='3'
+			}else if(this.state=='中评'){
+				var type='2'
+			}else if(this.state=='差评'){
+				var type='1'
+			}
+			//商品评价
+			var data = '?goodsId=' + this.goods_id+'&reviewType='+type
+			pingjia(data).then((res) => {
+				console.log('评价', res)
+				if (res.success) {
+					// 商品评价
+					this.evaluateDatas = res.data.list
+					if (res.data.evaluate_cnt) this.evaluateTitle = `评价(${res.data.evaluate_cnt})`
+					this.stateDatas[0].cnt=this.evaluateDatas.length
+					for(var i=0;i<this.evaluateDatas.length;i++){
+						if(this.evaluateDatas[i].reviewType=='3'){
+							this.stateDatas[1].cnt++
+						}else if(this.evaluateDatas[i].reviewType=='2'){
+							this.stateDatas[2].cnt++
+						}else if(this.evaluateDatas[i].reviewType=='1'){
+							this.stateDatas[3].cnt++
+						}
+					}
+				}
+			})
+			
+			// const $ = this.$dbcmd.aggregate;
+			// this.$db['usemall-goods-comment']
+			// 	.collection()
+			// 	.aggregate()
+			// 	.match({
+			// 		goods_id: $.eq(this.goods_id),
+			// 		state: '显示'
+			// 	})
+			// 	.group({
+			// 		_id: '$review_type',
+			// 		num: $.sum(1)
+			// 	})
+			// 	.end()
+			// 	.then(res => {
+			// 		let __stateDatas = [];
+			// 		let total = 0;
+			// 		res.result.data.forEach(x => {
+			// 			__stateDatas.push({ name: x._id, cnt: x.num });
+			// 			total += x.num;
+			// 		});
 
 
-					this.stateDatas = [{ name: '全部', cnt: total }, ...__stateDatas];
-				});
+			// 		this.stateDatas = [{ name: '全部', cnt: total }, ...__stateDatas];
+			// 	});
 
 
-			this.$db['usemall-goods-comment']
-				.where({ 
-					goods_id: this.goods_id,
-					state: '显示'
-				})
-				.whereif(this.state != '全部', { review_type: this.state })
-				.tolist({ rows: 30, orderby: 'create_time desc' })
-				.then(res => {
-					if (res.code === 200) {
-						this.evaluateDatas = res.datas;
-					}
-				});
+			// this.$db['usemall-goods-comment']
+			// 	.where({ 
+			// 		goods_id: this.goods_id,
+			// 		state: '显示'
+			// 	})
+			// 	.whereif(this.state != '全部', { review_type: this.state })
+			// 	.tolist({ rows: 30, orderby: 'create_time desc' })
+			// 	.then(res => {
+			// 		if (res.code === 200) {
+			// 			this.evaluateDatas = res.datas;
+			// 		}
+			// 	});
 		},
 		},
 		change(options) {
 		change(options) {
 			this.state = options.name;
 			this.state = options.name;
 
 
 			this.loadData();
 			this.loadData();
 		},
 		},
-		preview(imgs, cur) {
+		preview(imgs) {
+			console.log(imgs)
 			if (!imgs) return;
 			if (!imgs) return;
 
 
 			uni.previewImage({
 			uni.previewImage({
-				urls: imgs,
-				current: cur,
+				current: 0,
+				urls: [imgs],
 				longPressActions: {
 				longPressActions: {
 					itemList: ['发送给朋友', '保存图片', '收藏'],
 					itemList: ['发送给朋友', '保存图片', '收藏'],
 					success: function(data) {
 					success: function(data) {

+ 10 - 9
packageShang/pages/goods/goods.vue

@@ -166,7 +166,7 @@
 
 
 		<!-- 05. 评价区 -->
 		<!-- 05. 评价区 -->
 		<view class="evaluate-area" v-if="evaluateDatas.length > 0">
 		<view class="evaluate-area" v-if="evaluateDatas.length > 0">
-			<use-list-title :title="evaluateTitle" tip="" color="#ff6a6c" iconfont=" " @goto="toevaluate"></use-list-title>
+			<use-list-title :title="evaluateTitle" tip="全部评价" color="#ff6a6c" iconfont=" " @goto="toevaluate"></use-list-title>
 			<view class="padding-lr bg-main">
 			<view class="padding-lr bg-main">
 				<view class="eva-box dflex-s padding-bottom-lg" v-for="(item, index) in evaluateDatas" :key="index">
 				<view class="eva-box dflex-s padding-bottom-lg" v-for="(item, index) in evaluateDatas" :key="index">
 					<image class="portrait border-radius-c" :src="item.userImg"></image>
 					<image class="portrait border-radius-c" :src="item.userImg"></image>
@@ -194,9 +194,10 @@
 								v-if="item.reviewImgs.indexOf(',') != -1"
 								v-if="item.reviewImgs.indexOf(',') != -1"
 								mode="aspectFill"
 								mode="aspectFill"
 								:lazy-load="true"
 								:lazy-load="true"
-								:src="item.reviewImgs.substring(0, item.reviewImgs.indexOf(','))"
+								:src="item.reviewImgs.substring(0, item.reviewImgs.indexOf(','))"
+								@click="preview(item.reviewImgs.substring(0, item.reviewImgs.indexOf(',')))"
 							></image>
 							></image>
-							<image class="border-radius-xs" v-else mode="aspectFill" :lazy-load="true" :src="item.reviewImgs"></image>
+							<image class="border-radius-xs" v-else mode="aspectFill" :lazy-load="true" :src="item.reviewImgs" @click="preview(item.reviewImgs)"></image>
 						</view>
 						</view>
 						<view class="">
 						<view class="">
 							<text class="fs-xs ft-dark">{{ item.goods_type || '套餐1' }}</text>
 							<text class="fs-xs ft-dark">{{ item.goods_type || '套餐1' }}</text>
@@ -408,7 +409,7 @@ export default {
 
 
 		return {
 		return {
 			title: _this.goods.share_title,
 			title: _this.goods.share_title,
-			path: `/pages/goods/goods?id=${this.id}&mid=${mid}`, //这里设定都是以"/page"开头,并拼接好传递的参数
+			path: `/packageShang/pages/goods/goods?id=${this.id}&mid=${mid}`, //这里设定都是以"/page"开头,并拼接好传递的参数
 			success: function (res) {
 			success: function (res) {
 				// 转发成功
 				// 转发成功
 				console.log('转发成功', res)
 				console.log('转发成功', res)
@@ -543,7 +544,7 @@ export default {
 			})
 			})
 
 
 			//商品评价
 			//商品评价
-			var data = '?goodsId=' + _self.id
+			var data = '?goodsId=' + _self.id+'&curPage=1&pageSize=3'
 			pingjia(data).then((res) => {
 			pingjia(data).then((res) => {
 				console.log('评价', res)
 				console.log('评价', res)
 				if (res.success) {
 				if (res.success) {
@@ -644,12 +645,12 @@ export default {
 			this.id = arr[0]
 			this.id = arr[0]
 		},
 		},
 		// 图片预览
 		// 图片预览
-		preview(imgs, cur) {
+		preview(imgs) {
 			if (!imgs) return
 			if (!imgs) return
 
 
 			uni.previewImage({
 			uni.previewImage({
-				urls: imgs,
-				current: cur,
+				urls: [imgs],
+				current: 0,
 				longPressActions: {
 				longPressActions: {
 					itemList: ['发送给朋友', '保存图片', '收藏'],
 					itemList: ['发送给朋友', '保存图片', '收藏'],
 					success: function (data) {
 					success: function (data) {
@@ -763,7 +764,7 @@ export default {
 		// 评论
 		// 评论
 		toevaluate() {
 		toevaluate() {
 			uni.navigateTo({
 			uni.navigateTo({
-				url: `/pages/goods/goods-evaluate?id=${this.id}`
+				url: `/packageShang/pages/goods/goods-evaluate?id=${this.id}`
 			})
 			})
 		},
 		},
 		// 首页
 		// 首页

+ 2 - 2
packageShang/pages/tabbar/cart.vue

@@ -216,7 +216,7 @@ export default {
 			goodslistlimit(data).then((res) => {
 			goodslistlimit(data).then((res) => {
 				if (res.success) {
 				if (res.success) {
 					var total = res.data.totalCount
 					var total = res.data.totalCount
-					data = '?hot=1&pageSize=' + total
+					data = '?hot=1&state=1&pageSize=' + total
 					goodslistlimit(data).then((res) => {
 					goodslistlimit(data).then((res) => {
 						if (res.success) {
 						if (res.success) {
 							res.data.list.forEach((data) => {
 							res.data.list.forEach((data) => {
@@ -506,7 +506,7 @@ page {
 	}
 	}
 
 
 	.del-btn {
 	.del-btn {
-		bottom: 40rpx;
+		bottom: 30rpx;
 		right: 30rpx;
 		right: 30rpx;
 		width: 70rpx;
 		width: 70rpx;
 		height: 70rpx;
 		height: 70rpx;