You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
2.3 KiB
127 lines
2.3 KiB
<template>
|
|
<view>
|
|
<view class="list" :class="{show: showAll}">
|
|
<view v-for="item in list" :key="item._id" class="item row b-b" @click="navTo('/pages/product/detail?id='+item.sku.product_id)">
|
|
<image class="pic" :src="item.image" mode="aspectFill"></image>
|
|
<view class="right column">
|
|
<text class="title clamp">{{ item.title }}</text>
|
|
<text class="sku">{{ item.sku ? item.sku.name : '' }}</text>
|
|
<view class="price-wrap">
|
|
<text class="price">{{ item.price }}</text>
|
|
<text class="number">x {{ item.number }}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="list.length > 2" class="more-btn center" @click="showMore">
|
|
<text>{{ showAll ? '收起' : '查看更多' }}</text>
|
|
<text class="mix-icon icon-xia" :class="{active: showAll}"></text>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
showAll: false
|
|
}
|
|
},
|
|
props: {
|
|
list: {
|
|
type: Array,
|
|
default(){
|
|
return []
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
showMore(){
|
|
this.showAll = !this.showAll;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.more-btn{
|
|
padding: 16rpx 0 12rpx;
|
|
margin-top: -4rpx;
|
|
font-size: 24rpx;
|
|
color: #999;
|
|
position: relative;
|
|
z-index: 10;
|
|
background-color: #fff;
|
|
|
|
.icon-xia{
|
|
margin-left: 4rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
.active{
|
|
transform: scale(-1);
|
|
}
|
|
}
|
|
|
|
.list{
|
|
max-height: 380rpx;
|
|
overflow: hidden;
|
|
|
|
&.show{
|
|
max-height: 9999rpx;
|
|
}
|
|
}
|
|
.item{
|
|
width: 100%;
|
|
height: 190rpx;
|
|
padding: 24rpx 0 24rpx 24rpx;
|
|
background-color: #fff;
|
|
|
|
&:after{
|
|
border-color: #e5e5e5;
|
|
}
|
|
}
|
|
.pic{
|
|
flex-shrink: 0;
|
|
width: 140rpx;
|
|
height: 140rpx;
|
|
margin-right: 20rpx;
|
|
border-radius: 6rpx;
|
|
}
|
|
.right{
|
|
flex: 1;
|
|
color: #333;
|
|
overflow: hidden;
|
|
}
|
|
.title{
|
|
margin-right: 24rpx;
|
|
margin-top: 0rpx;
|
|
font-size: 30rpx;
|
|
line-height: 40rpx;
|
|
}
|
|
.sku{
|
|
height: 40rpx;
|
|
margin: 10rpx 0 20rpx;
|
|
line-height: 40rpx;
|
|
font-size: 24rpx;
|
|
color: #888;
|
|
}
|
|
.price-wrap{
|
|
display: flex;
|
|
align-items: baseline;
|
|
padding-right: 20rpx;
|
|
}
|
|
.price{
|
|
margin-right: 16rpx;
|
|
font-size: 28rpx;
|
|
line-height: 1;
|
|
|
|
&:before{
|
|
content: "¥";
|
|
font-size: 26rpx;
|
|
}
|
|
}
|
|
.number{
|
|
font-size: 26rpx;
|
|
color: #666;
|
|
}
|
|
</style>
|