purchase.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. <template>
  2. <div class="purchase">
  3. <van-nav-bar title="0元购机,尽情享受" left-arrow fixed />
  4. <div class="purchase-container">
  5. <div>
  6. <div class="purchase-privilege">
  7. <div>
  8. <img src="@/assets/image/claimCloudPhone/privilege-1.png" alt="" />
  9. 应用预装已完成
  10. </div>
  11. <div>
  12. <img src="@/assets/image/claimCloudPhone/privilege-2.png" alt="" />
  13. 任意下单
  14. </div>
  15. <div>
  16. <img src="@/assets/image/claimCloudPhone/privilege-3.png" alt="" />
  17. 立即使用云机
  18. </div>
  19. </div>
  20. <setMealItem v-for="item in 10" :key="item" :type="0" />
  21. </div>
  22. <van-popup
  23. v-model="visible"
  24. position="bottom"
  25. :style="{ background: 'transparent' }"
  26. >
  27. <div class="payment-container">
  28. <div class="payment-container-title">新增云手机</div>
  29. <div class="payment-container-info">
  30. <div>
  31. <div class="payment-container-info_value">
  32. <span>¥</span>77.90
  33. </div>
  34. <div class="payment-container-info_name">星耀30天卡</div>
  35. </div>
  36. </div>
  37. <div class="payment-container-num">
  38. 数量:<van-stepper button-size="18" />
  39. </div>
  40. <div class="payment-container-method">
  41. <div class="payment-container-method_title">选择支付方式</div>
  42. <div class="payment-container-method_select">
  43. <div class="active">
  44. <img
  45. src="@/assets/image/claimCloudPhone/weChatActvie.png"
  46. alt=""
  47. />
  48. 微信
  49. </div>
  50. <div>
  51. <img src="@/assets/image/claimCloudPhone/alipay.png" alt="" />
  52. 支付宝
  53. </div>
  54. </div>
  55. </div>
  56. <div class="payment-container-amount">
  57. <div>
  58. 需支付金额:<span><span>¥</span>77.90</span>
  59. </div>
  60. <div>确认协议并付款</div>
  61. </div>
  62. <div class="payment-container-agreement">
  63. 购买前阅读<span> 《双子星云手机类型服务协议》 </span>
  64. </div>
  65. </div>
  66. </van-popup>
  67. </div>
  68. </div>
  69. </template>
  70. <script>
  71. import setMealItem from './components/setMealItem.vue';
  72. export default {
  73. auth: false,
  74. name: 'purchase',
  75. head: {
  76. title: '0元购机,尽情享受',
  77. },
  78. data() {
  79. return {
  80. visible: false,
  81. };
  82. },
  83. components: { setMealItem },
  84. };
  85. </script>
  86. <style lang="less" scoped>
  87. .purchase {
  88. height: 100%;
  89. box-sizing: border-box;
  90. background: #fdf2e3;
  91. .purchase-container {
  92. padding: 12.2666666667vw 0 16px;
  93. height: 100%;
  94. box-sizing: border-box;
  95. background: url('~/assets/image/claimCloudPhone/purchase-img.png') no-repeat;
  96. background-size: 100% 210px;
  97. background-position: 0px 12.2666666667vw;
  98. & > div {
  99. padding: 224px 16px 0;
  100. .purchase-privilege {
  101. padding: 16px;
  102. height: 102px;
  103. background: #ffffff;
  104. box-shadow: 0px 2px 4px 0px #f6e5d3;
  105. border-radius: 8px;
  106. display: grid;
  107. grid-gap: 8px;
  108. grid-template-columns: repeat(3, 1fr);
  109. & > div {
  110. text-align: center;
  111. font-family: PingFangSC, PingFang SC;
  112. font-weight: 400;
  113. font-size: 14px;
  114. color: #1c2023;
  115. line-height: 20px;
  116. font-style: normal;
  117. & > img {
  118. width: 42px;
  119. height: 42px;
  120. display: block;
  121. margin: 0 auto;
  122. }
  123. }
  124. }
  125. }
  126. }
  127. .payment-container {
  128. border-radius: 10px 10px 0 0;
  129. padding: 16px;
  130. height: 66vh;
  131. display: flex;
  132. flex-direction: column;
  133. background: #f4f6f8;
  134. overflow-y: auto;
  135. .payment-container-title {
  136. font-family: PingFangSC, PingFang SC;
  137. font-weight: bold;
  138. font-size: 18px;
  139. color: #0a132b;
  140. line-height: 20px;
  141. text-align: center;
  142. font-style: normal;
  143. }
  144. .payment-container-info {
  145. margin-top: 16px;
  146. height: 100px;
  147. background: #ffffff;
  148. border-radius: 16px;
  149. display: flex;
  150. justify-content: center;
  151. align-items: center;
  152. .payment-container-info_value {
  153. font-family: PingFangSC, PingFang SC;
  154. font-weight: bold;
  155. font-size: 18px;
  156. color: #0a132b;
  157. font-style: normal;
  158. span {
  159. font-size: 14px;
  160. }
  161. }
  162. .payment-container-info_name {
  163. font-family: PingFangSC, PingFang SC;
  164. font-weight: 400;
  165. font-size: 14px;
  166. color: #0a132b;
  167. font-style: normal;
  168. }
  169. }
  170. .payment-container-num {
  171. margin-top: 16px;
  172. padding: 16px;
  173. box-sizing: border-box;
  174. height: 50px;
  175. background: #ffffff;
  176. border-radius: 16px;
  177. font-family: PingFangSC, PingFang SC;
  178. font-weight: bold;
  179. font-size: 14px;
  180. color: #0a132b;
  181. line-height: 18px;
  182. text-align: left;
  183. display: flex;
  184. font-style: normal;
  185. .van-stepper {
  186. margin-left: 10px;
  187. }
  188. }
  189. .payment-container-method {
  190. .payment-container-method_title {
  191. font-family: PingFangSC, PingFang SC;
  192. font-weight: bold;
  193. font-size: 14px;
  194. color: #0a132b;
  195. line-height: 18px;
  196. text-align: left;
  197. font-style: normal;
  198. margin: 16px 0;
  199. }
  200. .payment-container-method_select {
  201. display: grid;
  202. grid-gap: 8px;
  203. grid-template-columns: repeat(2, 1fr);
  204. & > div {
  205. height: 54px;
  206. line-height: 54px;
  207. background: #edeef0;
  208. border-radius: 6px;
  209. display: flex;
  210. justify-content: center;
  211. align-items: center;
  212. padding: 0 18px;
  213. font-family: PingFangSC, PingFang SC;
  214. font-weight: bold;
  215. font-size: 14px;
  216. color: #666666;
  217. border: 1px solid transparent;
  218. line-height: 18px;
  219. font-style: normal;
  220. &.active {
  221. background: #ffffff;
  222. border-radius: 6px;
  223. border: 1px solid #3b7fff;
  224. position: relative;
  225. &::after {
  226. position: absolute;
  227. top: 0;
  228. right: 0;
  229. width: 26px;
  230. height: 15px;
  231. background: #3a86fe;
  232. border-radius: 0px 6px 0px 6px;
  233. display: block;
  234. content: '√';
  235. font-size: 10px;
  236. text-align: center;
  237. line-height: 15px;
  238. color: #ffffff;
  239. }
  240. }
  241. & > img {
  242. width: 24px;
  243. height: 24px;
  244. margin-right: 4px;
  245. }
  246. }
  247. }
  248. }
  249. .payment-container-amount {
  250. background: #ffffff;
  251. box-shadow: 0px 0px 13px 0px rgba(206, 206, 206, 0.5);
  252. border-radius: 16px;
  253. display: flex;
  254. justify-content: space-between;
  255. margin-top: 24px;
  256. & > div:first-of-type {
  257. font-family: PingFangSC, PingFang SC;
  258. font-weight: bold;
  259. font-size: 14px;
  260. color: #0a132b;
  261. line-height: 20px;
  262. text-align: left;
  263. font-style: normal;
  264. padding: 16px 0 16px 16px;
  265. & > span {
  266. font-size: 18px;
  267. color: #f04646;
  268. line-height: 20px;
  269. font-style: normal;
  270. span {
  271. font-size: 12px;
  272. }
  273. }
  274. }
  275. & > div:last-of-type {
  276. font-family: PingFangSC, PingFang SC;
  277. font-weight: 600;
  278. font-size: 16px;
  279. color: #ffffff;
  280. line-height: 55px;
  281. text-align: left;
  282. font-style: normal;
  283. width: 136px;
  284. height: 55px;
  285. text-align: center;
  286. background: linear-gradient(90deg, #38aefc 0%, #3b7fff 100%);
  287. border-radius: 16px;
  288. }
  289. }
  290. .payment-container-agreement {
  291. margin-top: 9px;
  292. font-family: PingFangSC, PingFang SC;
  293. font-weight: 500;
  294. font-size: 12px;
  295. color: #bbbbbb;
  296. line-height: 16px;
  297. text-align: center;
  298. font-style: normal;
  299. span{
  300. color: #3A86FE;
  301. }
  302. }
  303. }
  304. }
  305. ::v-deep .van-nav-bar__arrow {
  306. color: #000000;
  307. font-size: 24px;
  308. }
  309. ::v-deep .van-nav-bar__title {
  310. font-weight: bold !important;
  311. font-size: 17px !important;
  312. color: #0a132b !important;
  313. line-height: 24px !important;
  314. }
  315. </style>