|
|
- <template>
- <view class="card product-card__view" :style="cardStyle" @click="jumpToProductDetail">
- <view class="card-img flex" :style="imgStyle">
- <image class="img" :src="data.url" mode="scaleToFill"></image>
- </view>
- <view class="card-detail">
- <view class="product-name">{{ data.name }}</view>
- <view class="product-sales" v-if="data.sales">{{ `已售出${data.sales}+单` }}</view>
- <view class="flex product-price">
- <view>
- <view class="product-price-val">
- <text>¥</text>
- <text class="highlight">{{ data.price }}</text>
- <text>/份</text>
- </view>
- <view class="product-price-bef">
- {{ `¥${data.originalPrice}/份` }}
- </view>
- </view>
- <button class="btn flex" @click.stop="onAddCart(data.id)">
- <image class="btn-img" src="@/pages_order/static/report/plus.png" mode="widthFix"></image>
- </button>
- </view>
- </view>
- </view>
- </template>
-
- <script>
- export default {
- props: {
- data: {
- type: Object,
- default() {
- return {}
- },
- },
- cardStyle: {
- type: String,
- default: '',
- },
- imgStyle: {
- type: String,
- default: '',
- }
- },
- methods: {
- onAddCart(id) {
- this.$store.commit('addCart', this.data)
- },
- jumpToProductDetail() {
- this.$utils.navigateTo(`/pages_order/product/productDetail?id=${this.data.id}`)
- },
- },
- }
- </script>
-
- <style scoped lang="scss">
- .card {
- font-size: 0;
- height: 420rpx;
- background-image: linear-gradient(#FAFAFF, #F3F3F3);
- border: 2rpx solid #FFFFFF;
- border-radius: 32rpx;
- overflow: hidden;
-
- &-img {
- width: 100%;
- height: 220rpx;
-
- .img {
- width: 100%;
- height: 100%;
- }
- }
-
- &-detail {
- padding: 16rpx 24rpx 0 24rpx;
-
- .product {
- &-name {
- font-family: PingFang SC;
- font-weight: 600;
- font-size: 28rpx;
- line-height: 1.4;
- color: #000000;
- }
-
- &-sales {
- margin-top: 8rpx;
- font-family: PingFang SC;
- font-weight: 400;
- font-size: 24rpx;
- line-height: 1;
- color: #8B8B8B;
- }
-
- &-price {
- margin-top: 16rpx;
- justify-content: space-between;
-
- &-val {
- font-family: PingFang SC;
- font-weight: 600;
- font-size: 24rpx;
- line-height: 1.4;
- color: $uni-color;
-
- .highlight {
- font-size: 32rpx;
- margin: 0 8rpx;
- }
- }
-
- &-bef {
- margin-top: 4rpx;
- text-decoration: line-through;
- font-family: PingFang SC;
- font-weight: 400;
- font-size: 24rpx;
- line-height: 1;
- color: #8B8B8B;
- }
-
- .btn {
- width: 56rpx;
- height: 56rpx;
- border-radius: 50%;
- background: $uni-color;
-
- &-img {
- width: 20rpx;
- height: 20rpx;
- }
- }
- }
- }
- }
- }
- </style>
|