1
0

app-poster-price.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view class="app-poster-price" :style="{color: textColor}">
  3. <view v-if="defaultPrice.indexOf(info.sign) !== -1 || info.sign === 'wholesale'">
  4. <view v-if="info.is_negotiable === 1">
  5. <view class="price">价格面议</view>
  6. </view>
  7. <view v-else class="price">
  8. <app-price :max="`${info.max_price}`" :min="`${info.min_price}`"></app-price>
  9. </view>
  10. </view>
  11. <view v-else-if="info.sign === 'pintuan'" class="cross-bottom dir-left-nowrap">
  12. <view class="plugin-label">{{info.people_num}}</view>
  13. <app-price class="price" :max="`${info.max_price}`" :min="`${info.min_price}`"></app-price>
  14. </view>
  15. <view v-else-if="info.sign === 'integral_mall'" class="cross-bottom dir-left-nowrap">
  16. <view class="plugin-label">{{info.integral_num}}积分+</view>
  17. <app-price class="price" :max="`${info.max_price}`" :min="`${info.min_price}`"></app-price>
  18. </view>
  19. <view v-else-if="info.sign === 'lottery'" class="cross-bottom dir-left-nowrap lottery">
  20. <img :src="info.iconFreeUrl" alt="">
  21. <view :class="{'white':whiteColor}">¥{{info.price}}</view>
  22. </view>
  23. <view v-else-if="info.sign === 'step'" class="cross-bottom dir-left-nowrap">
  24. <view class="plugin-label">{{info.currency}}{{info.unit}}+</view>
  25. <app-price class="price" :price="`${info.price}`"></app-price>
  26. </view>
  27. <view v-else-if="info.sign === 'bargain'" class="cross-bottom dir-left-nowrap">
  28. <view class="plugin-label" style="line-height: 1">最低¥</view>
  29. <view class="price">{{info.bargain_min_price}}</view>
  30. </view>
  31. <view v-else-if="info.sign === 'flash_sale'" class="cross-bottom dir-left-nowrap flash_sale">
  32. <view class="plugin-label">抢购价¥</view>
  33. <view class="price">{{info.min_price}}</view>
  34. </view>
  35. <view v-else class="cross-bottom dir-left-nowrap">
  36. <app-price :max="`${info.max_price}`" :min="`${info.min_price}`"></app-price>
  37. </view>
  38. </view>
  39. </template>
  40. <script>
  41. import appPrice from '../goods/app-price.vue';
  42. export default {
  43. components: {
  44. appPrice
  45. },
  46. props: {
  47. whiteColor: Boolean,
  48. info: Object,
  49. textColor: {
  50. type: String,
  51. default: '#FF4544',
  52. }
  53. },
  54. data() {
  55. return {
  56. defaultPrice: ['booking', '', 'miaosha', 'mch', 'pick']
  57. }
  58. }
  59. }
  60. </script>
  61. <style scoped lang="scss">
  62. .app-poster-price {
  63. color: #FF4544;
  64. .white {
  65. color: #d9d9d9 !important;
  66. }
  67. .price {
  68. font-size: #{56rpx};
  69. line-height: 1;
  70. }
  71. .plugin-label {
  72. font-size: #{30rpx};
  73. padding-right: #{5rpx};
  74. }
  75. .flash_sale .price {
  76. font-size: 40rpx;
  77. font-weight: bold;
  78. }
  79. .lottery {
  80. margin-bottom: #{-10rpx};
  81. img {
  82. width: #{120rpx};
  83. height: #{60rpx};
  84. display: block;
  85. }
  86. view {
  87. margin-left: #{10rpx};
  88. color: #353535;
  89. text-decoration: line-through;
  90. text-align: center;
  91. }
  92. }
  93. }
  94. </style>