hrjy 4 years ago
parent
commit
0d425b9163

+ 5 - 3
pages.json

@@ -269,7 +269,9 @@
 		}, {
 		}, {
 			"path": "pages/cart/cart",
 			"path": "pages/cart/cart",
 			"style": {
 			"style": {
-				"navigationBarTitleText": "购物车"
+				"navigationBarTitleText": "购物车",
+				"navigationBarBackgroundColor": "#438BED",
+				"navigationBarTextStyle": "white"
 			}
 			}
 		},
 		},
 		
 		
@@ -453,10 +455,10 @@
 						"searchInput": {
 						"searchInput": {
 							"backgroundColor": "rgba(231, 231, 231,.7)",
 							"backgroundColor": "rgba(231, 231, 231,.7)",
 							"borderRadius": "16px",
 							"borderRadius": "16px",
-							"placeholder": "商品搜索",
+							"placeholder": "输入关键字",
 							"disabled": true,
 							"disabled": true,
 							"placeholderColor": "#606266",
 							"placeholderColor": "#606266",
-							"align": "left"
+							"align": "center"
 						}
 						}
 					}
 					}
 				},
 				},

+ 166 - 31
pages/cart/cart.vue

@@ -13,10 +13,22 @@
 			</view>
 			</view>
 		</view>
 		</view>
 		<view v-else>
 		<view v-else>
+			<view class="header">
+				<view class="">
+					购物车共3件商品
+				</view>
+				<view class=""  @click="allChecked ? clearCart() : ''">
+					清空购物车
+				</view>
+			</view>
 			<!-- 列表 -->
 			<!-- 列表 -->
 			<view class="cart-list">
 			<view class="cart-list">
 				<block v-for="(item, index) in cartList" :key="item.id">
 				<block v-for="(item, index) in cartList" :key="item.id">
 					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
 					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
+						<view class="iconfont iconroundcheckfill checkbox" 
+						 :class="{ checked: item.checked }" @click="check('item', index)">
+							
+						</view>
 						<view class="image-wrapper">
 						<view class="image-wrapper">
 							<image
 							<image
 								:src="item.productInfo.image"
 								:src="item.productInfo.image"
@@ -26,13 +38,32 @@
 								@load="onImageLoad('cartList', index)"
 								@load="onImageLoad('cartList', index)"
 								@error="onImageError('cartList', index)"
 								@error="onImageError('cartList', index)"
 							></image>
 							></image>
-							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view>
+							<!-- <view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view> -->
 						</view>
 						</view>
 						<view class="item-right">
 						<view class="item-right">
-							<text class="clamp title">{{ item.productInfo.store_name }}</text>
-							<text class="attr">{{ item.attr_val }}</text>
-							<text class="price">¥{{ item.productInfo.price }}</text>
-							<uni-number-box
+							<view class="item-top">
+								<text class="title">{{ item.productInfo.store_name }}</text>
+								<text class="attr">{{ item.attr_val }}</text>
+							</view>
+							
+							<view class="item-footer">
+								<view class="price">¥{{ item.productInfo.price }}</view>
+								<view class="num">
+									<view class="del"@click="changeNum('del',index,item)">
+										-
+									</view>
+									<view class="number">
+										<!-- <input type="number"
+										v-model="item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num"/> -->
+										{{ item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num }}
+									</view>
+									<view class="add" @click="changeNum('add',index,item)">
+										+
+									</view>
+								</view>
+							</view>
+							
+							<!-- <uni-number-box
 								class="step"
 								class="step"
 								:min="1"
 								:min="1"
 								:max="item.productInfo.stock"
 								:max="item.productInfo.stock"
@@ -41,9 +72,9 @@
 								:isMin="item.cart_num === 1"
 								:isMin="item.cart_num === 1"
 								:index="index"
 								:index="index"
 								@eventChange="numberChange"
 								@eventChange="numberChange"
-							></uni-number-box>
+							></uni-number-box> -->
 						</view>
 						</view>
-						<text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text>
+						<!-- <text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text> -->
 					</view>
 					</view>
 				</block>
 				</block>
 			</view>
 			</view>
