dcCharging.vue 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  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;" class="progress-bar-main" 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. {{chargingRecord.chargeStrategy==0?'充电模式':''}}
  211. {{chargingRecord.chargeStrategy==2?'充电金额':''}}
  212. </view>
  213. <view class="info-text" >
  214. {{chargingRecord.chargeStrategy==0?'充满自停':''}}
  215. {{chargingRecord.chargeStrategy==2?chargingRecord.estimateFee+'元':''}}
  216. </view>
  217. </view>
  218. <view class="info" >
  219. <view class="info-name">
  220. 优惠券
  221. </view>
  222. <view class="info-text" style="color:red">
  223. {{couponObj&&couponObj.useText?couponObj.useText:'未使用'}}
  224. </view>
  225. </view>
  226. <view class="info" v-if="chargingRecord.carNumber">
  227. <view class="info-name">
  228. 充电车辆
  229. </view>
  230. <view class="info-text">
  231. {{chargingRecord.carNumber}}
  232. </view>
  233. </view>
  234. <view class="info">
  235. <view class="info-name">
  236. 站点
  237. </view>
  238. <view class="info-text">
  239. {{chargingRecord.stationName}}
  240. </view>
  241. </view>
  242. <view class="info">
  243. <view class="info-name">
  244. 充电桩
  245. </view>
  246. <view class="info-text">
  247. {{chargingRecord.deviceName}}枪{{chargingRecord.channelNo}}
  248. </view>
  249. </view>
  250. <view class="info" v-if="price" style="line-height: 23px;">
  251. <view class="info-text" style="text-align: left;" >
  252. <view style="font-weight: bold;font-size: 20px;">当前价格</view>
  253. <view class="info-name2" >
  254. {{price.startTime}}-{{price.endTime}}
  255. </view>
  256. </view>
  257. <view class="info-text" style="line-height: 23px;">
  258. <view><span style="color: #FF3D00;font-size: 20px;"><b>{{price.costPrice}}</b></span>元/度</view>
  259. <view class="info-name2">
  260. 电价:{{price.electricityPrice}}元 | 服务费:{{price.servicePrice}}元
  261. </view>
  262. </view>
  263. </view>
  264. <view class="info" v-if="false">
  265. <view class="info-name">
  266. 占位费说明
  267. </view>
  268. <view class="info-text">
  269. 停止充电后30分钟即开始收取占位费用,1元/分钟
  270. </view>
  271. </view>
  272. <view class="bottom2" >
  273. <u-button type="primary" @click="submit"
  274. :style="(chargingRecord.status==0||chargingRecord.status==1||chargingRecord.status==4)?'background-color: #00b962':'background-color: #9be6c2;'"
  275. shape="circle" >结束充电</u-button>
  276. </view>
  277. <u-modal v-model="show" @confirm="confirmPhone"
  278. :confirm-text="confirmText" confirm-color="#606266"
  279. :show-cancel-button="true" ref="uModal" :asyncClose="true" :title="title" :content="consumerPhone">
  280. </u-modal>
  281. <u-modal v-model="show2" @confirm="gotoGz"
  282. cancel-text="暂不关注" @cancel="cancelGz"
  283. confirm-text="前往关注"
  284. confirm-color="#53b56b"
  285. :show-cancel-button="true"
  286. ref="uModal2" :asyncClose="true"
  287. >
  288. <view style="padding: 15px;"
  289. >请关注<span style=" color: #53b56b;">{{projectName}}</span>公众号,以便第一时间收到充电结束消息提醒</view>
  290. </u-modal>
  291. </view>
  292. </view>
  293. </template>
  294. <script>
  295. var formatNum=function(num) {
  296. let res = Number(num);
  297. return res < 10 ? '0' + res : res;
  298. };
  299. import * as api from "@/apis/site.js"
  300. import * as API from '@/apis/chargeProcess.js'
  301. import * as API_weixin from '@/apis/weixin.js'
  302. import * as userAPI from '@/apis/user.js'
  303. import {
  304. newDate,
  305. secondsDistance,
  306. hourDistanceArr
  307. } from '@/utils'
  308. export default {
  309. data() {
  310. return {
  311. message: '',
  312. elderMode:false,
  313. timer:'',
  314. title: '联系客服',
  315. content: '0716-8123456',
  316. confirmText: '拨打电话',
  317. detail:{},
  318. percent: 0,
  319. percentValue: 0,
  320. consumerPhone: "",
  321. id: "",
  322. chargingGun: {},
  323. chargingRecord: {},
  324. couponObj:{},
  325. show: false,
  326. show2: false,
  327. isReady:true,
  328. waitNum:'',
  329. projectName:"",
  330. userCard:null,
  331. price:null,
  332. }
  333. },
  334. onLoad(op) {
  335. this.projectName=process.car.ProjectName;
  336. var plus=this.carhelp.getPersonInfoPlus()
  337. if(plus){
  338. this.userCard=plus.userCard;
  339. }
  340. if (op.id) {
  341. this.id = op.id;
  342. this.init()
  343. this.getInfo()
  344. }
  345. var consumerPhone = this.carhelp.getConfig().consumerPhone
  346. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  347. if (consumerPhone) {
  348. this.consumerPhone = consumerPhone
  349. }
  350. },
  351. onShow() {
  352. if(!this.isReady){
  353. this.isReady=true;
  354. this.addpercent();
  355. this.getInfo()
  356. }
  357. },
  358. onHide() {
  359. this.isReady=false;
  360. console.log("onHide")
  361. },
  362. onUnload() {
  363. console.log("onUnload")
  364. this.isReady=false;
  365. },
  366. onReady() {
  367. this.elderMode = this.carhelp.get('getElderModeClass') == '长辈模式';
  368. if(this.elderMode)
  369. this.theme('elder')
  370. else
  371. this.theme('standard')
  372. this.addpercent()
  373. },
  374. computed:{
  375. userCardBool(){
  376. if(this.chargingRecord&&this.chargingRecord.userCardId){
  377. return true;
  378. }
  379. return false
  380. }
  381. },
  382. methods: {
  383. getChargingStationPrice(id){
  384. if(!id||id==undefined){
  385. return
  386. }
  387. //id='e012f9fe-90a8-4a47-bb64-26ea139c3c05'
  388. api.getChargingStationPrice({
  389. stationId:id
  390. }).then((res)=>{
  391. let date = new Date();
  392. let hours = date.getHours();
  393. let minutes = date.getMinutes();
  394. let seconds = date.getSeconds();
  395. let date_str = formatNum(hours)+ ':'+ formatNum(minutes);//+ ' ' +formatWeek;
  396. if(res.data.prices&&res.data.prices.length){
  397. for(var i in res.data.prices[0].priceList){
  398. var item=res.data.prices[0].priceList[i];
  399. if(date_str>=item.startTime && date_str<= item.endTime)
  400. {
  401. this.price= item
  402. }
  403. }
  404. }
  405. }).catch(error => {
  406. uni.showToast({
  407. title: error
  408. })
  409. })
  410. },
  411. showToast() {
  412. this.$refs.uToast.show({
  413. title: '提交成功',
  414. type: 'success'
  415. })
  416. },
  417. submitMessage() {
  418. if(!this.message) {
  419. uni.showToast({
  420. title: "请填写反馈内容",
  421. icon: "none"
  422. })
  423. return
  424. }
  425. uni.showLoading({
  426. title: "加载中",
  427. mask: true,
  428. })
  429. userAPI.feedback({content: this.message}).then(response => {
  430. uni.hideLoading()
  431. this.message = '';
  432. this.showToast();
  433. }).catch(error => {
  434. uni.showToast({
  435. title: error
  436. })
  437. })
  438. },
  439. theme(type) {
  440. if(type == 'elder')
  441. {
  442. document.getElementsByTagName('body')[0].setAttribute('data-theme',type);
  443. }
  444. else
  445. {
  446. document.getElementsByTagName('body')[0].setAttribute('data-theme',type);
  447. }
  448. },
  449. cancelGz(){
  450. this.carhelp.setGzDate()
  451. },
  452. gotoGz(){
  453. this.carhelp.setGzDate()
  454. var url="https://mp.weixin.qq.com/s/mCHz1nNvg0xAICiBeIyKRQ";
  455. window.location.href=url
  456. },
  457. gotoMain(i){
  458. if(i==0){
  459. uni.reLaunch({
  460. url:"/pages/index/index"
  461. })
  462. }
  463. if(i==1){
  464. uni.navigateTo({
  465. url:"/pages/record/details?id="+this.id
  466. })
  467. }
  468. },
  469. addpercent(){
  470. this.timer=this.getPercent()
  471. if(this.isReady){
  472. setTimeout(()=>{
  473. this.percentValue++;
  474. if(this.percentValue>=100){
  475. this.percentValue=0;
  476. }
  477. this.addpercent()
  478. },100)
  479. }
  480. },
  481. getPercent2() {
  482. var ms=this.chargingRecord.chargingMinute*60;
  483. var Hour = parseInt(Math.floor(ms / (60 * 60)));
  484. var Fen = parseInt(Math.floor(ms % (60 * 60) / 60));
  485. var S = parseInt(Math.floor(ms % (60) ));
  486. var obj = (Hour > 9 ? "" : "0") + Hour + ":" + (Fen > 9 ? "" : "0") + Fen+ ":" + (S > 9 ? "" : "0") + S
  487. return obj;
  488. },
  489. getPercent() {
  490. if(!this.chargingRecord.startTime){
  491. return '00:00:00'
  492. }
  493. var Hour=0;
  494. var Fen=0;
  495. var S=0;
  496. if (this.chargingRecord.status == 1) {
  497. var second = secondsDistance(newDate(this.chargingRecord.startTime));
  498. var ms=second;
  499. Hour = parseInt(Math.floor(ms / (60 * 60)));
  500. Fen = parseInt(Math.floor(ms % (60 * 60) / 60));
  501. S = parseInt(Math.floor(ms % (60) ));
  502. }
  503. var obj = (Hour > 9 ? "" : "0") + Hour + ":" + (Fen > 9 ? "" : "0") + Fen+ ":" + (S > 9 ? "" : "0") + S
  504. return obj;
  505. },
  506. init() {
  507. API.personalCenter().then((res) => {
  508. this.detail = res.data
  509. }).catch(error => {
  510. uni.showToast({
  511. title: error
  512. })
  513. })
  514. },
  515. checkSubscribe(){
  516. API_weixin.checkSubscribe({
  517. openId: this.carhelp.getOpenId()
  518. }).then((res) => {
  519. if(res.data=="0"){
  520. this.show2=true;
  521. }else{
  522. this.carhelp.setGzDate()
  523. }
  524. //setGzDate
  525. }).catch(error => {
  526. uni.showToast({
  527. title: error
  528. })
  529. })
  530. },
  531. confirmPhone() {
  532. this.show = false;
  533. uni.makePhoneCall({
  534. phoneNumber: this.consumerPhone //仅为示例
  535. });
  536. },
  537. getInfo() {
  538. // uni.showLoading({
  539. // title: "加载中",
  540. // mask: true,
  541. // })
  542. API.chargingDetail({
  543. id: this.id
  544. }).then((res) => {
  545. this.chargingRecord = res.data.chargingRecord
  546. //(this.chargingRecord)
  547. this.couponObj= res.data.coupon
  548. this.chargingGun = res.data.chargingGun
  549. this.waitNum=res.data.chargingRecord.waitNum;
  550. this.getChargingStationPrice(this.chargingGun.stationId )
  551. //this.isReady = true;
  552. //直流
  553. if(this.chargingGun.gunType==1){
  554. if (this.chargingRecord.status == 1) {
  555. this.percent=this.chargingGun.soc
  556. }
  557. }else if(this.chargingGun.gunType==2){
  558. //交流
  559. }
  560. if (this.chargingRecord.status == 1) {
  561. if(this.carhelp.getGzDate()&&!this.show2){
  562. this.checkSubscribe()
  563. }
  564. }
  565. if(this.isReady&&this.chargingRecord.status!=2){
  566. var time=500;
  567. if(this.chargingRecord.status==0){
  568. }else{
  569. time=3000;
  570. this.init();
  571. }
  572. setTimeout(()=>{
  573. this.getInfo();
  574. },time)
  575. }
  576. uni.hideLoading()
  577. }).catch(error => {
  578. uni.showToast({
  579. title: error
  580. })
  581. })
  582. },
  583. submit() {
  584. if(this.chargingRecord.status==0||this.chargingRecord.status==1||this.chargingRecord.status==4){
  585. }else{
  586. return
  587. }
  588. uni.showModal({
  589. title: '提示',
  590. content: '确认结束充电?',
  591. success: res => {
  592. if (res.confirm) {
  593. //付钱 改为组件
  594. this.confirm()
  595. } else if (res.cancel) {
  596. //('用户点击取消');
  597. }
  598. }
  599. });
  600. },
  601. confirm() {
  602. ////(JSON.stringify(this.submitForm))
  603. uni.showLoading({
  604. title: "加载中",
  605. mask: true,
  606. })
  607. //this.submitForm.deviceNo = this.detail.deviceNo;
  608. API.stopCarCharging({
  609. chargingRecordId:this.chargingRecord.id
  610. }).then((res) => {
  611. this.getInfo()
  612. }).catch(error => {
  613. uni.showToast({
  614. title: error
  615. })
  616. })
  617. },
  618. }
  619. }
  620. </script>
  621. <style>
  622. page {
  623. background: #fff;
  624. padding-bottom: 50px;
  625. }
  626. </style>
  627. <style lang="scss" scoped>
  628. .progress-bar-main{
  629. .info-name2{
  630. color: #777777 ;
  631. font-size:14px;
  632. }
  633. .info-name{
  634. font-weight:bold;
  635. font-size: 20px;
  636. }
  637. }
  638. @import "@/_theme.scss";
  639. .tittle-font {
  640. @include themeify{
  641. font-size: themed('font-size7');
  642. }
  643. /* font-size: 24px;*/
  644. position: fixed;
  645. top: 12px;
  646. right: 16px;
  647. z-index: 99999;
  648. }
  649. .bot {
  650. width:100%;
  651. height:0;
  652. padding-top: 100%;
  653. border: 2px #00b962 dotted;
  654. border-radius:100%;
  655. box-sizing: border-box;
  656. position: absolute;
  657. top: 0px;
  658. left: 0px;
  659. right: 0px;
  660. margin: auto;
  661. }
  662. .progress-bar {
  663. text-align: center;
  664. margin-top: 20px;
  665. /deep/.u-circle-progress {
  666. position: relative;
  667. // min-width:220px;
  668. // min-height: 220px;
  669. }
  670. .u-progress-content {
  671. display: flex;
  672. align-items: center;
  673. justify-content: center;
  674. }
  675. .u-progress-dot {
  676. width: 16rpx;
  677. height: 16rpx;
  678. border-radius: 50%;
  679. background-color: #fb9126;
  680. }
  681. .u-progress-info {
  682. @include themeify{
  683. font-size: themed('font-size6');
  684. }
  685. /* font-size: 22px;*/
  686. padding-left: 16rpx;
  687. letter-spacing: 2rpx;
  688. color: rgba(51, 51, 51, 100);
  689. }
  690. /deep/.u-progress-dot[data-v-05b104e0] {
  691. display: none;
  692. }
  693. /deep/.u-circle-progress[data-v-cab6fc66] {
  694. margin: 30px;
  695. }
  696. }
  697. .starting {
  698. /* height: 22px;*/
  699. color: rgba(0, 185, 98, 100);
  700. @include themeify{
  701. font-size: themed('font-size3');
  702. height:themed('font-size6');
  703. }
  704. /* font-size: 16px;*/
  705. text-align: center;
  706. margin-top: 10px;
  707. }
  708. .timer {
  709. height: 43px;
  710. color: rgba(51, 51, 51, 100);
  711. @include themeify{
  712. font-size: themed('font-size13');
  713. }
  714. /* font-size: 36px;*/
  715. text-align: center;
  716. margin-top: 40px;
  717. }
  718. .charged {
  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. margin-top: 4px;
  728. }
  729. .cost {
  730. // width: 50%;
  731. padding: 0 50px;
  732. margin-top: 16px;
  733. margin: auto;
  734. width: 280px;
  735. display: flex;
  736. justify-content: space-between;
  737. .cost-top {
  738. line-height: 33px;
  739. text-align: center;
  740. @include themeify{
  741. font-size: themed('font-size7');
  742. }
  743. /* font-size: 24px;*/
  744. position: relative;
  745. .cost-font {
  746. position: absolute;
  747. top: 0;
  748. right: -25px;
  749. color: #ff6200;
  750. @include themeify{
  751. font-size: themed('font-size7');
  752. }
  753. /* font-size: 24px*/
  754. }
  755. }
  756. .cost-bottom {
  757. @include themeify{
  758. line-height: themed('font-size5');
  759. }
  760. /* line-height: 20px;*/
  761. color: #999999;
  762. text-align: center;
  763. }
  764. }
  765. .line {
  766. width: 0;
  767. height: 36px;
  768. border: 1px solid rgba(237, 237, 237, 100);
  769. margin-top: 10px;
  770. background-color: #ededed;
  771. }
  772. .power {
  773. display: flex;
  774. justify-content: space-around;
  775. padding: 0 55px;
  776. margin-top: 40px;
  777. .power-num {
  778. /* height: 27px;*/
  779. color: rgba(51, 51, 51, 100);
  780. @include themeify{
  781. font-size: themed('font-size5');
  782. height: themed('font-size9');
  783. }
  784. /* font-size: 20px;*/
  785. text-align: center;
  786. }
  787. .power-text {
  788. /* height: 20px;*/
  789. color: rgba(153, 153, 153, 100);
  790. @include themeify{
  791. font-size: themed('font-size2');
  792. height: themed('font-size5');
  793. }
  794. /* font-size: 14px;*/
  795. text-align: center;
  796. }
  797. }
  798. .info {
  799. display: flex;
  800. justify-content: space-between;
  801. margin: 0 40px;
  802. // height: 48px;
  803. line-height: 48px;
  804. background-color: rgba(255, 255, 255, 100);
  805. color: rgba(16, 16, 16, 100);
  806. border-bottom: 1px solid #ededed;
  807. .info-text {
  808. @include themeify{
  809. line-height: themed('font-size7');
  810. }
  811. /* line-height: 23px;*/
  812. padding: 13px 0 12px;
  813. //width: 200px;
  814. text-align: right;
  815. }
  816. }
  817. .charge-infos{
  818. padding: 20px 36px;
  819. margin: 0 auto;
  820. .item{
  821. display: flex;
  822. justify-content: space-between;
  823. color: rgba(102, 102, 102, 100);
  824. font-size: 18px;
  825. margin-bottom: 12px;
  826. .discounts{
  827. color:red
  828. }
  829. }
  830. }
  831. .bottom2 {
  832. padding: 12px 20px;
  833. background-color: #fff;
  834. position: fixed;
  835. bottom: 0;
  836. left: 0;
  837. right: 0;
  838. margin: auto;
  839. }
  840. .progress-bar2 {
  841. text-align: center;
  842. margin-top: 20px;
  843. /deep/.u-circle-progress {
  844. // margin-left: 23.3% !important;
  845. position: relative;
  846. }
  847. .u-progress-content {
  848. display: flex;
  849. align-items: center;
  850. justify-content: center;
  851. }
  852. .u-progress-dot {
  853. width: 16rpx;
  854. height: 16rpx;
  855. border-radius: 50%;
  856. background-color: #fb9126;
  857. }
  858. .u-progress-info {
  859. display: block;
  860. @include themeify{
  861. font-size: themed('font-size11');
  862. }
  863. /* font-size: 32px;*/
  864. padding-left: 16rpx;
  865. letter-spacing: 2rpx;
  866. color: rgba(51, 51, 51, 100);
  867. .progress-text {
  868. @include themeify{
  869. font-size: themed('font-size2');
  870. }
  871. /* font-size: 14px;*/
  872. text-align: center;
  873. color: #666666;
  874. }
  875. }
  876. /deep/.u-progress-dot[data-v-05b104e0] {
  877. display: none;
  878. }
  879. /deep/.u-circle-progress[data-v-cab6fc66] {
  880. margin: 30px;
  881. }
  882. }
  883. .time-price {
  884. display: flex;
  885. justify-content: space-between;
  886. padding: 0 65px;
  887. .item-num {
  888. /* height: 33px;*/
  889. color: rgba(51, 51, 51, 100);
  890. @include themeify{
  891. font-size: themed('font-size7');
  892. height:themed('font-size12')
  893. }
  894. /* font-size: 24px;*/
  895. text-align: center;
  896. }
  897. .item-text {
  898. eight: 20px;
  899. color: rgba(153, 153, 153, 100);
  900. @include themeify{
  901. font-size: themed('font-size2');
  902. }
  903. /* font-size: 14px;*/
  904. text-align: center;
  905. }
  906. }
  907. .bottom {
  908. background-color: #fff;
  909. display: flex;
  910. width: 91.4%;
  911. padding: 0 16px;
  912. margin:0 auto 40px;
  913. .u-size-default {
  914. border: 1px solid rgba(0, 185, 98, 100);
  915. color: #00b962;
  916. width: 44%;
  917. }
  918. }
  919. // 反馈
  920. .feedback{
  921. padding: 20px 36px ;
  922. .title-1{
  923. color: rgba(16, 16, 16, 100);
  924. font-size: 18px;
  925. }
  926. .title-2{
  927. color: rgba(102, 102, 102, 100);
  928. margin-top: 8px;
  929. line-height: 20px;
  930. }
  931. textarea{
  932. margin-top: 16px;
  933. width: 93.5%;
  934. height: 100px;
  935. background-color: rgba(228, 228, 228, 100);
  936. color: rgba(153, 153, 153, 100);
  937. font-size: 16px;
  938. border-radius: 12px;
  939. padding: 12px;
  940. line-height: 23px;
  941. }
  942. .submit{
  943. height: 44px;
  944. line-height: 26px;
  945. border-radius: 50px;
  946. background-color: rgba(0, 185, 98, 100);
  947. color: rgba(255, 255, 255, 100);
  948. font-size: 18px;
  949. margin-top: 16px;
  950. }
  951. }
  952. </style>