index.css 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699
  1. page {
  2. font-size: 16px;
  3. }
  4. ax-body {
  5. display: block;
  6. height: 100%;
  7. background: linear-gradient(
  8. 180deg,
  9. #c7fffd 0%,
  10. #97e8fa 10%,
  11. #f6f6f6 74%,
  12. #f6f6f6 100%
  13. );
  14. }
  15. ax-body >>> .ax-body .__root {
  16. display: flex;
  17. flex-direction: column;
  18. padding-left: 0 !important;
  19. padding-right: 0 !important;
  20. position: relative;
  21. overflow: hidden !important;
  22. padding-bottom: var(--app-navigation-heiht) !important;
  23. }
  24. .main-scroll-wrap {
  25. flex: 1;
  26. position: relative;
  27. height: 1200rpx;
  28. }
  29. .root-scroll {
  30. position: absolute;
  31. top: 0;
  32. left: 0;
  33. right: 0;
  34. bottom: 0;
  35. }
  36. .concat-father {
  37. position: absolute;
  38. bottom: 170rpx;
  39. right: 16rpx;
  40. }
  41. .concat-icon {
  42. width: 120rpx;
  43. height: 120rpx;
  44. }
  45. .contet-root {
  46. height: 100%;
  47. }
  48. .base {
  49. padding-left: 10px;
  50. padding-right: 10px;
  51. }
  52. /* 导航栏 */
  53. app-navigation {
  54. display: block;
  55. position: fixed;
  56. left: 0;
  57. right: 0;
  58. bottom: 0;
  59. }
  60. /* 标题栏 */
  61. .titlebar {
  62. display: flex;
  63. align-items: center;
  64. padding-left: 3px;
  65. }
  66. .titlebar .page-title {
  67. width: 133px;
  68. height: 33px;
  69. }
  70. .titlebar .page-subtitle {
  71. font-size: 12px;
  72. }
  73. /* 定位城市 */
  74. .search-view {
  75. position: sticky;
  76. top: 0;
  77. z-index: 90;
  78. }
  79. .arrears-tips {
  80. margin: auto;
  81. margin-top: 20rpx;
  82. display: flex;
  83. align-items: center;
  84. justify-content: space-between;
  85. transition: opacity 0.3s;
  86. opacity: 1;
  87. width: 702rpx;
  88. height: 72rpx;
  89. background: #fff6e8;
  90. border-radius: 16rpx;
  91. }
  92. .arrears-left {
  93. display: flex;
  94. align-items: center;
  95. gap: 20rpx;
  96. }
  97. .arrears-icon {
  98. width: 30rpx;
  99. height: 30rpx;
  100. margin-left: 20rpx;
  101. }
  102. .arrears-text {
  103. font-size: 24rpx;
  104. color: #fab04d;
  105. }
  106. .arrears-btn {
  107. width: 112rpx;
  108. height: 48rpx;
  109. background: #fab14f;
  110. border-radius: 24rpx;
  111. font-size: 24rpx;
  112. color: #ffffff;
  113. text-align: center;
  114. line-height: 48rpx;
  115. margin-right: 20rpx;
  116. }
  117. .locate-city {
  118. display: flex;
  119. align-items: center;
  120. margin-right: 6px;
  121. justify-content: ;
  122. }
  123. .locate-city ._icon {
  124. display: inline-block;
  125. width: 20px;
  126. height: 20px;
  127. margin-right: 5px;
  128. }
  129. .locate-city .__name {
  130. margin-bottom: 6rpx;
  131. }
  132. /* 搜索条 */
  133. .search-bar {
  134. flex: 1;
  135. display: flex;
  136. align-items: center;
  137. height: 30px;
  138. padding: 0 10px;
  139. border-radius: 8px;
  140. background: rgba(255, 255, 255, 0.6);
  141. }
  142. .search-bar input {
  143. flex: 1;
  144. display: block;
  145. font-size: 14px;
  146. background-color: transparent;
  147. }
  148. .search-bar ._icon-search {
  149. display: inline-block;
  150. width: 20px;
  151. height: 20px;
  152. margin-left: 10px;
  153. }
  154. .search-map-mode {
  155. display: flex;
  156. align-items: center;
  157. gap: 20rpx;
  158. width: 220rpx;
  159. height: 60rpx;
  160. background: rgba(255, 255, 255, 0.6);
  161. border-radius: 16rpx;
  162. justify-content: center;
  163. }
  164. .search-map-icon {
  165. width: 40rpx;
  166. height: 40rpx;
  167. }
  168. /* 快捷栏 */
  169. .shortcut-bar {
  170. display: flex;
  171. align-items: center;
  172. justify-content: space-between;
  173. gap: 20rpx;
  174. padding: 15px 0px;
  175. }
  176. .buy-charge-coupon {
  177. position: relative;
  178. width: 340rpx;
  179. height: 376rpx;
  180. background: #ffffff;
  181. box-shadow: inset 0rpx 20rpx 40rpx 2rpx rgba(100, 255, 218, 0.26);
  182. border-radius: 16rpx;
  183. text-align: center;
  184. }
  185. .coupon-tag {
  186. position: absolute;
  187. top: 0;
  188. right: 0;
  189. width: 116rpx;
  190. height: 52rpx;
  191. background: linear-gradient(134deg, #25eb64 0%, #0ad549 100%);
  192. box-shadow: inset 0rpx 20rpx 40rpx 2rpx rgba(100, 255, 218, 0.26);
  193. border-radius: 0rpx 16rpx 0rpx 16rpx;
  194. font-size: 28rpx;
  195. color: #ffffff;
  196. line-height: 52rpx;
  197. }
  198. .charge-title {
  199. margin-top: 62rpx;
  200. display: flex;
  201. align-items: center;
  202. gap: 20rpx;
  203. margin-left: 24rpx;
  204. }
  205. .title-coupon-text {
  206. width: 144rpx;
  207. height: 36rpx;
  208. }
  209. .title-right-text {
  210. width: 34rpx;
  211. height: 34rpx;
  212. background: #000;
  213. border-radius: 50%;
  214. }
  215. .ax-iconline {
  216. color: #fff;
  217. display: flex;
  218. align-items: center;
  219. justify-content: center;
  220. }
  221. .charge-text-dsc {
  222. margin-top: 20rpx;
  223. font-size: 28rpx;
  224. color: #aaaaaa;
  225. text-align: left;
  226. margin-left: 24rpx;
  227. }
  228. .charge-coupon-img {
  229. position: absolute;
  230. bottom: 0;
  231. left: 50%;
  232. transform: translate(-50%, 0);
  233. width: 170rpx;
  234. height: 214rpx;
  235. }
  236. .order-center {
  237. display: flex;
  238. align-items: center;
  239. width: 340rpx;
  240. height: 178rpx;
  241. background: #ffffff;
  242. box-shadow: inset 0rpx 20rpx 60rpx 2rpx rgba(100, 234, 255, 0.26);
  243. border-radius: 16rpx;
  244. }
  245. .order-center-number {
  246. margin-top: 20rpx;
  247. margin-left: 24rpx;
  248. font-size: 28rpx;
  249. color: #aaaaaa;
  250. }
  251. .order-center-icon {
  252. width: 100rpx;
  253. height: 100rpx;
  254. }
  255. .shortcut-bar ._item {
  256. display: flex;
  257. align-items: center;
  258. justify-content: center;
  259. flex-direction: column;
  260. }
  261. .shortcut-bar ._item ._icon {
  262. width: 40px;
  263. height: 40px;
  264. }
  265. .shortcut-bar ._item ._name {
  266. font-size: 12px;
  267. margin-top: 6px;
  268. }
  269. /* 版头广告 */
  270. .banner {
  271. width: 100%;
  272. height: calc((100vw - 20px) * (5 / 20));
  273. }
  274. .banner .swiper-item {
  275. display: flex;
  276. width: 100%;
  277. }
  278. .banner .swiper-item .swiper-item-image {
  279. display: block;
  280. width: 100%;
  281. border-radius: 5px;
  282. }
  283. /* 选项条 */
  284. .options-bar {
  285. display: flex;
  286. align-items: center;
  287. padding: 15px 0px;
  288. gap: 20rpx;
  289. }
  290. .options-tabs {
  291. width: 152rpx;
  292. height: 60rpx;
  293. background: #ffffff;
  294. border-radius: 16rpx;
  295. font-size: 28rpx;
  296. color: #2b303a;
  297. text-align: center;
  298. line-height: 60rpx;
  299. transition: all 0.3s ease-in-out;
  300. position: relative;
  301. overflow: hidden;
  302. }
  303. .options-tabs::before {
  304. content: "";
  305. position: absolute;
  306. top: 0;
  307. left: 0;
  308. right: 0;
  309. bottom: 0;
  310. background: linear-gradient(99deg, #8ff8fb 0%, #47aeff 100%);
  311. border-radius: 16rpx;
  312. opacity: 0;
  313. transition: opacity 0.3s ease-in-out;
  314. z-index: 1;
  315. }
  316. .options-tabs text {
  317. position: relative;
  318. z-index: 2;
  319. }
  320. .options-bar .options-tabs.active {
  321. width: 152rpx;
  322. height: 60rpx;
  323. background: #ffffff;
  324. /* 保持白色背景,用伪元素显示渐变 */
  325. border-radius: 16rpx;
  326. font-size: 28rpx;
  327. color: #2b303a;
  328. text-align: center;
  329. line-height: 60rpx;
  330. font-weight: bold;
  331. /* 过渡效果 */
  332. transition: all 0.3s ease-in-out;
  333. }
  334. .options-bar .options-tabs.active::before {
  335. opacity: 1;
  336. }
  337. /* 可选:添加点击反馈动画 */
  338. .options-tabs:active {
  339. transform: scale(0.95);
  340. transition: transform 0.1s ease;
  341. }
  342. .options-bar .option-item::after {
  343. content: "";
  344. display: block;
  345. width: 30px;
  346. height: 6px;
  347. transform: translateY(5px) scaleX(0);
  348. border-radius: 10pc;
  349. background: linear-gradient(to right, #8ff8fb, #47aeff);
  350. transition: all 400ms ease;
  351. }
  352. .options-bar .option-item.active::after {
  353. transform: translateY(5px) scaleX(1);
  354. }
  355. .options-bar .separ {
  356. flex: 1;
  357. }
  358. .options-bar .separ::before {
  359. content: "";
  360. display: block;
  361. height: 13px;
  362. border-left: 1px solid #3eb6f8;
  363. }
  364. .options-bar .map-mode {
  365. color: #3eb6f8;
  366. }
  367. .options-bar .map-mode ._icon {
  368. width: 17px;
  369. height: 17px;
  370. margin-right: 5px;
  371. }
  372. /* 电站列表 */
  373. .list-scroll-wrap {
  374. height: var(--list-heiht);
  375. position: relative;
  376. }
  377. .list-scroll-wrap > .list-scroll {
  378. position: absolute;
  379. top: 0;
  380. left: 0;
  381. right: 0;
  382. bottom: 0;
  383. }
  384. .list {
  385. padding: 10px;
  386. }
  387. .list .item {
  388. display: block;
  389. border-radius: 8px;
  390. background-color: #fff;
  391. box-shadow: 0 1px 10px rgba(0, 39, 52, 0.1);
  392. overflow: hidden;
  393. }
  394. .list .item + .item {
  395. margin-top: 10px;
  396. }
  397. .list .item .contet {
  398. padding: 10px;
  399. background: #fff;
  400. /* url('@/static/img/charging_station_item_background.png') no-repeat center */
  401. }
  402. .list .item .name {
  403. display: flex;
  404. font-weight: bold;
  405. position: relative;
  406. }
  407. .list .item .name > .txt {
  408. flex: 1;
  409. line-height: 1.5em;
  410. }
  411. .list .item .name > .firm-price {
  412. position: absolute;
  413. right: -20rpx;
  414. top: -20rpx;
  415. width: 200rpx;
  416. height: 52rpx;
  417. background: linear-gradient(132deg, #ff6464 0%, #ff3a3a 100%);
  418. border-radius: 0rpx 16rpx 0rpx 40rpx;
  419. text-align: center;
  420. line-height: 52rpx;
  421. color: #fff;
  422. }
  423. .list .item .name > .icon {
  424. display: flex;
  425. align-items: center;
  426. justify-content: center;
  427. width: 20px;
  428. height: 20px;
  429. border-radius: 4px;
  430. background: linear-gradient(to bottom, #2a67f0, #769ffc);
  431. margin-right: 10px;
  432. }
  433. .list .item .name > .icon image {
  434. display: block;
  435. width: 10px;
  436. }
  437. .list .item .parkade {
  438. display: flex;
  439. font-size: 12px;
  440. color: #aaa;
  441. margin-top: 15px;
  442. }
  443. .list .item .parkade > .txt {
  444. flex: 1;
  445. line-height: 1.5em;
  446. }
  447. .list .item .parkade > .icon {
  448. display: inline-flex;
  449. align-items: center;
  450. justify-content: center;
  451. width: 20px;
  452. height: 20px;
  453. background-color: #5be7ff;
  454. margin-right: 10px;
  455. }
  456. .list .item .parkade > .icon image {
  457. display: block;
  458. width: 10px;
  459. }
  460. .list .item .info {
  461. margin-top: 24rpx;
  462. width: 654rpx;
  463. height: 84rpx;
  464. background: linear-gradient(
  465. 90deg,
  466. rgba(170, 255, 235, 0.3) 0%,
  467. rgba(175, 247, 252, 0.2) 44%,
  468. rgba(139, 232, 252, 0) 100%
  469. );
  470. border-radius: 16rpx 16rpx 16rpx 16rpx;
  471. padding-left: 20rpx;
  472. }
  473. .list .item .info .charge {
  474. display: inline-flex;
  475. align-items: center;
  476. justify-content: center;
  477. }
  478. .list .item .info .charge > .icon {
  479. display: inline-flex;
  480. align-items: center;
  481. justify-content: center;
  482. width: 20px;
  483. height: 20px;
  484. color: #fff;
  485. font-size: 13px;
  486. border-radius: 4px;
  487. background: linear-gradient(to bottom, #4fef86, #00aa3a);
  488. }
  489. .list .item .info .charge > .icon.blue {
  490. background: linear-gradient(to bottom, #8eb1ff, #3071ff);
  491. }
  492. .list .item .info .charge > .value {
  493. margin-left: 5px;
  494. }
  495. .list .item .info .charge > .max {
  496. color: #aaa;
  497. font-size: 12px;
  498. }
  499. .list .item .info .charge > .max::before {
  500. content: "/";
  501. }
  502. .list .item .info .charge + .charge {
  503. margin-left: 30px;
  504. }
  505. .list .item .info .distance {
  506. display: flex;
  507. align-items: center;
  508. height: 22px;
  509. border: 1px solid #3eb6f8;
  510. border-radius: 100pc;
  511. font-size: 12px;
  512. color: #3eb6f8;
  513. padding-right: 7px;
  514. overflow: hidden;
  515. }
  516. .list .item .info .distance > .icon {
  517. display: inline-flex;
  518. align-items: center;
  519. justify-content: center;
  520. width: 20px;
  521. height: 20px;
  522. background-color: #3eb6f8;
  523. margin-right: 5px;
  524. }
  525. .list .item .info .distance > .icon image {
  526. display: block;
  527. width: 10px;
  528. }
  529. .list .item .price {
  530. display: flex;
  531. align-items: center;
  532. justify-content: space-between;
  533. background-color: #fff;
  534. height: 45px;
  535. font-size: 14px;
  536. padding: 0 10px;
  537. box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
  538. }
  539. .list .item .price .value {
  540. font-size: 20px;
  541. font-weight: bold;
  542. }
  543. .list .item .price .unit {
  544. margin-left: 6rpx;
  545. font-weight: bold;
  546. font-size: 12px;
  547. margin-left: 6rpx;
  548. }
  549. .card-bottom-text {
  550. width: 212rpx;
  551. height: 52rpx;
  552. background: url("@/static/img/firm-bg.png");
  553. background-size: cover;
  554. background-position: center;
  555. line-height: 52rpx;
  556. }
  557. .card-bottom-text-minitext {
  558. margin-left: 110rpx;
  559. font-weight: bold;
  560. font-size: 28rpx;
  561. color: #ff5d50;
  562. }
  563. .operation-price-btn {
  564. margin-left: 10rpx;
  565. width: 140rpx;
  566. height: 40rpx;
  567. background: #ff6457;
  568. border-radius: 22rpx 22rpx 22rpx 22rpx;
  569. font-style: italic;
  570. text-align: center;
  571. line-height: 40rpx;
  572. font-weight: 400;
  573. font-size: 22rpx;
  574. color: #ffffff;
  575. }
  576. .ordinary-price {
  577. margin-left: 12rpx;
  578. font-size: 24rpx;
  579. color: #aaaaaa;
  580. text-decoration: line-through;
  581. }
  582. .ad-popup {
  583. height: 1000rpx;
  584. }
  585. .ad-swiper {
  586. height: 100%;
  587. }
  588. .ad-swiper-item {
  589. height: 700rpx;
  590. }
  591. .close-get {
  592. margin-left: 550rpx;
  593. width: 50rpx;
  594. height: 50rpx;
  595. border-radius: 50%;
  596. border: 2rpx solid #133a4f;
  597. color: #fff;
  598. font-size: 28rpx;
  599. font-weight: bold;
  600. text-align: center;
  601. line-height: 50rpx;
  602. }
  603. .ad-image {
  604. margin-top: 10rpx;
  605. width: 600rpx;
  606. border-radius: 16rpx;
  607. }