healthButlerPop.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <view v-show="show">
  3. <view class="ad-mask">
  4. <slot>
  5. <view class="adbox">
  6. <image class="adbox-bg" src="@/static/images/ad/service.png" mode="aspectFill"></image>
  7. <view class="es es-fs-40 es-fw-400 es-c-00 es-mt-38">添加健康管家</view>
  8. <view class="es es-c-99 es-fs-28 es-mt-12">-解锁更多权益-</view>
  9. <view class="box-footer es-mt-48">
  10. <button class="box-footer-btn" @click="addAction()" :loading="signLoading" :disabled="signLoading">立即添加</button>
  11. </view>
  12. </view>
  13. <view class="adbox-close">
  14. <image src="@/static/images/ad/close_icon.png" @click="close"></image>
  15. </view>
  16. </slot>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. export default {
  22. props: {
  23. show: {
  24. type: Boolean,
  25. default: false
  26. }
  27. },
  28. data() {
  29. return {
  30. signLoading: false,
  31. }
  32. },
  33. methods: {
  34. close() {
  35. this.$emit("close");
  36. },
  37. addAction(){
  38. },
  39. }
  40. }
  41. </script>
  42. <style scoped lang="scss">
  43. @mixin u-flex($flexD, $alignI, $justifyC) {
  44. display: flex;
  45. flex-direction: $flexD;
  46. align-items: $alignI;
  47. justify-content: $justifyC;
  48. }
  49. .ad-mask {
  50. width: 100vw;
  51. height: 100vh;
  52. background-color: rgba(0,0,0,0.6);
  53. position: fixed;
  54. top: 0;
  55. left: 0;
  56. z-index: 999;
  57. @include u-flex(column, center, center);
  58. .adbox {
  59. width: 620rpx;
  60. position: relative;
  61. background: linear-gradient( 180deg, #FFD0B5 0%, #FFFFFF 20%, #FFFFFF 100%);
  62. border-radius: 16px 16px 16px 16px;
  63. @include u-flex(column, center, center);
  64. &-bg {
  65. width: 312rpx;
  66. height: 312rpx;
  67. margin-top: -150rpx;
  68. }
  69. }
  70. .adbtn{
  71. width: 412rpx;
  72. height: 104rpx;
  73. position: absolute;
  74. bottom: 80rpx;
  75. left: 50%;
  76. transform: translate(-50%,0);
  77. }
  78. .pointer {
  79. width: 180rpx;
  80. height: 194rpx;
  81. position: absolute;
  82. bottom: -52rpx;
  83. right: -42rpx;
  84. }
  85. .adbox-close{
  86. margin-top: 64rpx;
  87. width: 100%;
  88. @include u-flex(row, center, center);
  89. image {
  90. width: 64rpx;
  91. height: 64rpx;
  92. }
  93. }
  94. }
  95. .box-footer {
  96. &-btn {
  97. width: 520rpx;
  98. min-height: 88rpx;
  99. line-height: 88rpx;
  100. background: linear-gradient( 180deg, #FF9F22 0%, #FA1E05 100%);
  101. border-radius: 26px 26px 26px 26px;
  102. border-image: linear-gradient(180deg, rgba(252, 209, 94, 1), rgba(254, 253, 251, 1)) 2 2;
  103. font-family: PingFang SC, PingFang SC;
  104. font-weight: 600;
  105. font-size: 32rpx;
  106. color: #FFFFFF;
  107. margin-bottom: 64rpx;
  108. &::after {
  109. border: none;
  110. }
  111. }
  112. }
  113. </style>