parkingFeeDetail.vue 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234
  1. <template>
  2. <div v-if="orderDetail && orderDetail.parkingRecord && orderDetail.parkingRecord.vehicleNo" :class="theme">
  3. <div class="scroll-Y">
  4. <div
  5. class="vehicleNo"
  6. >
  7. {{ orderDetail.parkingRecord.vehicleNo | formatCarno }}
  8. <!-- {{ $route.query.carno | formatCarno }} -->
  9. </div>
  10. <div class="info-box mb--20">
  11. <div class="info-item-box">
  12. <div class="label">停车场</div>
  13. <div class="value">{{ orderDetail.parkInfo.parkName }}</div>
  14. </div>
  15. <div class="info-item-box">
  16. <div class="label">入场时间</div>
  17. <div class="value">{{ orderDetail.parkingRecord.enterTime }}</div>
  18. </div>
  19. <div class="info-item-box">
  20. <div class="label">已停车时长</div>
  21. <div class="value">{{ orderDetail.parkingRecord.serviceMin | parkingTime }}</div>
  22. </div>
  23. <div class="van-hairline--bottom hr"></div>
  24. <div class="info-item-box npb">
  25. <div class="label pb--27">应缴</div>
  26. <div class="value bold-fz">
  27. {{ ( orderDetail.parkingRecord.totalFeeInYuan ) | currency }}
  28. </div>
  29. </div>
  30. </div>
  31. <div class="info-box mb--30">
  32. <div class="info-item-box" v-if="enableConsume || memberLevelDiscount">
  33. <div class="label">停车优惠</div>
  34. <div @click="discounts" :class="['value',discountDesc === '暂无可用优惠' ? '' : 'text-red']">{{ discountDesc }}
  35. <van-icon name="arrow"/>
  36. </div>
  37. </div>
  38. <div class="info-item-box" v-if="enablePoints">
  39. <div class="label">积分减免</div>
  40. <div :class="['value']" @click="showPointsMathPopup('bottom')">
  41. <span :class="[integralDesc === '今日已达上限' ? 'text-disable' : 'text-red']">{{ integralDesc }}</span>
  42. <van-icon name="arrow"/>
  43. </div>
  44. </div>
  45. <div class="info-item-box" v-if="enableCoupon">
  46. <div class="label">优惠劵</div>
  47. <div :class="['value',]" @click="coupon">
  48. <span :class="[ coupons.length > 0 ? 'text-red': 'text-disable']">{{ couponDesc }}</span>
  49. <van-icon name="arrow"/>
  50. </div>
  51. </div>
  52. <div class="info-item-box" v-if="enablePaperCoupons">
  53. <div class="label">纸质优惠劵</div>
  54. <div :class="['value', 'text-red']" @click="paperCoupon">扫描纸质优惠劵二维码
  55. <van-icon name="arrow"/>
  56. </div>
  57. </div>
  58. <div class="info-item-box">
  59. <div class="label">优惠金额:</div>
  60. <div :class="['value']">-{{ usingTotalDiscount | currency }}</div>
  61. </div>
  62. <div class="van-hairline--bottom hr"></div>
  63. <div class="info-item-box npb">
  64. <div class="label pb--27">应付金额</div>
  65. <div :class="['value', 'bold-fz', usingTotalDiscount === 0 && 'text-red']">
  66. {{ actualPayFee | currency }}
  67. </div>
  68. </div>
  69. </div>
  70. <div class="description-box">
  71. <div class="title_box">
  72. <span class="title">缴费说明</span>
  73. </div>
  74. <!-- <div class="sub_title_box">-->
  75. <!-- <span class="title">计费基础规则:</span>-->
  76. <!-- </div>-->
  77. <div class="info" v-html="setDescription()"></div>
  78. </div>
  79. <!-- <div style="height: 50px;"></div>-->
  80. <!-- 开启底部安全区适配 -->
  81. <van-number-keyboard safe-area-inset-bottom />
  82. </div>
  83. <div class="flewx">
  84. <div class="control-box">
  85. <div class="flewx-content">
  86. <div class="fee-box">
  87. <div>合计:</div>
  88. <div class="actualPayFee">{{
  89. actualPayFee | currency
  90. }}
  91. </div>
  92. <div :class="['van-hairline--surround','usingTotalDiscount', usingTotalDiscount > 0 && 'usingTotalDiscount-red']"
  93. >已优惠{{ usingTotalDiscount | currency }}元
  94. </div
  95. >
  96. <!-- <van-count-down :time="3 * 60 * 1000" /> -->
  97. </div>
  98. <div class="count-down-box">
  99. <van-count-down
  100. v-if="orderDetail.parkingRecord.vehicleNo"
  101. format="mm:ss"
  102. ref="countDown"
  103. :time="refreshTime * 1000"
  104. @finish="resetCountDown()"
  105. >
  106. <!-- -->
  107. </van-count-down>
  108. <span class="desc">后同步最新费用</span>
  109. </div>
  110. </div>
  111. <div class="btn-box">
  112. <k-button :disabled="btnLoading" style="width: 100%;max-width: 240px" title="支付" disabledColor="#D1D2D9" @click="toPay">
  113. <template v-slot:left>
  114. <van-loading v-if="btnLoading" size="20" color="#fff" style="margin-right: 10px"/>
  115. </template>
  116. </k-button>
  117. </div>
  118. </div>
  119. <!-- 开启底部安全区适配 -->
  120. <van-number-keyboard safe-area-inset-bottom />
  121. </div>
  122. <van-popup
  123. v-model="popup"
  124. position="bottom"
  125. :animation="false"
  126. :maskClick="false"
  127. :close-on-click-overlay="false"
  128. >
  129. <div class="popue_box" v-if="orderDetail && orderDetail.discountInfo">
  130. <div class="popue_box_index1">积分减免</div>
  131. <div class="popue_box_index">
  132. <div>减免规则</div>
  133. <div style="color: #989898">{{ pointsPerHour }}积分抵扣{{ orderDetail.parkInfo.parkMallCode === 5 ? unitAmount + '元' : '1小时' }}</div>
  134. </div>
  135. <div class="popue_box_index">
  136. <div>可用积分</div>
  137. <div style="color: #999999">{{ available }}分</div>
  138. </div>
  139. <div class="popue_box_index">
  140. <div>抵扣{{ orderDetail.parkInfo.parkMallCode === 5 ? '金额' : '时长' }}</div>
  141. <div class="popue_box_index" style="width: 335px">
  142. <div class="popue_box_index4_xs van-hairline--surround">
  143. <div class="popue_box_index4_xs_index1" @click="$store.dispatch('order/pointsMath',{type: 'minus', callback: pointsMathCallback})">
  144. -
  145. </div>
  146. <div class="popue_box_index4_xs_index2">{{ pointsTime }}</div>
  147. <div class="popue_box_index4_xs_index3" @click="$store.dispatch('order/pointsMath',{type: 'add', callback: pointsMathCallback})">
  148. +
  149. </div>
  150. </div>
  151. <div style="color: #808080">
  152. {{ orderDetail.parkInfo.parkMallCode === 5 ? '元' : '小时' }}
  153. </div>
  154. </div>
  155. </div>
  156. <div class="popue_box_index5">
  157. <div
  158. :class="{
  159. popue_box_index4_by: true,
  160. }"
  161. @click="cancelPointsMathPopup()"
  162. >
  163. 取消
  164. </div>
  165. <div
  166. :class="{
  167. popue_box_index4_by1: true,
  168. }"
  169. @click="savePointsMathPopup()"
  170. >
  171. 确定
  172. </div>
  173. </div>
  174. <van-number-keyboard safe-area-inset-bottom/>
  175. </div>
  176. </van-popup>
  177. </div>
  178. </template>
  179. <script>
  180. import parkingFeeDetailJs from './mixins/parkingFeeDetail'
  181. import baseMixins from './mixins/base'
  182. export default {
  183. mixins: [baseMixins, parkingFeeDetailJs]
  184. }
  185. </script>
  186. <style lang="less" scoped>
  187. .text-red {
  188. color: #F24439!important;
  189. }
  190. .scroll-Y {
  191. width: 100%;
  192. //display: flex;
  193. //flex-direction: column;
  194. background: #F5F7FE;
  195. padding-bottom: 250px;
  196. height: 100vh;
  197. overflow-y: scroll;
  198. //padding-bottom: 20px;
  199. padding-top: 24px;
  200. }
  201. /*车牌号*/
  202. .vehicleNo {
  203. width: 666px;
  204. height: 109.5px;
  205. line-height: 109.5px;
  206. margin-left: 24px;
  207. background-color: #FAFBFF;
  208. border-radius: 4px;
  209. margin-bottom: 20px;
  210. font-style: normal;
  211. font-weight: 600;
  212. font-size: 36px;
  213. padding-left: 36px;
  214. color: #333333;
  215. }
  216. .pb--27 {
  217. padding-bottom: 27px;
  218. }
  219. .mb--20 {
  220. margin-bottom: 20px;
  221. }
  222. .mb--30 {
  223. margin-bottom: 30px;
  224. }
  225. .info-box {
  226. background: #FAFBFF;
  227. padding-top: 30px;
  228. width: 702px;
  229. margin-left: 24px;
  230. .info-item-box {
  231. display: flex;
  232. justify-content: space-between;
  233. padding-bottom: 30px;
  234. &.npb{
  235. padding-bottom: 0;
  236. }
  237. .label {
  238. padding-left: 36px;
  239. //padding-bottom: 39px;
  240. text-align: left;
  241. font-family: 'PingFang SC';
  242. font-style: normal;
  243. font-weight: 400;
  244. font-size: 30px;
  245. color: #999999;
  246. }
  247. .value {
  248. text-align: right;
  249. padding-right: 36px;
  250. font-family: 'PingFang SC';
  251. font-style: normal;
  252. font-weight: 400;
  253. font-size: 30px;
  254. color: #333333;
  255. .van-icon {
  256. color: #999999;
  257. }
  258. &.bold-fz {
  259. font-family: 'PingFang SC';
  260. font-style: normal;
  261. font-weight: 500;
  262. font-size: 34px;
  263. color: #333333;
  264. }
  265. }
  266. }
  267. .hr {
  268. margin-bottom: 23px;
  269. }
  270. }
  271. .description-box {
  272. padding-left: 30px;
  273. .title_box {
  274. padding-bottom: 10px;
  275. .title {
  276. font-family: 'PingFang SC';
  277. font-style: normal;
  278. font-weight: 500;
  279. font-size: 30px;
  280. color: #333333;
  281. }
  282. }
  283. .sub_title_box {
  284. padding-bottom: 5px;
  285. .title {
  286. font-family: 'PingFang SC';
  287. font-style: normal;
  288. font-weight: 400;
  289. font-size: 26px;
  290. color: #333333;
  291. }
  292. }
  293. .info {
  294. font-family: 'PingFang SC';
  295. font-style: normal;
  296. font-weight: 400;
  297. font-size: 26px;
  298. line-height: 40px;
  299. /* or 154% */
  300. color: #999999;
  301. }
  302. }
  303. /*积分*/
  304. .popue_box {
  305. height: 695px;
  306. background-color: #fff;
  307. position: fixed;
  308. bottom: 0;
  309. left: 0;
  310. right: 0;
  311. .popue_box_index {
  312. width: 92%;
  313. margin-left: 4%;
  314. height: 117px;
  315. border-bottom: 1px solid #f5f5f5;
  316. display: flex;
  317. align-items: center;
  318. justify-content: space-between;
  319. font-family: 'PingFang SC';
  320. font-style: normal;
  321. font-weight: 400;
  322. font-size: 34px;
  323. text-align: right;
  324. color: #333333;
  325. }
  326. .popue_box_index1 {
  327. width: 92%;
  328. font-size: 34px;
  329. margin-left: 4%;
  330. font-weight: 700;
  331. height: 117px;
  332. line-height: 117px;
  333. border-bottom: 1px solid #f5f5f5;
  334. text-align: center;
  335. }
  336. .popue_box_index4_xs {
  337. width: 260px;
  338. height: 72px;
  339. border: 2px solid #D8DAE0;
  340. display: flex;
  341. align-items: center;
  342. justify-content: space-between;
  343. border-radius: 10px;
  344. .popue_box_index4_xs_index1 {
  345. width: 72px;
  346. height: 72px;
  347. background-color: #FAFBFF;
  348. text-align: center;
  349. line-height: 72px;
  350. border-right: 1px solid #e5e6ec;
  351. }
  352. .popue_box_index4_xs_index2 {
  353. width: 116px;
  354. height: 72px;
  355. line-height: 72px;
  356. text-align: center;
  357. background-color: #FFFFFF;
  358. }
  359. .popue_box_index4_xs_index3 {
  360. width: 72px;
  361. height: 72px;
  362. background-color: #f5f8fb;
  363. text-align: center;
  364. line-height: 72px;
  365. border-left: 1px solid #e5e6ec;
  366. }
  367. }
  368. .popue_box_index5 {
  369. font-size: 30px;
  370. width: 92%;
  371. margin-left: 4%;
  372. font-weight: 700;
  373. height: 214px;
  374. line-height: 90px;
  375. display: flex;
  376. align-items: center;
  377. justify-content: space-between;
  378. }
  379. .popue_box_index4_by {
  380. width: 320px;
  381. height: 90px;
  382. line-height: 90px;
  383. color: #fff;
  384. border-radius: 60px;
  385. text-align: center;
  386. color: var(--k-color-primary-01, #064c8a);
  387. font-weight: 700;
  388. border: 1px solid var(--k-color-primary-01, #064c8a);
  389. }
  390. .blue_popue_box_index4_by {
  391. .color_popue_box_index4_by('blue');
  392. }
  393. .green_popue_box_index4_by {
  394. .color_popue_box_index4_by('green');
  395. }
  396. .color_popue_box_index4_by(@value) {
  397. @color: 'color-@{value}';
  398. color: @@color;
  399. border: 1px solid @@color;
  400. }
  401. .popue_box_index4_by1 {
  402. width: 320px;
  403. height: 90px;
  404. line-height: 90px;
  405. color: #fff;
  406. border-radius: 60px;
  407. text-align: center;
  408. // background-image: linear-gradient(to right, #7e4fa1, #433c7f);
  409. background-color: var(--k-color-primary-01, #064c8a);
  410. border: 1px solid var(--k-color-primary-01, #064c8a);
  411. }
  412. }
  413. /*页面底部操作区*/
  414. .flewx {
  415. position: fixed;
  416. bottom: 0;
  417. right: 0;
  418. left: 0;
  419. box-shadow: 0 0 2px 0 hsla(0, 6%, 58%, 0.6);
  420. background-color: #fff;
  421. .control-box {
  422. width: 100%;
  423. box-sizing: border-box;
  424. display: flex;
  425. align-content: flex-start;
  426. align-items: center;
  427. //padding-bottom: constant(safe-area-inset-bottom);
  428. //padding-bottom: env(safe-area-inset-bottom);
  429. padding: 30px 24px 50px 30px;
  430. justify-content: space-between;
  431. .flewx-content {
  432. font-size: 28px;
  433. .fee-box {
  434. display: flex;
  435. align-items: center;
  436. justify-content: flex-start;
  437. }
  438. .actualPayFee {
  439. color: #333;
  440. font-size: 40px;
  441. }
  442. .usingTotalDiscount {
  443. font-family: 'PingFang SC';
  444. font-style: normal;
  445. font-weight: 400;
  446. font-size: 22px;
  447. //height: 22px;
  448. //line-height: 22px;
  449. margin-left: 7px;
  450. //border: 1px solid var(--k-color-red-01);
  451. background-color: #F4F7FF;
  452. border-radius: 2px;
  453. &::after {
  454. border-color: #999999;
  455. }
  456. color: #999999;
  457. padding: 1px 3px;
  458. &.usingTotalDiscount-red {
  459. color: var(--k-color-red-01);
  460. background-color: var(--k-color-red-06);
  461. &::after {
  462. border-color: var(--k-color-red-01);
  463. }
  464. }
  465. }
  466. .count-down-box {
  467. display: flex;
  468. font-weight: 400;
  469. align-items: center;
  470. color: var(--k-color-red-01);
  471. font-family: 'PingFang SC';
  472. font-style: normal;
  473. font-weight: 400;
  474. font-size: 26px;
  475. margin-top: 5px;
  476. .van-count-down {
  477. font-size: 30px;
  478. color: var(--k-color-red-01);
  479. }
  480. .desc {
  481. font-size: 30px;
  482. }
  483. }
  484. }
  485. .btn-box {
  486. display: flex;
  487. justify-content: flex-end;
  488. margin-left: 35px;
  489. flex: 1;
  490. max-width: 240px;
  491. }
  492. }
  493. .flewx_index3 {
  494. width: 150px;
  495. height: 70px;
  496. border-radius: 45px;
  497. text-align: center;
  498. font-size: 34px;
  499. line-height: 70px;
  500. color: #fff;
  501. // background-image: linear-gradient(to right, #7e4fa1, #433c7f);
  502. background: var(--k-color-primary-01, #064c8a);
  503. box-shadow: 2px 3px 5px #888888;
  504. //position: absolute;
  505. //right: 16px;
  506. }
  507. }
  508. .wrap {
  509. display: flex;
  510. flex-direction: column;
  511. width: 100%;
  512. .parkingFee {
  513. display: flex;
  514. flex-direction: column;
  515. .parkingFee-top {
  516. display: flex;
  517. flex-direction: column;
  518. background: #c69c6d;
  519. .top_content {
  520. padding: 30px 30px;
  521. margin-bottom: constant(safe-area-inset-bottom); // 兼容 IOS<11.2
  522. margin-bottom: env(safe-area-inset-bottom); // 兼容 IOS>=11.2
  523. box-sizing: border-box;
  524. display: flex;
  525. flex-direction: column;
  526. //width: 750px;
  527. //height: 280px;
  528. background: #fafbff;
  529. border: 1px solid #d8dae0;
  530. span {
  531. font-size: 24px;
  532. color: #898989;
  533. text-align: left;
  534. }
  535. .title_box {
  536. display: flex;
  537. align-items: center;
  538. justify-content: space-between;
  539. // margin-bottom: 20px;
  540. .title {
  541. // padding: 0px 14px;
  542. box-sizing: border-box;
  543. border-radius: 20px;
  544. font-size: 36px;
  545. color: #000;
  546. font-weight: 500;
  547. text-align: left;
  548. line-height: 50px;
  549. }
  550. }
  551. .info {
  552. // padding-left: 18px;
  553. font-size: 30px;
  554. width: 100%;
  555. color: #999999;
  556. line-height: 45px;
  557. }
  558. .info_show {
  559. word-break: break-all;
  560. text-overflow: ellipsis;
  561. overflow: hidden;
  562. display: -webkit-box;
  563. -webkit-line-clamp: 2;
  564. -webkit-box-orient: vertical;
  565. }
  566. .top_down {
  567. margin-top: 20px;
  568. width: 100%;
  569. // font-size: 20PX;
  570. line-height: 20px;
  571. text-align: center;
  572. color: #999999;
  573. }
  574. }
  575. .top_menu {
  576. background: #fff;
  577. padding: 30px 0;
  578. box-sizing: border-box;
  579. display: flex;
  580. justify-content: space-between;
  581. border-radius: 15px 15px 0 0;
  582. .menu_item {
  583. display: flex;
  584. flex-direction: column;
  585. align-items: center;
  586. width: 33.3%;
  587. img {
  588. width: 102px;
  589. height: 102px;
  590. }
  591. span {
  592. font-size: 24px;
  593. margin-top: 24px;
  594. }
  595. }
  596. }
  597. }
  598. .parkingFee-bottom {
  599. width: 100%;
  600. display: flex;
  601. flex-direction: column;
  602. padding: 14px 25px;
  603. box-sizing: border-box;
  604. // 车牌号查询
  605. .parkingFee-search {
  606. width: 100%;
  607. display: flex;
  608. flex-direction: column;
  609. background: #fff;
  610. border-radius: 24px;
  611. padding: 26px 25px 20px;
  612. box-sizing: border-box;
  613. .search_tip {
  614. color: #999;
  615. font-size: 24px;
  616. text-align: center;
  617. }
  618. .searchPrice {
  619. margin: 0 auto;
  620. width: 40%;
  621. height: 60px;
  622. line-height: 60px;
  623. border-radius: 20px;
  624. }
  625. }
  626. .search-list {
  627. display: flex;
  628. flex-direction: column;
  629. background: #fff;
  630. padding: 0 30px;
  631. box-sizing: border-box;
  632. margin-top: 20px;
  633. border-radius: 24px;
  634. width: 100%;
  635. .list_item {
  636. padding: 38px 0;
  637. box-sizing: border-box;
  638. display: flex;
  639. align-items: center;
  640. justify-content: space-between;
  641. border-bottom: 1px solid #f2f2f2;
  642. span {
  643. font-size: 28px;
  644. }
  645. button {
  646. height: 60px;
  647. line-height: 60px;
  648. margin: 0;
  649. }
  650. }
  651. }
  652. }
  653. }
  654. }
  655. // 缴费说明
  656. .payInstruct_wrap {
  657. width: 300px;
  658. margin: 0 auto;
  659. display: flex;
  660. flex-direction: column;
  661. background: #fff;
  662. border-radius: 20px;
  663. .scroll {
  664. height: 600px;
  665. display: flex;
  666. flex-direction: column;
  667. padding: 20px;
  668. box-sizing: border-box;
  669. .payInstruct_title {
  670. font-size: 30px;
  671. text-align: center;
  672. padding: 20px 0;
  673. box-sizing: border-box;
  674. border-bottom: 1px solid #f2f2f2;
  675. }
  676. .payInstruct_con {
  677. display: flex;
  678. width: 100%;
  679. padding: 20px 10px;
  680. box-sizing: border-box;
  681. span {
  682. font-size: 28px;
  683. color: #999;
  684. }
  685. }
  686. }
  687. }
  688. // 车牌号 & 虚拟键盘
  689. .input-box {
  690. width: 100%;
  691. height: 70px;
  692. margin: auto;
  693. background: rgba(255, 255, 255, 1);
  694. box-shadow: 0px 6px 8px 0px rgba(96, 100, 112, 0.1);
  695. border-radius: 0.4rem;
  696. margin: 1rem auto;
  697. display: flex;
  698. justify-content: center;
  699. .li {
  700. flex: 1;
  701. border: 1px solid rgba(206, 208, 210, 1);
  702. box-sizing: border-box;
  703. margin: 0 2px;
  704. font-size: 30px;
  705. display: flex;
  706. align-items: center;
  707. justify-content: center;
  708. color: #323233;
  709. img {
  710. width: 80%;
  711. height: 100%;
  712. }
  713. &.active {
  714. border-color: #3e67ff;
  715. }
  716. &:nth-child(2) {
  717. margin-right: 26px;
  718. }
  719. }
  720. }
  721. .class-van-button-small {
  722. min-width: 0;
  723. border-radius: 10px;
  724. margin: 10px 3px;
  725. box-shadow: 10px 10px 10px #aaa;
  726. }
  727. .class-plate-box {
  728. width: 100%;
  729. padding: 24px 0;
  730. box-sizing: border-box;
  731. position: relative;
  732. }
  733. .plate_number {
  734. width: 100%;
  735. display: flex;
  736. flex-direction: column;
  737. .plate_number_wrap {
  738. width: 100%;
  739. display: flex;
  740. flex-direction: column;
  741. background: #eaf1f9;
  742. padding: 0 0 10px;
  743. box-sizing: border-box;
  744. .close-box {
  745. width: 100%;
  746. font-size: 24px;
  747. color: #3e67ff;
  748. text-align: right;
  749. margin-right: 1.25rem;
  750. div {
  751. padding: 10px;
  752. }
  753. }
  754. .plate_chinese_box {
  755. width: 100%;
  756. display: flex;
  757. flex-wrap: wrap;
  758. justify-content: center;
  759. button {
  760. width: 9%;
  761. height: 2.5rem;
  762. line-height: 2.5rem;
  763. text-align: center;
  764. padding: 0;
  765. font-size: 28px;
  766. .class-van-button-small;
  767. }
  768. }
  769. }
  770. }
  771. .allBoard {
  772. width: 100%;
  773. display: flex;
  774. flex-direction: column;
  775. .allBoard_wrap {
  776. width: 100%;
  777. display: flex;
  778. flex-direction: column;
  779. background: #eaf1f9;
  780. padding: 0 0 10px;
  781. box-sizing: border-box;
  782. }
  783. .close-box {
  784. padding-top: 22px;
  785. box-sizing: border-box;
  786. font-size: 24px;
  787. color: #3e67ff;
  788. text-align: right;
  789. margin-right: 1.25rem;
  790. }
  791. .plate_number_box {
  792. width: 100%;
  793. display: flex;
  794. flex-wrap: wrap;
  795. justify-content: center;
  796. button {
  797. width: 9%;
  798. height: 2.5rem;
  799. line-height: 2.5rem;
  800. text-align: center;
  801. padding: 0;
  802. font-size: 28px;
  803. .class-van-button-small;
  804. }
  805. }
  806. }
  807. .vehicleMgt-list {
  808. display: flex;
  809. flex-direction: column;
  810. margin-bottom: 35px;
  811. .vehicleMgt-title {
  812. display: flex;
  813. padding: 30px;
  814. box-sizing: border-box;
  815. border-bottom: 1px solid #f2f2f2;
  816. span {
  817. font-size: 28px;
  818. }
  819. }
  820. .vehicleMgt-content {
  821. display: flex;
  822. flex-direction: column;
  823. background: #fff;
  824. .item {
  825. display: flex;
  826. align-items: center;
  827. justify-content: space-between;
  828. padding: 15px 36px;
  829. box-sizing: border-box;
  830. border-bottom: 1px solid #f2f2f2;
  831. span {
  832. font-size: 28px;
  833. }
  834. }
  835. }
  836. }
  837. .delBtn {
  838. color: #c69c6d;
  839. height: 38px;
  840. line-height: 38px;
  841. font-size: 20px;
  842. width: 124px;
  843. border: 1px solid #c69c6d;
  844. border-radius: 19px;
  845. text-align: center;
  846. }
  847. .payThe {
  848. width: 100%;
  849. .pay_index {
  850. text-align: center;
  851. padding: 20px 0;
  852. font-size: 20px;
  853. margin-bottom: 5px;
  854. background-color: #fff;
  855. font-weight: 600;
  856. }
  857. .pay_title {
  858. display: flex;
  859. justify-content: space-between;
  860. background-color: #fff;
  861. border-bottom: 1px solid #eee;
  862. padding: 15px 30px;
  863. .title {
  864. font-size: 16px;
  865. }
  866. .dk_desc {
  867. font-size: 12px;
  868. color: #999;
  869. margin-top: 3px;
  870. }
  871. .value {
  872. font-size: 14px;
  873. color: #999;
  874. }
  875. }
  876. .payjf {
  877. font-size: 12px;
  878. color: #999;
  879. margin-right: 18px;
  880. margin-top: 12px;
  881. }
  882. .paySelect {
  883. color: rgba(16, 16, 16, 100);
  884. font-size: 20px;
  885. font-family: Arial;
  886. border: 1px solid rgba(187, 187, 187, 100);
  887. border-radius: 10px;
  888. margin-left: 80px;
  889. width: 260px;
  890. height: 80px;
  891. }
  892. .paySelect1 {
  893. color: rgba(16, 16, 16, 100);
  894. font-size: 20px;
  895. font-family: Arial;
  896. border: 1px solid rgba(187, 187, 187, 100);
  897. width: 200px;
  898. height: 50px;
  899. display: flex;
  900. align-items: center;
  901. justify-content: space-between;
  902. background-color: #f2f2f2;
  903. margin-top: 5px;
  904. .pay-se-l {
  905. height: 50px;
  906. width: 50px;
  907. line-height: 50px;
  908. text-align: center;
  909. font-size: 50px;
  910. background-color: #fff;
  911. }
  912. }
  913. .payjfzk {
  914. font-size: 20px;
  915. color: #8b8c8b;
  916. margin-top: 10px;
  917. margin-left: 210px;
  918. }
  919. .pay_time {
  920. font-size: 28px;
  921. margin-left: 180px;
  922. padding-bottom: 40px;
  923. }
  924. .pay_time1 {
  925. margin-top: 26px;
  926. }
  927. }
  928. .pay_jiaof {
  929. width: 80%;
  930. height: 70px;
  931. line-height: 70px;
  932. background-color: #c69c6d;
  933. text-align: center;
  934. color: rgba(255, 255, 255, 100);
  935. font-size: 28px;
  936. font-family: Microsoft Yahei;
  937. border-radius: 10px;
  938. margin: 20px auto;
  939. }
  940. // 停车券弹窗
  941. .ticketPopup {
  942. display: flex;
  943. flex-direction: column;
  944. background: #fff;
  945. border-radius: 20px 20px 0 0;
  946. z-index: 999;
  947. .popup-title {
  948. display: flex;
  949. justify-content: center;
  950. align-items: center;
  951. padding: 30px 42px;
  952. box-sizing: border-box;
  953. border-bottom: 1px solid #f2f2f2;
  954. position: relative;
  955. span {
  956. color: #999;
  957. font-size: 28px;
  958. }
  959. .useRule-text {
  960. position: absolute;
  961. right: 42px;
  962. color: rgb(58, 130, 248);
  963. }
  964. }
  965. .popup_scroll {
  966. height: 70vh;
  967. background: #f2f2f2;
  968. }
  969. .popup_content {
  970. width: 100%;
  971. height: 100%;
  972. display: flex;
  973. flex-direction: column;
  974. padding: 10px 20px;
  975. box-sizing: border-box;
  976. .item {
  977. display: flex;
  978. margin-bottom: 16px;
  979. .item-image {
  980. border: 2px solid #f2f2f2;
  981. border-right: 2px dashed #f2f2f2;
  982. padding: 16px;
  983. border-radius: 16px 0 0 16px;
  984. box-sizing: border-box;
  985. display: flex;
  986. align-items: center;
  987. justify-content: center;
  988. background: #fff;
  989. &.cro {
  990. position: relative;
  991. }
  992. .img {
  993. width: 130px;
  994. height: 130px;
  995. border-radius: 8px;
  996. img {
  997. width: 100%;
  998. height: 100%;
  999. }
  1000. }
  1001. }
  1002. .item-content {
  1003. flex: 1;
  1004. border: 2px solid #f2f2f2;
  1005. border-radius: 0 8px 8px 0;
  1006. padding: 16px;
  1007. box-sizing: border-box;
  1008. background: #fff;
  1009. display: flex;
  1010. position: relative;
  1011. &.cro_ {
  1012. position: relative;
  1013. }
  1014. .content {
  1015. display: flex;
  1016. flex-direction: column;
  1017. justify-content: center;
  1018. flex: 1;
  1019. .h3 {
  1020. font-size: 28px;
  1021. line-height: 48px;
  1022. font-weight: 600;
  1023. }
  1024. .h3.color_disabled {
  1025. color: #838181;
  1026. font-weight: 400;
  1027. }
  1028. .span {
  1029. font-size: 24px;
  1030. color: #838181;
  1031. line-height: 40px;
  1032. }
  1033. }
  1034. .erwm_box {
  1035. display: flex;
  1036. flex-direction: column;
  1037. align-items: flex-end;
  1038. justify-content: space-between;
  1039. img {
  1040. width: 52px;
  1041. height: 52px;
  1042. }
  1043. .tag {
  1044. position: absolute;
  1045. bottom: 0;
  1046. right: 0;
  1047. border-radius: 16px;
  1048. padding: 5px 10px;
  1049. box-sizing: border-box;
  1050. background: #f7931e;
  1051. text-align: center;
  1052. color: #fff;
  1053. width: 122px;
  1054. font-size: 24px;
  1055. }
  1056. }
  1057. }
  1058. }
  1059. }
  1060. // 对勾
  1061. .dot {
  1062. position: absolute;
  1063. top: 0;
  1064. right: 0;
  1065. width: 2.25rem;
  1066. height: 2.375rem;
  1067. }
  1068. }
  1069. // 弹窗按钮
  1070. .popup_button {
  1071. width: 100%;
  1072. display: flex;
  1073. align-items: center;
  1074. justify-content: space-between;
  1075. padding: 10px 20px;
  1076. box-sizing: border-box;
  1077. .desc .num {
  1078. color: #c69c6d;
  1079. font-size: 18px;
  1080. }
  1081. .ok_btn {
  1082. height: 110px;
  1083. line-height: 110px;
  1084. text-align: center;
  1085. background: #c69c6d;
  1086. color: #fff !important;
  1087. width: 120px;
  1088. height: 40px;
  1089. line-height: 40px;
  1090. border-radius: 40px;
  1091. }
  1092. }
  1093. </style>