@@ -51,17 +82,21 @@
 			<view class="action-section">
 			<view class="action-section">
 				<view class="checkbox">
 				<view class="checkbox">
 					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
 					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
-					<view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view>
+					<view class="text">全选</view>
+					<!-- <view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view> -->
 				</view>
 				</view>
 				<view class="total-box">
 				<view class="total-box">
-					<text class="price">¥{{ total }}</text>
+					<text class="price"><text style="color: #333333;">合计:</text>¥{{ total }}</text>
 					<!-- <text class="coupon">
 					<!-- <text class="coupon">
 						已优惠
 						已优惠
 						<text>74.35</text>
 						<text>74.35</text>
 					</text> -->
 					</text> -->
 				</view>
 				</view>
-				<button type="primary" class="no-border confirm-btn" @click="createOrder">去结算</button>
+				<view class="button" @click="createOrder">
+					去结算 ({{choseNum}})
+				</view>
+				<!-- <button type="primary" class="no-border confirm-btn"></button> -->
 			</view>
 			</view>
 		</view>
 		</view>
 	</view>
 	</view>
@@ -81,7 +116,8 @@ export default {
 			total: 0, //总价格
 			total: 0, //总价格
 			allChecked: false, //全选状态  true|false
 			allChecked: false, //全选状态  true|false
 			empty: false, //空白页现实  true|false
 			empty: false, //空白页现实  true|false
-			cartList: []
+			cartList: [],
+			choseNum: 0,
 		};
 		};
 	},
 	},
 	onShow() {
 	onShow() {
@@ -163,11 +199,22 @@ export default {
 			}
 			}
 			this.calcTotal(type);
 			this.calcTotal(type);
 		},
 		},
