app-poster-price.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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: {
  48. type: Boolean,
  49. required: false,
  50. },
  51. info: {
  52. type: Object,
  53. required: true,
  54. },
  55. textColor: {
  56. type: String,
  57. default: '#FF4544',
  58. required: false,
  59. }
  60. },
  61. data() {
  62. return {
  63. defaultPrice: ['booking', '', 'miaosha', 'mch', 'pick']
  64. }
  65. }
  66. }
  67. </script>
  68. <style scoped lang="scss">
  69. .app-poster-price {
  70. color: #FF4544;
  71. .white {
  72. color: #d9d9d9 !important;
  73. }
  74. .price {
  75. font-size: #{56rpx};
  76. line-height: 1;
  77. }
  78. .plugin-label {
  79. font-size: #{30rpx};
  80. padding-right: #{5rpx};
  81. }
  82. .flash_sale .price {
  83. font-size: 40rpx;
  84. font-weight: bold;
  85. }
  86. .lottery {
  87. margin-bottom: #{-10rpx};
  88. img {
  89. width: #{120rpx};
  90. height: #{60rpx};
  91. display: block;
  92. }
  93. view {
  94. margin-left: #{10rpx};
  95. color: #353535;
  96. text-decoration: line-through;
  97. text-align: center;
  98. }
  99. }
  100. }
  101. </style>