svipPrice.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <view class="acea-row items-baseline">
  3. <view :class="priceColor.color?'':'x-money'" class="mr-12 acea-row items-baseline relative" :style="svipPriceStyle.topStyle?[svipPriceStyle.topStyle,priceColor]:[priceColor]">
  4. <view class="f-s-26">{{$store.getters.priceUnit}}</view>
  5. <view v-if="productPrice.groupPrice" class='tui-skeleton-rect semiBold' :style="[svipIconStyle.price]">{{productPrice.groupPrice}}</view>
  6. <view v-else class='tui-skeleton-rect semiBold' :style="[svipIconStyle.price]">{{userIsPaidMember && productPrice.isPaidMember?productPrice.vipPrice:productPrice.price}}</view>
  7. </view>
  8. <view v-if="userIsPaidMember && productPrice.isPaidMember" class="svip-icon acea-row row-middle" :style="[svipIconStyle.svipBox]">
  9. <view :style="[svipIconStyle.svipPrice]">SVIP会员价</view>
  10. </view>
  11. <view v-if="!userIsPaidMember && paidMemberPriceDisplay==='all' && productPrice.isPaidMember&&!productPrice.groupPrice" class="svip-price acea-row row-middle" :style="[svipPriceStyle.svipBox]">
  12. <view class="icon pl-10 acea-row row-middle" :style="[svipPriceStyle.icon]">SVIP</view>
  13. <view class="price ml-6 semiBold" :style="[svipPriceStyle.svipPrice]">{{$store.getters.priceUnit}}{{productPrice.vipPrice}}</view>
  14. </view>
  15. </view>
  16. </template>
  17. <script>
  18. import {configMap} from "../utils";
  19. export default {
  20. computed: configMap(['userIsPaidMember','paidMemberPriceDisplay']),
  21. props: {
  22. //是否展示返回按钮
  23. productPrice: {
  24. type: Object,
  25. default: null
  26. },
  27. //SVIP样式图标
  28. svipIconStyle:{
  29. type: Object,
  30. default: null
  31. },
  32. //普通商品样式
  33. svipPriceStyle:{
  34. type: Object,
  35. default: null
  36. },
  37. //价格颜色
  38. priceColor: {
  39. type: Object,
  40. default: ()=>{
  41. return {}
  42. }
  43. }
  44. },
  45. methods: {
  46. }
  47. }
  48. </script>
  49. <style scoped lang="scss">
  50. .x-money {
  51. top: 5rpx;
  52. font-weight: 700;
  53. @include main_color(theme);
  54. }
  55. .svip-price {
  56. padding: 0 8rpx 0 0;
  57. background: #FFF0D1;
  58. .icon{
  59. font-weight: 600;
  60. color: #FDDAA4;
  61. padding-right: 6rpx;
  62. background: linear-gradient( 180deg, #484643 100%,#1F1B17 100%);
  63. }
  64. .price{
  65. color: #333333;
  66. }
  67. }
  68. .svip-icon {
  69. padding: 0 16rpx;
  70. background: linear-gradient( 180deg, #FDF6EC 0%, #FFE3B7 100%);
  71. color: #70490C;
  72. }
  73. </style>