+		changeNum(type,index,item) {
+			const cartList = this.cartList[index]
+			if(type == "add") {
+				cartList.cart_num >= cartList.productInfo.stock || cartList.cart_num++
+			}else if(type == "del") {
+				cartList.cart_num <= 1 || cartList.cart_num--
+			}
+			const data = {
+				number: cartList.cart_num,
+				id: item.id
+			}
+			this.numberChange(data)
+		},
 		//数量
 		//数量
 		numberChange(data) {
 		numberChange(data) {
-			let arr = this.cartList[data.index];
-			arr.cart_num = data.number;
-			getCartNum({ id: arr.id, number: data.number })
+			getCartNum({ id: data.id, number: data.number })
 				.then(e => {
 				.then(e => {
 					console.log(e);
 					console.log(e);
 				})
 				})
@@ -209,6 +256,7 @@ export default {
 		},
 		},
 		//计算总价
 		//计算总价
 		calcTotal() {
 		calcTotal() {
+			let num = 0
 			let list = this.cartList;
 			let list = this.cartList;
 			if (list.length === 0) {
 			if (list.length === 0) {
 				this.empty = true;
 				this.empty = true;
@@ -218,12 +266,15 @@ export default {
 			let checked = true;
 			let checked = true;
 			list.forEach(item => {
 			list.forEach(item => {
 				if (item.checked === true) {
 				if (item.checked === true) {
+					num++
+					
 					total += item.productInfo.price * item.cart_num;
 					total += item.productInfo.price * item.cart_num;
 				} else if (checked === true) {
 				} else if (checked === true) {
 					checked = false;
 					checked = false;
 				}
 				}
 			});
 			});
 			this.allChecked = checked;
 			this.allChecked = checked;
+			this.choseNum = num
 			this.total = Number(total.toFixed(2));
 			this.total = Number(total.toFixed(2));
 		},
 		},
 		//创建订单
 		//创建订单
@@ -245,6 +296,33 @@ export default {
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
+	.header {
+		// position: absolute;
+		// top: 0;
+		// width: 100%;
+		display: flex;
+		justify-content: space-between;
+		background-color: #fff;
+		padding: 30rpx;
+		margin-bottom: 20rpx;
+		z-index: 99;
+		view {
+			margin: auto 0;
+		}
+		view:nth-child(1) {
+			color: #333333;
+			font-weight: bold;
+			font-size: 30rpx;
+		}
+		view:nth-child(2) {
+			border: solid 1rpx #EF3A55;
+			color: #EF3A55;
+			border-radius: 50rpx;
+			padding: 10rpx;
+			font-weight: bold;
+			font-size: 28rpx;
+		}
+	}
 .container {
 .container {
 	padding-bottom: 134rpx;
 	padding-bottom: 134rpx;
 	background-color: $page-color-base;
 	background-color: $page-color-base;
@@ -281,10 +359,13 @@ export default {
 .cart-item {
 .cart-item {
 	display: flex;
 	display: flex;
 	position: relative;
 	position: relative;
-	padding: 30rpx 40rpx;
+	margin: 15rpx;
+	background-color: #fff;
+	padding: 20rpx;
+	border-radius: 10rpx;
 	.image-wrapper {
 	.image-wrapper {
-		width: 230rpx;
-		height: 230rpx;
+		width: 180rpx;
+		height: 180rpx;
 		flex-shrink: 0;
 		flex-shrink: 0;
 		position: relative;
 		position: relative;
 		image {
 		image {
@@ -292,9 +373,11 @@ export default {
 		}
 		}
 	}
 	}
 	.checkbox {
 	.checkbox {
-		position: absolute;
-		left: -16rpx;
-		top: -16rpx;
+		// position: absolute;
+		// left: -16rpx;
+		// top: -16rpx;
+		margin: auto 0;
+		margin-right: 20rpx;
 		z-index: 8;
 		z-index: 8;
 		font-size: 44rpx;
 		font-size: 44rpx;
 		line-height: 1;
 		line-height: 1;
@@ -304,8 +387,8 @@ export default {
 		border-radius: 50px;
 		border-radius: 50px;
 	}
 	}
 	.item-right {
 	.item-right {
-		display: flex;
-		flex-direction: column;
+		display: grid;
+		align-content: space-between;
 		flex: 1;
 		flex: 1;
 		overflow: hidden;
 		overflow: hidden;
 		position: relative;
 		position: relative;
@@ -317,6 +400,13 @@ export default {
 			height: 40rpx;
 			height: 40rpx;
 			line-height: 40rpx;
 			line-height: 40rpx;
 		}
 		}
+		.title {
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 1;
+		}
 		.attr {
 		.attr {
 			font-size: $font-sm + 2rpx;
 			font-size: $font-sm + 2rpx;
 			color: $font-color-light;
 			color: $font-color-light;
@@ -324,12 +414,40 @@ export default {
 			line-height: 50rpx;
 			line-height: 50rpx;
 		}
 		}
 		.price {
 		.price {
+			font-size: $font-base + 4rpx;
+			color: #EF3A55;
 			height: 50rpx;
 			height: 50rpx;
 			line-height: 50rpx;
 			line-height: 50rpx;
 		}
 		}
 		.step {
 		.step {
 			margin-top: 20rpx;
 			margin-top: 20rpx;
 		}
 		}
+		.item-footer {
+			display: flex;
+			justify-content: space-between;
+			.num {
+				display: flex;
+				view {
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+					text-align: center;
+					line-height: 40rpx;
+				}
+				.del {
+					border: solid 1rpx #767477;
+					color: #767477;
+					line-height: 30rpx;
+				}
+				.add {
+					color: #fff;
+					background-color: #438BED;
+				}
+				.number {
+					width: 70rpx;
+				}
+			}
+		}
 	}
 	}
 	.del-btn {
 	.del-btn {
 		padding: 4rpx 10rpx;
 		padding: 4rpx 10rpx;
@@ -338,26 +456,43 @@ export default {
 		color: $font-color-light;
 		color: $font-color-light;
 	}
 	}
 }
 }
+.button {
+	background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+	background-color: #438BED;
+	height: 70rpx;
+	width: 200rpx;
+	text-align: center;
+	line-height: 70rpx;
+	border-radius: 50rpx;
+	color: #fff;
+	font-size: 30rpx;
+}
 /* 底部栏 */
 /* 底部栏 */
 .action-section {
 .action-section {
 	/* #ifdef H5 */
 	/* #ifdef H5 */
-	margin-bottom: 100rpx;
+	margin-bottom: 70rpx;
 	/* #endif */
 	/* #endif */
 	position: fixed;
 	position: fixed;
-	left: 30rpx;
+	// left: 30rpx;
 	bottom: 30rpx;
 	bottom: 30rpx;
 	z-index: 95;
 	z-index: 95;
 	display: flex;
 	display: flex;
 	align-items: center;
 	align-items: center;
-	width: 690rpx;
-	height: 100rpx;
+	width: 100%;
+	height: 140rpx;
 	padding: 0 30rpx;
 	padding: 0 30rpx;
 	background: rgba(255, 255, 255, 0.9);
 	background: rgba(255, 255, 255, 0.9);
-	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	border-radius: 16rpx;
+	// box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+	// border-radius: 16rpx;
 	.checkbox {
 	.checkbox {
+		display: flex;
 		height: 52rpx;
 		height: 52rpx;
 		position: relative;
 		position: relative;
+		.text {
+			color: #767477;
+			margin-left: 10rpx;
+			margin-top: 4rpx;
+		}
 		.icon-checked-box {
 		.icon-checked-box {
 			border-radius: 50rpx;
 			border-radius: 50rpx;
 			background-color: #ffffff;
 			background-color: #ffffff;
@@ -370,7 +505,7 @@ export default {
 			color: $font-color-light;
 			color: $font-color-light;
 		}
 		}
 		.icon-checked {
 		.icon-checked {
-			color: $base-color;
+			color: #438BED;
 		}
 		}
 	}
 	}
 	.clear-btn {
 	.clear-btn {
@@ -401,7 +536,7 @@ export default {
 		padding-right: 40rpx;
 		padding-right: 40rpx;
 		.price {
 		.price {
 			font-size: $font-lg;
 			font-size: $font-lg;
-			color: $font-color-dark;
+			color: #EF3A55;
 		}
 		}
 		.coupon {
 		.coupon {
 			font-size: $font-sm;
 			font-size: $font-sm;
@@ -424,6 +559,6 @@ export default {
 /* 复选框选中状态 */
 /* 复选框选中状态 */
 .action-section .checkbox.checked,
 .action-section .checkbox.checked,
 .cart-item .checkbox.checked {
 .cart-item .checkbox.checked {
-	color: $base-color;
+	color: #438BED;
 }
 }
 </style>
 </style>

+ 82 - 22
pages/category/category.vue

@@ -1,15 +1,31 @@
 <template>
 <template>
 	<view class="content">
 	<view class="content">
 		<scroll-view scroll-y class="left-aside">
 		<scroll-view scroll-y class="left-aside">
-			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">{{ item.cate_name }}</view>
+			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">
+				{{ item.cate_name }}
+			</view>
 		</scroll-view>
 		</scroll-view>
 		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
 		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
 			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
 			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
 				<text class="s-item">{{ item.cate_name }}</text>
 				<text class="s-item">{{ item.cate_name }}</text>
 				<view class="t-list ">
 				<view class="t-list ">
 					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
 					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
-						<image :src="titem.pic"></image>
-						<text>{{ titem.cate_name }}</text>
+						<view class="">
+							<image :src="titem.pic"></image>
+						</view>
+						
+						<view class="titem-right">
+							<text>{{ titem.cate_name }}<br><text>跨店联盟洗护专属礼包</text></text>
+							<view class="titem-right-d">
+								<view class="price">
+									¥138
+								</view>
+								<view class="button">
+									马上购
+								</view>
+							</view>
+						</view>
+						
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
@@ -139,7 +155,8 @@ page,
 	flex-shrink: 0;
 	flex-shrink: 0;
 	width: 200rpx;
 	width: 200rpx;
 	height: 100%;
 	height: 100%;
-	background-color: #fff;
+	background-color: #F2F2F2;
+	
 }
 }
 .f-item {
 .f-item {
 	display: flex;
 	display: flex;
@@ -151,17 +168,18 @@ page,
 	color: $font-color-base;
 	color: $font-color-base;
 	position: relative;
 	position: relative;
 	&.active {
 	&.active {
-		color: $base-color;
-		background: #f8f8f8;
+		color: #000;
+		font-weight: bold;
+		background: #fff;
 		&:before {
 		&:before {
 			content: '';
 			content: '';
 			position: absolute;
 			position: absolute;
 			left: 0;
 			left: 0;
 			top: 50%;
 			top: 50%;
 			transform: translateY(-50%);
 			transform: translateY(-50%);
-			height: 36rpx;
-			width: 8rpx;
-			background-color: $base-color;
+			height: 100%;
+			width: 4rpx;
+			background-color: #1075FF;
 			border-radius: 0 4px 4px 0;
 			border-radius: 0 4px 4px 0;
 			opacity: 0.8;
 			opacity: 0.8;
 		}
 		}
@@ -169,22 +187,27 @@ page,
 }
 }
 
 
 .right-aside {
 .right-aside {
-	flex: 1;
+	// flex: 1;
+	background-color: #fff;
 	overflow: hidden;
 	overflow: hidden;
-	padding-left: 20rpx;
-	padding-right: 20rpx;
+	.s-list {
+		margin-top: 2rpx;
+		// padding: 5rpx;
+		margin: 25rpx;
+	}
 }
 }
 .s-item {
 .s-item {
 	display: flex;
 	display: flex;
-	align-items: center;
+	// align-items: center;
 	height: 70rpx;
 	height: 70rpx;
-	padding-top: 8rpx;
+	padding: 30rpx;
+	padding-top: 20rpx;
 	font-size: 28rpx;
 	font-size: 28rpx;
 	color: $font-color-dark;
 	color: $font-color-dark;
 }
 }
 .t-list {
 .t-list {
-	display: flex;
-	flex-wrap: wrap;
+	// display: flex;
+	// flex-wrap: wrap;
 	border-radius: 15rpx;
 	border-radius: 15rpx;
 	width: 100%;
 	width: 100%;
 	background: #fff;
 	background: #fff;
@@ -196,19 +219,56 @@ page,
 	}
 	}
 }
 }
 .t-item {
 .t-item {
+	margin-top: 20rpx;
 	flex-shrink: 0;
 	flex-shrink: 0;
 	display: flex;
 	display: flex;
-	justify-content: center;
-	align-items: center;
-	flex-direction: column;
-	width: 171rpx;
+	border-bottom: solid 1rpx #F2F2F2;
+	// justify-content: center;
+	// align-items: center;
+	// flex-direction: column;
+	// padding: 30rpx;
+	width: 100%;
 	font-size: 26rpx;
 	font-size: 26rpx;
 	color: #666;
 	color: #666;
 	padding-bottom: 20rpx;
 	padding-bottom: 20rpx;
 
 
 	image {
 	image {
-		width: 140rpx;
-		height: 140rpx;
+		width: 180rpx;
+		height: 180rpx;
+		margin: 0 20rpx;
+		border-radius: 10rpx;
+	}
+	
+	.titem-right {
+		display: grid;
+		align-content: space-between;
+		text:nth-child(1) {
+			color: #333333;
+			font-size: 32rpx;
+		}
+		text:nth-child(2) {
+			color: #666666;
+			font-size: 28rpx;
+		}
+		.titem-right-d {
+			display: flex;
+			justify-content: space-between;
+			.price {
+				color: #FB3A2F;
+				font-size: 32rpx;
+			}
+			.button {
+				background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+				background-color: #438BED;
+				height: 50rpx;
+				line-height: 50rpx;
+				border-radius: 25rpx;
+				padding: 0 30rpx;
+				color: #fff;
+				font-size: 25rpx;
+			}
+		}
+		
 	}
 	}
 }
 }
 </style>
 </style>

+ 7 - 2
pages/index/child/hotGoods.vue

@@ -22,7 +22,7 @@
 					<scroll-view scroll-x class="right-head"  style="white-space: nowrap">
 					<scroll-view scroll-x class="right-head"  style="white-space: nowrap">
 					    <view  class="goods-item" v-for="g in goodsList" @click="navToDetailPage(g)">
 					    <view  class="goods-item" v-for="g in goodsList" @click="navToDetailPage(g)">
 							<view class="item-img">
 							<view class="item-img">
-								<image src="../../../static/error/errorImage.jpg" mode=""></image>
+								<image :src="g.image" onerror="@/static/error/errorImage.jpg"></image>
 							</view>
 							</view>
 							<view class="name">{{g.store_name}}</view>
 							<view class="name">{{g.store_name}}</view>
 							<view class="ot_price">¥{{g.price}}</view>
 							<view class="ot_price">¥{{g.price}}</view>
@@ -40,9 +40,14 @@
 
 
 <script>
 <script>
 	export default {
 	export default {
+		data() {
+			return {
+				errImg: require('@/static/error/errorImage.jpg')
+			}
+		},
 		props: ["goodsList"],
 		props: ["goodsList"],
 		mounted() {
 		mounted() {
-			// console.log(this.goodsList)
+			console.log(this.goodsList)
 		},
 		},
 		methods: {
 		methods: {
 			//详情页
 			//详情页

+ 3 - 3
pages/index/child/recommend.vue

@@ -8,7 +8,7 @@
 				<view class="item" v-for="b in bastList">
 				<view class="item" v-for="b in bastList">
 					<view class="item-img">
 					<view class="item-img">
 						<!-- <image :src=b.image  mode="" v-if="b.image"></image> -->
 						<!-- <image :src=b.image  mode="" v-if="b.image"></image> -->
-						<image :src=errorImage></image>
+						<image :src = "b.image" :onerror="defaultImg"></image>
 					</view>
 					</view>
 					<view class="item-right">
 					<view class="item-right">
 						<view class="name">
 						<view class="name">
@@ -32,7 +32,7 @@
 	export default {
 	export default {
 		data() {
 		data() {
 			return {
 			return {
-				errorImage: require('../../../static/error/errorImage.jpg'),
+				defaultImg: 'this.src="' + require('@/static/error/errorImage.jpg') + '"',
 			}
 			}
 		},
 		},
 		methods: {
 		methods: {
@@ -42,7 +42,7 @@
 			},
 			},
 		},
 		},
 		mounted() {
 		mounted() {
-			this.getList()
+			// this.getList()
 		},
 		},
 		props: ["bastList"]
 		props: ["bastList"]
 	}
 	}

+ 3 - 1
pages/product/classify.vue

@@ -21,7 +21,7 @@
 
 
 		<view class="goodsList-box">
 		<view class="goodsList-box">
 			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list">
 			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list">
-				<image :src="ls.image" mode=" scaleToFill"></image>
+				<image :src="ls.image || errImg" mode=" scaleToFill"></image>
 				<view class="goodsList-content">
 				<view class="goodsList-content">
 					<view class="title">
 					<view class="title">
 						<text class="clamp2">{{ ls.store_name }}</text>
 						<text class="clamp2">{{ ls.store_name }}</text>
@@ -30,6 +30,7 @@
 						<view class="money-box">
 						<view class="money-box">
 							<text class="otMoney">¥{{ ls.ot_price }}</text>
 							<text class="otMoney">¥{{ ls.ot_price }}</text>
 							<image src="@/static/icon/decline.png"></image>
 							<image src="@/static/icon/decline.png"></image>
+							<!-- <image src="../../static/error/errorImage.jpg"></image> -->
 							<text class="decline">直降{{ ls.ot_price - ls.price}}元</text>
 							<text class="decline">直降{{ ls.ot_price - ls.price}}元</text>
 							<!-- <view class="otMoney-box"> -->
 							<!-- <view class="otMoney-box"> -->
 								<view class="money">¥{{ ls.price }}</view>
 								<view class="money">¥{{ ls.price }}</view>
@@ -53,6 +54,7 @@ export default {
 			list: [],
 			list: [],
 			bannerImg: [],
 			bannerImg: [],
 			title: '',
 			title: '',
+			errImg: require('@/static/error/errorImage.jpg')
 		};
 		};
 	},
 	},
 	onLoad(option) {
 	onLoad(option) {