CommodityCard.vue 3.31 KB
<template>
  <view
    class="card"
    @tap="toGoods(goods.id?goods.id:goods.pid,goods.goodType?goods.goodType:goods.p_root_index)"
  >
    <image
      mode="widthFix"
      :src="goods.imgurl?goods.imgurl:goods.pic"
    ></image>
    <view class="name">{{goods.name?goods.name:goods.p_name}}</view>
    <view class="info">
      <view class="priceBox">
        <view class="price">{{goods.price?goods.price:goods.real_price}}</view>
        <view class="originCost">
          {{goods.rsSon.Max_Price?goods.rsSon.Max_Price:goods.old_price}}
        </view>
      </view>
      <view class="trade_num">{{goods.trade_num}}人购买</view>
    </view>
  </view>
</template>

<script>
export default {
  props: {
    /**
    * 商品数据
    */
    goods: {
      id: Number,
      imgurl: String,
      name: String,
      rsSon: Object,
      originCost: String,
      price: String,
      trade_num: String,
      goodType: String
    }

  },
  created () {
    // console.log(this.goods)
  },
  data () {
    return {

    }
  },
  methods: {
    toGoods (id, type) {
      console.log('---', '../frameDetail/frameDetail?oderId=' + id)
      uni.navigateTo({
        url: '../frameDetail/frameDetail?oderId=' + id,
        success: res => {},
        fail: () => {},
        complete: () => {}
      })
      console.log('toGoods =====> id:' + id + '======>type:' + type)
      switch (type) {
        case 1:
          uni.navigateTo({
            url: '../frameDetail/frameDetail?oderId=' + id + '&goodType=' + type,
            success: res => {},
            fail: () => {},
            complete: () => {}
          })
          break
        case 2:
          uni.navigateTo({
            url: '../frameDetail/frameDetail?oderId=' + id + '&goodType=' + type,
            success: res => {},
            fail: () => {},
            complete: () => {}
          })
          break
        case 3:
          uni.navigateTo({
            url: '../frameDetail/frameDetail?oderId=' + id + '&goodType=' + type,
            success: res => {},
            fail: () => {},
            complete: () => {}
          })
          break
        case 4:
          uni.navigateTo({
            url: '../frameDetail/frameDetail?oderId=' + id + '&goodType=' + type,
            success: res => {},
            fail: () => {},
            complete: () => {}
          })
          break
        default :
          break
      }
    }
  }
}
</script>

<style lang="scss">
image {
  width: 100%;
  height: 120rpx;
}
.name {
  width: 92%;
  height: 54rpx;
  padding: 5px 4%;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-align: justify;
  overflow: hidden;
  font-size: 24rpx;
  color: #333333;
}
.info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 92%;
  padding: 5px 4% 5px 4%;
  .priceBox {
    display: flex;
    justify-content: space-between;
    align-items: center;
    .price {
      color: #eb5d3b;
      font-size: 28rpx;
      font-weight: 600;
      margin-right: 10rpx;
    }
    .originCost {
      text-decoration: line-through;
      color: #999999;
      font-size: 20rpx;
    }
  }
  .trade_num {
    color: #999999;
    font-size: 20rpx;
  }
}
</style>