goodsList.vue 5.95 KB
<template>
	<div class="product-list">
		<div class="product-container"> 
			<div class="item" v-for="(item, index) in goodsLists" :key="index" v-if="(index+1)%2!=0">
				<div class="a-link" @click="toDetail(item)">
					<div class="image-wrapper">
						<img v-lazy="item.simg" class="img" />
						<div class="rare-box" v-if="item.stock > 0 && item.stock <= item.min_qty">仅剩{{item.stock}}件</div>
						<div class="lack-box" v-if="item.stock <= 0">补货中</div>
					</div>
					<div class="content">
						<div class="title">{{item.title}}</div>
						<!-- <div class="ads" v-if="item.ads">{{item.ads}}</div> -->
						<div class="price-number-box">
							<div class="price-box">
								<div class="prices" v-if="parseFloat(item.prices) > parseFloat(item.price)">
									¥&nbsp;{{item.prices}}
								</div>
								<div class="price">
									¥&nbsp;{{item.price}}
								</div>
							</div>
							<!-- <div class="buy-now">
								去购买
							</div> -->
						</div>
					</div>
				</div>
			</div>
		</div>
		<div class="product-container"> 
			<div class="item" v-for="(item, index) in goodsLists" :key="index" v-if="(index+1)%2==0">
				<div class="a-link" @click="toDetail(item)">
					<div class="image-wrapper">
						<img v-lazy="item.simg" class="img" />
						<div class="rare-box" v-if="item.stock > 0 && item.stock <= item.min_qty">仅剩{{item.stock}}件</div>
						<div class="lack-box" v-if="item.stock <= 0">补货中</div>
					</div>
					<div class="content">
						<div class="title">{{item.title}}</div>
						<!-- <div class="ads" v-if="item.ads">{{item.ads}}</div> -->
						<div class="price-number-box">
							<div class="price-box">
								<div class="prices" v-if="parseFloat(item.prices) > parseFloat(item.price)">
									¥&nbsp;{{item.prices}}
								</div>
								<div class="price">
									¥&nbsp;{{item.price}}
								</div>
							</div>
							<!-- <div class="buy-now">
								去购买
							</div> -->
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</template>

<script>
	export default {
		data() {
			return {
				
			};
		},
		props: ["goodsLists", "funcs", "noBg"],
		methods: {
			
			/**
			 * 跳转详情页
			 * @param {object} goods [商品详情对象]
			 */
			toDetail(goods) {
				if (typeof this.funcs === "object" && typeof this.funcs.toDetail === "function") {
					this.funcs.toDetail(goods);
				}
			}
		}
	}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style rel="stylesheet/less" lang="less" scoped>
	// @import './goods_list';
	@background_color_box: #fff;
	@margin_bottom_item: 10px;
	@box_shadow: 0 2px 4px #E5EAEB;
	@width_title_box: 690px;
	@height_title_box: 75px;
	@width_check_box: 35px;
	@height_check_box: 35px;
	@padding_right_check_box: 13px;
	@width_shop_icon: 39px;
	@height_shop_icon: 39px;
	@padding_right_shop_icon: 8px;
	@color_title: #030303;
	@font_size_title: 28px;
	@border_bottom_title_box: 1px solid #E4E4E4;
	@width_content_box_item: 690px;
	@height_content_box_item: 270px;
	@border_bottom_content_box_item: 1px solid #E4E4E4;
	@width_item_simg: 200px;
	@height_item_simg: 200px;
	@margin_left_item_simg: 20px;
	@margin_left_item_simg_g: 14px;
	@border_radius_item_simg: 8px;
	@margin_left_content: 45px;
	@width_content: 392px;
	@color_content_title: #666666;
	@font_size_content_title: 30px;
	@color_content_ads: #9C9C9C;
	@font_size_content_ads: 28px;
	@background_color_content_ads_edit: #D8D8D8;
	@border_radius_content_ads_edit: 4px;
	@color_content_price: #FF725C;
	@font_size_content_price: 34px;
	@font_size_content_price_decimal: 26px;
	@color_content_prices: #B4B4B4;
	@font_size_content_prices: 20px;
	@height_number: 56px;
	@color_item_text: #FFFFFF;
	@font_size_item_text: 20px;
	@background_color_item_text: #C5C5C5;
	@border_radius_item_text: 4px;
	@padding_item_text: 1px 8px;
	@margin_left_item_text: -24px;
	@width_buttons_box: 690px;
	@height_buttons_box: 93px;
	@margin_left_btn_btn: 27px;
	@font_size_btn: 25px;
	@padding_btn: 8px 25px;
	@border_radius_btn: 100px;
	@color_btn_bright_out: #FF725C;
	@border_btn_bright_out: 1px solid #FF725C;
	@color_btn_gray_out: #777;
	@border_btn_gray_out: 1px solid #999;
	@height_rare_lack: 40px;
	@color_rare_lack: #FFFFFF;
	@font_size_rare_lack: 25px;
	@background_color_rare_lack: #737373;
	@padding_top_no_address: 30vh;
	@width_no_address_img: 177px;
	@height_no_address_img: 177px;
	@color_no_address_text: #9C9C9C;
	@font_size_no_address_text: 28px;
	@padding_top_no_address_text: 20px;

	.goods-list-box{
		padding: 20px 20px;
		margin-top: -120px;
	}
	.product-list{
		display: flex;
		justify-content: space-between;
		flex-direction: row;
		flex-wrap: wrap;
		box-sizing: border-box;
		padding: 20px 20px;
		// margin-top: -150px;
		.product-container{
			flex: 1;
			margin-right: 2%;
			&:last-child{
				margin-right: 0;
			}
			.item{
				display:flex;
				flex-direction: column;
				.a-link{
					border-radius: 12px;
					background-color: rgb(250, 250, 250);
					margin:10px 0;
					box-shadow: 0px 0px 10px rgba(148, 148, 148, 0.3);

					.image-wrapper{
						width: 100%;
						height: auto;
						border-radius: 12px;
						overflow: hidden;
						img{
							width: 100%;
							height: 100%;
							opacity: 1;
							border-radius: 12px 12px 0 0;
						}
					}
					.content{
						padding: 5px 15px;
						.title{
							display: -webkit-box;
							margin-top: 20px;
							color: @color_content_title;
							font-size: @font_size_content_title;
							width: 100%;
							height: auto;
							line-height: 40px;
							-webkit-line-clamp: 2;
							/*! autoprefixer: off */
							-webkit-box-orient: vertical;
							/*! autoprefixer: on */
							text-overflow: ellipsis;
							// max-height: 80px;
							overflow: hidden;
						}
						.price{
							color: @color_content_price;
							font-size: @font_size_content_price;
						}
						.prices {
							color: @color_content_prices;
							font-size: @font_size_content_prices;
							text-decoration: line-through;
						}
					}
				}
			}
		}
	}
</style>