svipPrice.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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]">{{rmbToLgnsHandle(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}}{{rmbToLgnsHandle(productPrice.vipPrice)}}</view>
  14. </view>
  15. </view>
  16. </template>
  17. <script>
  18. import {configMap, rmbToLgns} 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. rmbToLgnsHandle(rmb){
  47. return rmbToLgns(rmb)
  48. }
  49. }
  50. }
  51. </script>
  52. <style scoped lang="scss">
  53. .x-money {
  54. top: 5rpx;
  55. font-weight: 700;
  56. @include main_color(theme);
  57. }
  58. .svip-price {
  59. padding: 0 8rpx 0 0;
  60. background: #FFF0D1;
  61. .icon{
  62. font-weight: 600;
  63. color: #FDDAA4;
  64. padding-right: 6rpx;
  65. background: linear-gradient( 180deg, #484643 100%,#1F1B17 100%);
  66. }
  67. .price{
  68. color: #333333;
  69. }
  70. }
  71. .svip-icon {
  72. padding: 0 16rpx;
  73. background: linear-gradient( 180deg, #FDF6EC 0%, #FFE3B7 100%);
  74. color: #70490C;
  75. }
  76. </style>