| <template> | |
| 	<view class="list"> | |
| 		<view class="item" v-for="(item, index) in list" | |
| 			@click="$utils.navigateTo('/pages_order/product/productDetail?id=' + item.id)" :key="index"> | |
| 			<image class="image" :src="item.image && | |
| 			item.image.split(',')[0]" mode="aspectFill"></image> | |
| 			<view class="product-info"> | |
| 				<view class="product-title"> | |
| 					{{ item.title }} | |
| 				</view> | |
| 				 | |
| 				<view class="tag-list"> | |
| 					<view class="tag" | |
| 					:key="i" | |
| 					v-for="(t, i) in item.skuIcon  | |
| 					&& item.skuIcon.split(',')"> | |
| 						{{ t }} | |
| 					</view> | |
| 				</view> | |
|  | |
| 				<view class="product-main"> | |
| 					<view class="sale-information"> | |
| 						<view style="display: flex;align-items: flex-end;"> | |
| 							<view class="price"> | |
| 								<text>¥{{ item.price }}</text>/件 | |
| 							</view> | |
| 							<view class="oldPrice"> | |
| 								<text>¥{{ item.oldPrice }}</text> | |
| 							</view> | |
| 						</view> | |
| 						<view class="num"> | |
| 							已售卖{{ item.payNum }}+件 | |
| 						</view> | |
| 					</view> | |
|  | |
| 					<view @click.stop="purchase(item.id)" class="btn"> | |
| 						购买 | |
| 					</view> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		 | |
| 		<view style="width: 700rpx;"> | |
| 			<uv-empty mode="list" v-if="list.length == 0"></uv-empty> | |
| 		</view> | |
| 	</view> | |
| </template> | |
|  | |
| <script> | |
| 	export default { | |
| 		name: "productList", | |
| 		props: { | |
| 			list: { | |
| 				default: [] | |
| 			}, | |
| 		}, | |
| 		data() { | |
| 			return { | |
|  | |
| 			}; | |
| 		}, | |
| 		methods: { | |
| 			// 购买商品(创建订单) | |
| 			purchase(id) { | |
| 				this.$api('getRiceProductDetail', { | |
| 					id | |
| 				}, res => { | |
| 					if (res.code == 200) { | |
| 						res.result.num = 1 | |
| 						this.$store.commit('setPayOrderProduct', [ | |
| 							res.result | |
| 						]) | |
| 						this.$utils.navigateTo('/pages_order/order/createOrder') | |
| 					} | |
| 				}) | |
| 			}, | |
| 		}, | |
| 	} | |
| </script> | |
|  | |
| <style scoped lang="scss"> | |
| 	.list { | |
| 		display: flex; | |
| 		flex-wrap: wrap; | |
| 		.item { | |
| 			position: relative; | |
| 			width: 345rpx; | |
| 			padding: 20rpx; | |
| 			box-sizing: border-box; | |
| 			background-color: #fff; | |
| 			border-radius: 20rpx; | |
| 			margin-left: 20rpx; | |
| 			margin-bottom: 20rpx; | |
| 
 | |
| 			.image { | |
| 				width: 300rpx; | |
| 				height: 300rpx; | |
| 				border-radius: 20rpx; | |
| 			} | |
| 			 | |
| 			.tag-list{ | |
| 				display: flex; | |
| 				flex-wrap: wrap; | |
| 				padding: 6rpx 0; | |
| 				.tag{ | |
| 					padding: 6rpx 12rpx; | |
| 					border-radius: 14rpx; | |
| 					background-color: rgba($uni-color, 0.1); | |
| 					color: $uni-color; | |
| 					border: 1rpx solid $uni-color; | |
| 					font-size: 20rpx; | |
| 					margin: 6rpx; | |
| 				} | |
| 			} | |
| 
 | |
| 			.product-info { | |
| 				font-size: 24rpx; | |
| 
 | |
| 				.product-title { | |
| 					font-weight: bold; | |
| 					display: -webkit-box; | |
| 					/* 兼容WebKit内核浏览器 */ | |
| 					-webkit-line-clamp: 2; | |
| 					/* 显示最大3行 */ | |
| 					-webkit-box-orient: vertical; | |
| 					/* 设置垂直方向上的排列方式 */ | |
| 					overflow: hidden; | |
| 					/* 隐藏溢出内容 */ | |
| 					text-overflow: ellipsis; | |
| 					/* 当文本溢出时显示省略号 */ | |
| 				} | |
| 
 | |
| 				.product-main { | |
| 					display: flex; | |
| 					align-items: flex-end; | |
| 
 | |
| 					.sale-information { | |
| 						width: 75%; | |
| 
 | |
| 						.title { | |
| 							font-size: 28rpx; | |
| 							overflow: hidden; //超出的文本隐藏 | |
| 							text-overflow: ellipsis; //溢出用省略号显示 | |
| 							white-space: nowrap; //溢出不换行 | |
| 						} | |
| 
 | |
| 						.price { | |
| 							color: $uni-color; | |
| 							margin-top: 6rpx; | |
| 
 | |
| 							text { | |
| 								font-size: 30rpx; | |
| 								font-weight: 900; | |
| 							} | |
| 						} | |
| 
 | |
| 						.oldPrice { | |
| 							color: #888; | |
| 							text-decoration: line-through; | |
| 						} | |
| 
 | |
| 						.num { | |
| 							margin-top: 6rpx; | |
| 							font-size: 22rpx; | |
| 							color: #888; | |
| 						} | |
| 					} | |
| 
 | |
| 					.btn { | |
| 						display: flex; | |
| 						align-items: center; | |
| 						justify-content: center; | |
| 						border-radius: 10rpx; | |
| 						font-size: 24rpx; | |
| 						height: 60rpx; | |
| 						width: 25%; | |
| 						color: #fff; | |
| 						background-color: $uni-color; | |
| 					} | |
| 				} | |
| 			} | |
| 		} | |
| 	} | |
| </style> |