parkingFeeDetail.vue 27 KB

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