dcCharging.vue 22 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016
  1. <template>
  2. <view>
  3. <view v-if="chargingRecord.status==2">
  4. <ujp-navbar title="充电结束">
  5. </ujp-navbar>
  6. <view class="progress-bar2">
  7. <u-circle-progress width="400" active-color="green" duration='20' :percent="100" border-width="20">
  8. <view class="u-progress-content">
  9. <text class='u-progress-info' v-if="chargingGun.gunType==1">
  10. <p style="text-align: center;">{{chargingRecord.endSoc}}%</p>
  11. <p class="progress-text">当前电量</p>
  12. </text>
  13. <text class='u-progress-info' v-if="chargingGun.gunType==2">
  14. <p style="text-align: center;">{{chargingRecord.electricQuantity/10000}}</p>
  15. <p class="progress-text">已充电量(度)</p>
  16. </text>
  17. </view>
  18. </u-circle-progress>
  19. </view>
  20. <!-- 充电信息 -->
  21. <!-- <view class="charge-infos">
  22. <view class="item">
  23. <view class="title">
  24. 充电金额
  25. </view>
  26. <view class="content">
  27. 50.00
  28. </view>
  29. </view>
  30. <view class="item">
  31. <view class="title">
  32. 充电时长
  33. </view>
  34. <view class="content">
  35. 00.00.00
  36. </view>
  37. </view>
  38. <view class="item">
  39. <view class="title">
  40. 优惠金额
  41. </view>
  42. <view class="content discounts">
  43. -6.00元
  44. </view>
  45. </view>
  46. <view class="item">
  47. <view class="title">
  48. 会员活动
  49. </view>
  50. <view class="content">
  51. 充电服务费包月卡
  52. </view>
  53. </view>
  54. </view> -->
  55. <view class="info" >
  56. <view class="info-name">
  57. 充电时长
  58. </view>
  59. <view class="info-text">
  60. {{getPercent2()}}
  61. </view>
  62. </view>
  63. <view class="info" >
  64. <view class="info-name">
  65. 充电金额
  66. </view>
  67. <view class="info-text">
  68. {{chargingRecord.actualFee}}元
  69. </view>
  70. </view>
  71. <view class="info" >
  72. <view class="info-name">
  73. 优惠券
  74. </view>
  75. <view class="info-text" style="color:red">
  76. {{couponObj&&couponObj.status=='1'?couponObj.text:'未使用'}}
  77. </view>
  78. </view>
  79. <view class="info" v-if="userCardBool" >
  80. <view class="info-name">
  81. 会员活动
  82. </view>
  83. <view class="info-text">
  84. 充电服务费包月卡
  85. </view>
  86. </view>
  87. <view class="info" v-if="chargingRecord.remark">
  88. <view class="info-name">
  89. 结束原因
  90. </view>
  91. <view class="info-text" style="color: red;" >
  92. {{chargingRecord.remark}}
  93. </view>
  94. </view>
  95. <!-- <view
  96. style="
  97. margin-top: 20px;
  98. text-align: center;
  99. padding: 0 45px;
  100. padding-bottom: 40px;
  101. color:#9e9e9e;
  102. ">
  103. <span style="color: red;">*</span>实际充电金额与所选金额会略有出入,最终结算金额将以实际充入电量为准。
  104. </view> -->
  105. <view class="bottom">
  106. <u-button size="default" shape="circle" @click="gotoMain(0)" >返回首页</u-button>
  107. <u-button size="default" shape="circle" @click="gotoMain(1)">查看订单详情</u-button>
  108. </view>
  109. <u-line color="#E6E6E6 100%" length="81%" margin="auto"/>
  110. <!-- 反馈 -->
  111. <view class="feedback">
  112. <view class="title-1">
  113. 您对本次充电服务还满意吗?
  114. </view>
  115. <view class="title-2">
  116. 请在下方描述您所遇到的问题,或填写您的反馈意见。我们将对优质内容的反馈者发放奖励!
  117. </view>
  118. <textarea value="" v-model="message" placeholder="请填写反馈内容" />
  119. <u-button class="submit" type="success" @click="submitMessage()">提交</u-button>
  120. </view>
  121. <view>
  122. <u-toast ref="uToast" />
  123. </view>
  124. </view>
  125. <view style="background-color: #fff; padding-bottom: 60px;" v-else>
  126. <ujp-navbar title="充电详情">
  127. </ujp-navbar>
  128. <view class="iconfont tittle-font" @click="show = true">
  129. &#xe616;
  130. </view>
  131. <view class="progress-bar">
  132. <u-circle-progress width="440" active-color="green" :percent="percent?percent:percentValue" border-width="50">
  133. <view class="u-progress-content" v-if="chargingRecord.status==4">
  134. <text class='u-progress-info' v-if="waitNum==1">排队中</text>
  135. <text class='u-progress-info' v-else >前方等待{{waitNum-1}}位</text>
  136. </view>
  137. <view class="u-progress-content" v-else-if="chargingGun.gunType==1">
  138. <text class='u-progress-info'>{{percent}}%</text>
  139. </view>
  140. <view class="u-progress-content" v-else-if="chargingGun.gunType==2">
  141. <text class='u-progress-info'>{{chargingRecord.statusText}}...</text>
  142. </view>
  143. <view class="bot"></view>
  144. </u-circle-progress>
  145. </view>
  146. <view class="starting" v-if="chargingGun.gunType==1">
  147. <span v-if="chargingRecord.status==4">
  148. 可用功率不足,您可以换桩或继续排队等待...
  149. </span>
  150. <span v-else>
  151. {{chargingRecord.statusText}}...
  152. </span>
  153. </view>
  154. <view class="timer">
  155. {{timer}}
  156. </view>
  157. <view class="charged">
  158. 已充电{{chargingGun.kwh}}度
  159. </view>
  160. <view class="cost">
  161. <view class="">
  162. <view class="cost-top">
  163. {{chargingRecord.dueFee?chargingRecord.dueFee:0}}元
  164. </view>
  165. <view class="cost-bottom " >
  166. 实时费用
  167. </view>
  168. </view>
  169. <view class="line"></view>
  170. <view class="">
  171. <view class="cost-top">
  172. {{detail.balance>0?detail.balance:0}}元
  173. <view class="iconfont cost-font" @click="gotoUrl('pages/user/finance/recharge')" >&#xe633;</view>
  174. </view>
  175. <view class="cost-bottom">
  176. 账户余额
  177. </view>
  178. </view>
  179. </view>
  180. <view class="power">
  181. <view>
  182. <view class="power-num">
  183. {{chargingRecord.chargeVoltage?chargingRecord.chargeVoltage:0}}v
  184. </view>
  185. <view class="power-text">
  186. 电压
  187. </view>
  188. </view>
  189. <view class="line"></view>
  190. <view>
  191. <view class="power-num">
  192. {{chargingRecord.chargingPower?chargingRecord.chargingPower/1000:0}}kW
  193. </view>
  194. <view class="power-text">
  195. 功率
  196. </view>
  197. </view>
  198. <view class="line"></view>
  199. <view>
  200. <view class="power-num">
  201. {{chargingRecord.chargeAmpere?chargingRecord.chargeAmpere:0}}A
  202. </view>
  203. <view class="power-text">
  204. 电流
  205. </view>
  206. </view>
  207. </view>
  208. <view class="info" >
  209. <view class="info-name">
  210. 优惠券
  211. </view>
  212. <view class="info-text" style="color:red">
  213. {{couponObj&&couponObj.useText?couponObj.useText:'未使用'}}
  214. </view>
  215. </view>
  216. <view class="info" v-if="chargingRecord.carNumber">
  217. <view class="info-name">
  218. 充电车辆
  219. </view>
  220. <view class="info-text">
  221. {{chargingRecord.carNumber}}
  222. </view>
  223. </view>
  224. <view class="info">
  225. <view class="info-name">
  226. 站点
  227. </view>
  228. <view class="info-text">
  229. {{chargingRecord.stationName}}
  230. </view>
  231. </view>
  232. <view class="info">
  233. <view class="info-name">
  234. 充电桩
  235. </view>
  236. <view class="info-text">
  237. {{chargingRecord.deviceName}}枪{{chargingRecord.channelNo}}
  238. </view>
  239. </view>
  240. <view class="info" v-if="false">
  241. <view class="info-name">
  242. 占位费说明
  243. </view>
  244. <view class="info-text">
  245. 停止充电后30分钟即开始收取占位费用,1元/分钟
  246. </view>
  247. </view>
  248. <view class="bottom2" >
  249. <u-button type="primary" @click="submit"
  250. :style="(chargingRecord.status==0||chargingRecord.status==1||chargingRecord.status==4)?'background-color: #00b962':'background-color: #9be6c2;'"
  251. shape="circle" >结束充电</u-button>
  252. </view>
  253. <u-modal v-model="show" @confirm="confirmPhone"
  254. :confirm-text="confirmText" confirm-color="#606266"
  255. :show-cancel-button="true" ref="uModal" :asyncClose="true" :title="title" :content="consumerPhone">
  256. </u-modal>
  257. <u-modal v-model="show2" @confirm="gotoGz"
  258. cancel-text="暂不关注" @cancel="cancelGz"
  259. confirm-text="前往关注"
  260. confirm-color="#53b56b"
  261. :show-cancel-button="true"
  262. ref="uModal2" :asyncClose="true"
  263. >
  264. <view style="padding: 15px;"
  265. >请关注<span style=" color: #53b56b;">{{projectName}}</span>公众号,以便第一时间收到充电结束消息提醒</view>
  266. </u-modal>
  267. </view>
  268. </view>
  269. </template>
  270. <script>
  271. import * as API from '@/apis/chargeProcess.js'
  272. import * as API_weixin from '@/apis/weixin.js'
  273. import * as userAPI from '@/apis/user.js'
  274. import {
  275. newDate,
  276. secondsDistance,
  277. hourDistanceArr
  278. } from '@/utils'
  279. export default {
  280. data() {
  281. return {
  282. message: '',
  283. elderMode:false,
  284. timer:'',
  285. title: '联系客服',
  286. content: '0716-8123456',
  287. confirmText: '拨打电话',
  288. detail:{},
  289. percent: 0,
  290. percentValue: 0,
  291. consumerPhone: "",
  292. id: "",
  293. chargingGun: {},
  294. chargingRecord: {},
  295. couponObj:{},
  296. show: false,
  297. show2: false,
  298. isReady:true,
  299. waitNum:'',
  300. projectName:"",
  301. userCard:null,
  302. }
  303. },
  304. onLoad(op) {
  305. this.projectName=process.car.ProjectName;
  306. var plus=this.carhelp.getPersonInfoPlus()
  307. if(plus){
  308. this.userCard=plus.userCard;
  309. }
  310. if (op.id) {
  311. this.id = op.id;
  312. this.init()
  313. this.getInfo()
  314. }
  315. var consumerPhone = this.carhelp.getConfig().consumerPhone
  316. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  317. if (consumerPhone) {
  318. this.consumerPhone = consumerPhone
  319. }
  320. },
  321. onShow() {
  322. if(!this.isReady){
  323. this.isReady=true;
  324. this.addpercent();
  325. this.getInfo()
  326. }
  327. },
  328. onHide() {
  329. this.isReady=false;
  330. console.log("onHide")
  331. },
  332. onUnload() {
  333. console.log("onUnload")
  334. this.isReady=false;
  335. },
  336. onReady() {
  337. this.elderMode = this.carhelp.get('getElderModeClass') == '长辈模式';
  338. if(this.elderMode)
  339. this.theme('elder')
  340. else
  341. this.theme('standard')
  342. this.addpercent()
  343. },
  344. computed:{
  345. userCardBool(){
  346. if(this.chargingRecord&&this.chargingRecord.userCardId){
  347. return true;
  348. }
  349. return false
  350. }
  351. },
  352. methods: {
  353. showToast() {
  354. this.$refs.uToast.show({
  355. title: '提交成功',
  356. type: 'success'
  357. })
  358. },
  359. submitMessage() {
  360. if(!this.message) {
  361. uni.showToast({
  362. title: "请填写反馈内容",
  363. icon: "none"
  364. })
  365. return
  366. }
  367. uni.showLoading({
  368. title: "加载中",
  369. mask: true,
  370. })
  371. userAPI.feedback({content: this.message}).then(response => {
  372. uni.hideLoading()
  373. this.message = '';
  374. this.showToast();
  375. }).catch(error => {
  376. uni.showToast({
  377. title: error
  378. })
  379. })
  380. },
  381. theme(type) {
  382. if(type == 'elder')
  383. {
  384. document.getElementsByTagName('body')[0].setAttribute('data-theme',type);
  385. }
  386. else
  387. {
  388. document.getElementsByTagName('body')[0].setAttribute('data-theme',type);
  389. }
  390. },
  391. cancelGz(){
  392. this.carhelp.setGzDate()
  393. },
  394. gotoGz(){
  395. this.carhelp.setGzDate()
  396. var url="https://mp.weixin.qq.com/s/mCHz1nNvg0xAICiBeIyKRQ";
  397. window.location.href=url
  398. },
  399. gotoMain(i){
  400. if(i==0){
  401. uni.reLaunch({
  402. url:"/pages/index/index"
  403. })
  404. }
  405. if(i==1){
  406. uni.navigateTo({
  407. url:"/pages/record/details?id="+this.id
  408. })
  409. }
  410. },
  411. addpercent(){
  412. this.timer=this.getPercent()
  413. if(this.isReady){
  414. setTimeout(()=>{
  415. this.percentValue++;
  416. if(this.percentValue>=100){
  417. this.percentValue=0;
  418. }
  419. this.addpercent()
  420. },100)
  421. }
  422. },
  423. getPercent2() {
  424. var ms=this.chargingRecord.chargingMinute*60;
  425. var Hour = parseInt(Math.floor(ms / (60 * 60)));
  426. var Fen = parseInt(Math.floor(ms % (60 * 60) / 60));
  427. var S = parseInt(Math.floor(ms % (60) ));
  428. var obj = (Hour > 9 ? "" : "0") + Hour + ":" + (Fen > 9 ? "" : "0") + Fen+ ":" + (S > 9 ? "" : "0") + S
  429. return obj;
  430. },
  431. getPercent() {
  432. if(!this.chargingRecord.startTime){
  433. return '00:00:00'
  434. }
  435. var Hour=0;
  436. var Fen=0;
  437. var S=0;
  438. if (this.chargingRecord.status == 1) {
  439. var second = secondsDistance(newDate(this.chargingRecord.startTime));
  440. var ms=second;
  441. Hour = parseInt(Math.floor(ms / (60 * 60)));
  442. Fen = parseInt(Math.floor(ms % (60 * 60) / 60));
  443. S = parseInt(Math.floor(ms % (60) ));
  444. }
  445. var obj = (Hour > 9 ? "" : "0") + Hour + ":" + (Fen > 9 ? "" : "0") + Fen+ ":" + (S > 9 ? "" : "0") + S
  446. return obj;
  447. },
  448. init() {
  449. API.personalCenter().then((res) => {
  450. this.detail = res.data
  451. }).catch(error => {
  452. uni.showToast({
  453. title: error
  454. })
  455. })
  456. },
  457. checkSubscribe(){
  458. API_weixin.checkSubscribe({
  459. openId: this.carhelp.getOpenId()
  460. }).then((res) => {
  461. if(res.data=="0"){
  462. this.show2=true;
  463. }else{
  464. this.carhelp.setGzDate()
  465. }
  466. //setGzDate
  467. }).catch(error => {
  468. uni.showToast({
  469. title: error
  470. })
  471. })
  472. },
  473. confirmPhone() {
  474. this.show = false;
  475. uni.makePhoneCall({
  476. phoneNumber: this.consumerPhone //仅为示例
  477. });
  478. },
  479. getInfo() {
  480. // uni.showLoading({
  481. // title: "加载中",
  482. // mask: true,
  483. // })
  484. API.chargingDetail({
  485. id: this.id
  486. }).then((res) => {
  487. this.chargingRecord = res.data.chargingRecord
  488. //(this.chargingRecord)
  489. this.couponObj= res.data.coupon
  490. this.chargingGun = res.data.chargingGun
  491. this.waitNum=res.data.chargingRecord.waitNum;
  492. //this.isReady = true;
  493. //直流
  494. if(this.chargingGun.gunType==1){
  495. if (this.chargingRecord.status == 1) {
  496. this.percent=this.chargingGun.soc
  497. }
  498. }else if(this.chargingGun.gunType==2){
  499. //交流
  500. }
  501. if (this.chargingRecord.status == 1) {
  502. if(this.carhelp.getGzDate()&&!this.show2){
  503. this.checkSubscribe()
  504. }
  505. }
  506. if(this.isReady&&this.chargingRecord.status!=2){
  507. var time=500;
  508. if(this.chargingRecord.status==0){
  509. }else{
  510. time=3000;
  511. this.init();
  512. }
  513. setTimeout(()=>{
  514. this.getInfo();
  515. },time)
  516. }
  517. uni.hideLoading()
  518. }).catch(error => {
  519. uni.showToast({
  520. title: error
  521. })
  522. })
  523. },
  524. submit() {
  525. if(this.chargingRecord.status==0||this.chargingRecord.status==1||this.chargingRecord.status==4){
  526. }else{
  527. return
  528. }
  529. uni.showModal({
  530. title: '提示',
  531. content: '确认结束充电?',
  532. success: res => {
  533. if (res.confirm) {
  534. //付钱 改为组件
  535. this.confirm()
  536. } else if (res.cancel) {
  537. //('用户点击取消');
  538. }
  539. }
  540. });
  541. },
  542. confirm() {
  543. ////(JSON.stringify(this.submitForm))
  544. uni.showLoading({
  545. title: "加载中",
  546. mask: true,
  547. })
  548. //this.submitForm.deviceNo = this.detail.deviceNo;
  549. API.stopCarCharging({
  550. chargingRecordId:this.chargingRecord.id
  551. }).then((res) => {
  552. this.getInfo()
  553. }).catch(error => {
  554. uni.showToast({
  555. title: error
  556. })
  557. })
  558. },
  559. }
  560. }
  561. </script>
  562. <style>
  563. page {
  564. background: #fff;
  565. padding-bottom: 50px;
  566. }
  567. </style>
  568. <style lang="scss" scoped>
  569. @import "@/_theme.scss";
  570. .tittle-font {
  571. @include themeify{
  572. font-size: themed('font-size7');
  573. }
  574. /* font-size: 24px;*/
  575. position: fixed;
  576. top: 12px;
  577. right: 16px;
  578. z-index: 99999;
  579. }
  580. .bot {
  581. width:100%;
  582. height:0;
  583. padding-top: 100%;
  584. border: 2px #00b962 dotted;
  585. border-radius:100%;
  586. box-sizing: border-box;
  587. position: absolute;
  588. top: 0px;
  589. left: 0px;
  590. right: 0px;
  591. margin: auto;
  592. }
  593. .progress-bar {
  594. text-align: center;
  595. margin-top: 20px;
  596. /deep/.u-circle-progress {
  597. position: relative;
  598. // min-width:220px;
  599. // min-height: 220px;
  600. }
  601. .u-progress-content {
  602. display: flex;
  603. align-items: center;
  604. justify-content: center;
  605. }
  606. .u-progress-dot {
  607. width: 16rpx;
  608. height: 16rpx;
  609. border-radius: 50%;
  610. background-color: #fb9126;
  611. }
  612. .u-progress-info {
  613. @include themeify{
  614. font-size: themed('font-size6');
  615. }
  616. /* font-size: 22px;*/
  617. padding-left: 16rpx;
  618. letter-spacing: 2rpx;
  619. color: rgba(51, 51, 51, 100);
  620. }
  621. /deep/.u-progress-dot[data-v-05b104e0] {
  622. display: none;
  623. }
  624. /deep/.u-circle-progress[data-v-cab6fc66] {
  625. margin: 30px;
  626. }
  627. }
  628. .starting {
  629. /* height: 22px;*/
  630. color: rgba(0, 185, 98, 100);
  631. @include themeify{
  632. font-size: themed('font-size3');
  633. height:themed('font-size6');
  634. }
  635. /* font-size: 16px;*/
  636. text-align: center;
  637. margin-top: 10px;
  638. }
  639. .timer {
  640. height: 43px;
  641. color: rgba(51, 51, 51, 100);
  642. @include themeify{
  643. font-size: themed('font-size13');
  644. }
  645. /* font-size: 36px;*/
  646. text-align: center;
  647. margin-top: 40px;
  648. }
  649. .charged {
  650. /* height: 20px;*/
  651. color: rgba(153, 153, 153, 100);
  652. @include themeify{
  653. font-size: themed('font-size2');
  654. height:themed('font-size5')
  655. }
  656. /* font-size: 14px;*/
  657. text-align: center;
  658. margin-top: 4px;
  659. }
  660. .cost {
  661. // width: 50%;
  662. padding: 0 50px;
  663. margin-top: 16px;
  664. margin: auto;
  665. width: 280px;
  666. display: flex;
  667. justify-content: space-between;
  668. .cost-top {
  669. line-height: 33px;
  670. text-align: center;
  671. @include themeify{
  672. font-size: themed('font-size7');
  673. }
  674. /* font-size: 24px;*/
  675. position: relative;
  676. .cost-font {
  677. position: absolute;
  678. top: 0;
  679. right: -25px;
  680. color: #ff6200;
  681. @include themeify{
  682. font-size: themed('font-size7');
  683. }
  684. /* font-size: 24px*/
  685. }
  686. }
  687. .cost-bottom {
  688. @include themeify{
  689. line-height: themed('font-size5');
  690. }
  691. /* line-height: 20px;*/
  692. color: #999999;
  693. text-align: center;
  694. }
  695. }
  696. .line {
  697. width: 0;
  698. height: 36px;
  699. border: 1px solid rgba(237, 237, 237, 100);
  700. margin-top: 10px;
  701. background-color: #ededed;
  702. }
  703. .power {
  704. display: flex;
  705. justify-content: space-around;
  706. padding: 0 55px;
  707. margin-top: 40px;
  708. .power-num {
  709. /* height: 27px;*/
  710. color: rgba(51, 51, 51, 100);
  711. @include themeify{
  712. font-size: themed('font-size5');
  713. height: themed('font-size9');
  714. }
  715. /* font-size: 20px;*/
  716. text-align: center;
  717. }
  718. .power-text {
  719. /* height: 20px;*/
  720. color: rgba(153, 153, 153, 100);
  721. @include themeify{
  722. font-size: themed('font-size2');
  723. height: themed('font-size5');
  724. }
  725. /* font-size: 14px;*/
  726. text-align: center;
  727. }
  728. }
  729. .info {
  730. display: flex;
  731. justify-content: space-between;
  732. margin: 0 40px;
  733. // height: 48px;
  734. line-height: 48px;
  735. background-color: rgba(255, 255, 255, 100);
  736. color: rgba(16, 16, 16, 100);
  737. border-bottom: 1px solid #ededed;
  738. .info-text {
  739. @include themeify{
  740. line-height: themed('font-size7');
  741. }
  742. /* line-height: 23px;*/
  743. padding: 13px 0 12px;
  744. //width: 200px;
  745. text-align: right;
  746. }
  747. }
  748. .charge-infos{
  749. padding: 20px 36px;
  750. margin: 0 auto;
  751. .item{
  752. display: flex;
  753. justify-content: space-between;
  754. color: rgba(102, 102, 102, 100);
  755. font-size: 18px;
  756. margin-bottom: 12px;
  757. .discounts{
  758. color:red
  759. }
  760. }
  761. }
  762. .bottom2 {
  763. padding: 12px 20px;
  764. background-color: #fff;
  765. position: fixed;
  766. bottom: 0;
  767. left: 0;
  768. right: 0;
  769. margin: auto;
  770. }
  771. .progress-bar2 {
  772. text-align: center;
  773. margin-top: 20px;
  774. /deep/.u-circle-progress {
  775. // margin-left: 23.3% !important;
  776. position: relative;
  777. }
  778. .u-progress-content {
  779. display: flex;
  780. align-items: center;
  781. justify-content: center;
  782. }
  783. .u-progress-dot {
  784. width: 16rpx;
  785. height: 16rpx;
  786. border-radius: 50%;
  787. background-color: #fb9126;
  788. }
  789. .u-progress-info {
  790. display: block;
  791. @include themeify{
  792. font-size: themed('font-size11');
  793. }
  794. /* font-size: 32px;*/
  795. padding-left: 16rpx;
  796. letter-spacing: 2rpx;
  797. color: rgba(51, 51, 51, 100);
  798. .progress-text {
  799. @include themeify{
  800. font-size: themed('font-size2');
  801. }
  802. /* font-size: 14px;*/
  803. text-align: center;
  804. color: #666666;
  805. }
  806. }
  807. /deep/.u-progress-dot[data-v-05b104e0] {
  808. display: none;
  809. }
  810. /deep/.u-circle-progress[data-v-cab6fc66] {
  811. margin: 30px;
  812. }
  813. }
  814. .time-price {
  815. display: flex;
  816. justify-content: space-between;
  817. padding: 0 65px;
  818. .item-num {
  819. /* height: 33px;*/
  820. color: rgba(51, 51, 51, 100);
  821. @include themeify{
  822. font-size: themed('font-size7');
  823. height:themed('font-size12')
  824. }
  825. /* font-size: 24px;*/
  826. text-align: center;
  827. }
  828. .item-text {
  829. eight: 20px;
  830. color: rgba(153, 153, 153, 100);
  831. @include themeify{
  832. font-size: themed('font-size2');
  833. }
  834. /* font-size: 14px;*/
  835. text-align: center;
  836. }
  837. }
  838. .bottom {
  839. background-color: #fff;
  840. display: flex;
  841. width: 91.4%;
  842. padding: 0 16px;
  843. margin:0 auto 40px;
  844. .u-size-default {
  845. border: 1px solid rgba(0, 185, 98, 100);
  846. color: #00b962;
  847. width: 44%;
  848. }
  849. }
  850. // 反馈
  851. .feedback{
  852. padding: 20px 36px ;
  853. .title-1{
  854. color: rgba(16, 16, 16, 100);
  855. font-size: 18px;
  856. }
  857. .title-2{
  858. color: rgba(102, 102, 102, 100);
  859. margin-top: 8px;
  860. line-height: 20px;
  861. }
  862. textarea{
  863. margin-top: 16px;
  864. width: 93.5%;
  865. height: 100px;
  866. background-color: rgba(228, 228, 228, 100);
  867. color: rgba(153, 153, 153, 100);
  868. font-size: 16px;
  869. border-radius: 12px;
  870. padding: 12px;
  871. line-height: 23px;
  872. }
  873. .submit{
  874. height: 44px;
  875. line-height: 26px;
  876. border-radius: 50px;
  877. background-color: rgba(0, 185, 98, 100);
  878. color: rgba(255, 255, 255, 100);
  879. font-size: 18px;
  880. margin-top: 16px;
  881. }
  882. }
  883. </style>