chargingPileDetailsFamily.vue 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515
  1. <template>
  2. <view>
  3. <u-popup v-model="carTempBl" @open="carTempBlInit" :closeable="true" mode="bottom">
  4. <view style="margin-top: 18px;">
  5. <view style="font-size: 48rpx;">临时车牌:{{form.carNum}}</view>
  6. <ucarkeyboard style="position: inherit !important;" ref="uKeyboard" mode="car"
  7. @confirm="car.carNum=form.carNum,carTempBl=false" @cancel="carTempBl=false" :showTips="true"
  8. :mask-close-able="false" @change="valChange" @backspace="backspace"></ucarkeyboard>
  9. </view>
  10. </u-popup>
  11. <view v-show="step==0">
  12. <ujp-navbar title="我的家桩充电详情" :startGz="false" :custom-back="customback">
  13. <view class="iconfont service" @click="openModal">
  14. &#xe60d;
  15. </view>
  16. </ujp-navbar>
  17. <!-- 未插枪提示 -->
  18. <!-- <u-alert-tips type="warning" v-if="!isInsert" :description="description" :show-icon="true"></u-alert-tips>
  19. -->
  20. <view class="main">
  21. <view class="main-head">
  22. <view class="text" v-if="haveLock&&lockStatus==1">
  23. <view class="text-1">
  24. 请下降地锁
  25. </view>
  26. <view class="text-2">
  27. 请在<span style="color:red">{{lockSafeStopTime}}秒</span>内停车入位,以免地锁抬升对您的爱车造成损伤。
  28. </view>
  29. </view>
  30. <view class="text" v-else>
  31. <view class="text-1">
  32. {{isInsert?'可充电':'未插枪'}}
  33. </view>
  34. <view class="text-2" v-if="station.stationType==50">
  35. 可进行充电
  36. </view>
  37. <view class="text-2" v-else>
  38. {{isInsert?'充电枪已连接,可进行充电':'未检测到充电枪,若已插枪,请拔出重插'}}
  39. </view>
  40. </view>
  41. <view class="charge-img">
  42. <img src="@/assets/img/charge.png" alt="">
  43. </view>
  44. </view>
  45. <view class="charging-info">
  46. <view class="address">
  47. {{station.name}}
  48. <!-- <text class="explain" @click="step=1">费用说明</text> -->
  49. </view>
  50. <view class="name">
  51. <span style="font-weight: bold;color: #000;"
  52. v-if="station.stationType!=50&&gun.sortNo">{{gun.sortNo}}号/</span><span
  53. style="font-weight: bold;color: #000;">{{detail.name}}</span><span
  54. style="font-weight: bold;color: #000;"
  55. v-if="station.stationType!=50">枪{{channelNoShow(gun.channelNo,detail.manufacturer,gun.customNo)}}</span>
  56. <text class="free" v-if="gunDetail.chargingAppointment&&gunDetail.isMeAppoint">您已预约</text>
  57. <text class="free" v-else-if="gunDetail.chargingAppointment&&!gunDetail.isMeAppoint">已被预约</text>
  58. <text class="free " :class="'workStatusText'+gun.workStatus" v-else >{{gun.workStatusText}}</text>
  59. </view>
  60. <view v-if="gun.workStatus==6" @click="operating=true"
  61. style="margin-top: 10rpx;color: rgba(255, 56, 56, 1);font-size: 28rpx; display: flex; align-items: center;" >
  62. <span style="color: #fff;background: linear-gradient(93.02deg, rgba(255,56,56,1) 39.4%,rgba(255,124,112,1) 92.42%);
  63. border-radius: 4px;
  64. padding: 0rpx 10rpx;
  65. margin-right: 8rpx;
  66. font-size: 24rpx;
  67. line-height:40rpx;
  68. " >提醒</span>
  69. 点击查看恢复供电操作指示图
  70. <u-icon name="arrow-right"></u-icon>
  71. </view>
  72. <view class="price" v-if="detail.stationAddress">
  73. <text class="unit">{{detail.stationAddress}}</text>
  74. </view>
  75. <view v-if="price" class="priceListBlMain">
  76. </view>
  77. </view>
  78. <view class="charging-info">
  79. <view class="row" @click="startTypeShow=true">
  80. <view class="key">充电方式</view>
  81. <view class="value">{{startTypeList[startType].label}}<u-icon name="arrow-right"></u-icon></view>
  82. </view>
  83. <view class="row" v-show="startType==0" @click="startTypeTimeShow=true" >
  84. <view class="key">定时充电</view>
  85. <view class="value">{{startTypeTimeList[0][startTypeTimeValue1].label}}:{{startTypeTimeList[1][startTypeTimeValue2].label}}<u-icon name="arrow-right"></u-icon></view>
  86. </view>
  87. </view>
  88. </view>
  89. <u-select v-model="startTypeShow" @confirm="startTypeConfirm"
  90. :default-value="[startType]"
  91. :list="startTypeList"></u-select>
  92. <u-select v-model="startTypeTimeShow"
  93. title="时:分"
  94. mode="mutil-column"
  95. @confirm="startTypeTimeConfirm"
  96. :default-value="[startTypeTimeValue1,startTypeTimeValue2]"
  97. :list="startTypeTimeList"></u-select>
  98. <view class="carImg" v-if="personInfo&&personInfo.userType!=2">
  99. <img @click="gotoLogin" src="@/assets/img/gologin/img.png">
  100. </view>
  101. <view class="bottom">
  102. <!-- 解锁中 -->
  103. <!-- <u-button shape="circle" type="success" style="opacity: 0.4;">
  104. 解锁中<img style="margin-left: 4px;" src="@/assets/static/img/riLine-refresh-line.svg" alt="">
  105. </u-button> -->
  106. <!-- 刷新充电枪状态 如果改动 ,请添加 方法判断startCarCharging -->
  107. <u-button shape="circle" type="success" v-if="gun&&gun.workStatus==2">充电中</u-button>
  108. <u-button shape="circle" type="success" v-else-if="!openBool">仅内部员工可用</u-button>
  109. <!-- 刷新充电枪状态 如果改动 ,请添加 方法判断startCarCharging -->
  110. <u-button shape="circle" type="success" @click="getPile()"
  111. v-else-if="gunDetail.chargingAppointment&&!gunDetail.isMeAppoint">已被预约</u-button>
  112. <!-- 刷新充电枪状态 如果改动 ,请添加 方法判断startCarCharging -->
  113. <u-button shape="circle" v-else-if="haveLock&&lockStatus==1" @click="lockDown()"
  114. style="background-color:#009ED7" type="success">下降地锁</u-button>
  115. <u-button shape="circle" v-else-if="!isInsert" @click="getPile()" type="success">刷新充电枪状态</u-button>
  116. <!-- 刷新充电枪状态 如果改动 ,请添加 方法判断startCarCharging -->
  117. <!-- 开始充电 -->
  118. <u-button shape="circle" type="success" v-else @click="charge()">{{startType==0?'定时充电':''}}{{startType==1?'开始充电':''}}</u-button>
  119. <u-button shape="circle" type="success" v-if="0"
  120. @click="readyToTimingChargingApi()">测试</u-button>
  121. <view v-if="lastTiming&&lastTiming.startTime&&gunDetail.nextTiming" style="
  122. text-align: center;
  123. color: #FF9800;
  124. margin-top: 5px;
  125. " >
  126. <u-icon
  127. style=" margin-top: 2px;"
  128. size="30"
  129. name="info-circle"
  130. ></u-icon>
  131. 已设置{{lastTiming.startTime}}的定时充电,再次启动将会覆盖设置
  132. </view>
  133. </view>
  134. <!--提示 -->
  135. <view class="tips">
  136. <p class="p" @click="chargeTest" style="margin-top: 20rpx;">注意事项:</p>
  137. <!-- <view class="content" v-if="!isInsert">
  138. 点击降锁后,请稍等几十秒,待地锁完全下降后,再驶入车位。
  139. </view> -->
  140. <view class="content">
  141. 1.车停好,请熄火后再充电;<br />
  142. 2.请确保充电枪插接到位;<br />
  143. 3.车辆充电时,请关闭车内电源;<br />
  144. 4.充电完毕,请及时拔枪;<br />
  145. 5.填写车牌号,离场时可减免部分停车费。
  146. </view>
  147. </view>
  148. <!-- 弹窗 -->
  149. <view>
  150. <u-modal v-model="show" @confirm="confirmPhone" :confirm-text="confirmText" confirm-color="#606266"
  151. :show-cancel-button="true" ref="uModal" :asyncClose="true" :title="title" :content="consumerPhone"
  152. :content-style="{fontSize: '24px',color: '#101010'}"></u-modal>
  153. </view>
  154. </view>
  155. <u-modal v-model="show3" class="showOss" confirm-text="注册会员" cancel-text="先不注册" :show-title="false" width="650"
  156. border-radius="30" title="" :show-cancel-button="false" :show-confirm-button="false">
  157. <view class="slot-content">
  158. <!-- :show-title="false" -->
  159. <view>
  160. <img v-if="branchParameterBl('ud')" src="@/assets/img/gologin/nipic.png" style="width: 100%;"></img>
  161. <img v-else src="@/assets/img/Nipic_24385267_20191128181916139081.png" style="width: 100%;"></img>
  162. </view>
  163. <view>
  164. <table class="classtable">
  165. <tr>
  166. <td class="td1">
  167. <img src="@/assets/img/Nipic_vip.png" style="width: 24px;"></img>
  168. <p style="color: #FF9800;line-height: 10px;">会员</p>
  169. </td>
  170. <td class="td2">
  171. <p v-if="branchParameterBl()" ><span class="dian">·</span>充电最低<span style="color:#4aa461">0.66元</span>/度(含服务费)</p>
  172. <p><span class="dian">·</span>账户充值赠送代金券</p>
  173. <p><span class="dian">·</span>更有<span style="color:#4aa461">会员充电折扣、服务费包月会员资格</span>等超多福利
  174. </p>
  175. <p v-if="branchParameterBl('ud')"><span class="dian">·</span>与51充电联盟会员共享数据,包括账户余额、优惠卡券等</p>
  176. </td>
  177. </tr>
  178. <tr>
  179. <td style="color: #fff;line-height: 3px;">.</td>
  180. </tr>
  181. <tr>
  182. <td class="td1">
  183. <img src="@/assets/img/Nipic_youke.png" style="width: 24px;"></img>
  184. <p style="color: rgb(74, 164, 97);line-height: 10px;">游客</p>
  185. </td>
  186. <td class="td2">
  187. <p><span class="dian">·</span>临时车牌快速充电</p>
  188. <p><span class="dian">·</span>无需注册 先付后退</p>
  189. <p><span class="dian">·</span><span style="color:#F44336">不可使用</span>平台各类代金券</p>
  190. </td>
  191. </tr>
  192. </table>
  193. </view>
  194. <view class="btnview">
  195. <!-- <u-button shape="circle" @click="show3=false"
  196. style=" width: 200rpx; background-color: #fff !important; margin: 20rpx;float: left;margin-bottom: 20px; "
  197. szie="mini" type="success" plain>继续充电</u-button> -->
  198. <view class="btnview1">
  199. <u-button shape="circle" style=" float: left; width: 400rpx; margin: 20rpx; " szie="mini"
  200. type="success" @click="gotoUrl('pages/login/login')">注册会员</u-button>
  201. </view>
  202. <view class="btnview2" @click="show3=false,show4=true">暂不注册,先充电</view>
  203. </view>
  204. </view>
  205. </u-modal>
  206. <u-modal v-model="quickChargingBl" class="quickMain" confirm-text="注册会员" cancel-text="先不注册" :show-title="false" width="650"
  207. border-radius="30" title="" :show-cancel-button="false" :show-confirm-button="false">
  208. <view class="quickMain-slot-content">
  209. <!-- :show-title="false" -->
  210. <view class="quickMain-img">
  211. <img src="@/assets/img/member/10.png" ></img>
  212. </view>
  213. <view class="quickMain-bodyMain" >
  214. <view class="quickMain-body">
  215. <view class="quickMain-text1">快捷充电功能上线!</view>
  216. <view class="quickMain-text2">
  217. 恭喜您达到
  218. <img src="@/assets/img/9-4/白金会员.svg" ></img>
  219. <span style="color:#3F51B5;">白金会员</span>等级,您已获得<span style="color: #19be6b;">【快捷充电】</span>功能体验资格。
  220. </view>
  221. <view class="quickMain-text2">
  222. 当您插枪扫码后,在个人账户余额充足的情况下,自动帮您选择充满自停模式并开始充电。如需关闭此功能,可在“我的”-“设置”中修改。
  223. </view>
  224. </view>
  225. <view class="btnview">
  226. <!-- <u-button shape="circle" @click="show3=false"
  227. style=" width: 200rpx; background-color: #fff !important; margin: 20rpx;float: left;margin-bottom: 20px; "
  228. szie="mini" type="success" plain>继续充电</u-button> -->
  229. <view class="btnview1">
  230. <u-button shape="circle" style=" float: left; width: 400rpx; margin: 20rpx; " szie="mini"
  231. type="success" @click="checkedChange2(1)">同意并记住我的选择</u-button>
  232. </view>
  233. <view class="btnview2" @click="checkedChange2(0)">暂不启用</view>
  234. </view>
  235. </view>
  236. </view>
  237. </u-modal>
  238. <u-modal v-model="show1" @confirm="gotoGz" cancel-text="暂不关注" confirm-text="前往关注" :show-cancel-button="false"
  239. confirm-color="#53b56b" ref="uModal2" :asyncClose="true">
  240. <view style="padding: 15px;">请先关注<span style=" color: #53b56b;">{{projectName}}</span>公众号,然后进行车辆充电</view>
  241. </u-modal>
  242. <quickRegistration v-if="show4" @login="loginMethod" :carNum="car?car.carNum:''" ></quickRegistration>
  243. <u-popup v-model="operating" mode="center" >
  244. <view @click="operating=false"
  245. style="background-color: #53a849;
  246. text-align: center;
  247. width: 600rpx; ">
  248. <img style=" width: 400rpx;"
  249. src="@/assets/img/gologin/操作指引-tuya.png"></img>
  250. </view>
  251. </u-popup>
  252. </view>
  253. </template>
  254. <script>
  255. import * as API_index from '@/apis/index.js'
  256. import * as API from "@/apis/chargeProcess.js"
  257. import * as userApi from '@/apis/user.js'
  258. import * as newsApi from '@/apis/news.js'
  259. import ucarkeyboard from '@/components/Ucarkeyboard.vue'
  260. import * as API_weixin from '@/apis/weixin.js'
  261. import quickRegistration from '@/components/QuickRegistration.vue'
  262. import {
  263. newDate,
  264. hourDistanceArr,
  265. currentTimeStamp,
  266. parseUnixTime,
  267. daysDistance
  268. } from '@/utils'
  269. export default {
  270. components: {
  271. ucarkeyboard,quickRegistration
  272. },
  273. data() {
  274. return {
  275. show1: false,
  276. show2: false,
  277. show3: false,
  278. show4: false,
  279. operating:false,
  280. carImg3Bl:false,
  281. carImg4Bl:false,
  282. carImg3span1:0,
  283. carImg3span2:0,
  284. carImg3span3:0,
  285. pricesInfoCurrent: {},
  286. pricesInfoCurrent2: {},
  287. show3: false,
  288. temporaryCarNum: "",
  289. form: {
  290. carNum: '',
  291. defaultFlag: true,
  292. },
  293. priceListBl: false,
  294. pricesInfo: [],
  295. showNt: false,
  296. showNtStep: 0,
  297. showNtValue: 30,
  298. station: {},
  299. step: 0,
  300. bannerList: [],
  301. isInsert: false,
  302. isReady: false,
  303. onShowRole: false,
  304. id: "",
  305. car: {},
  306. isback: false,
  307. gun: {},
  308. prices: {},
  309. personInfo: {},
  310. price: {
  311. costPrice: 0,
  312. electricityPrice: 0,
  313. discountServicePrice: 0,
  314. servicePrice: 0,
  315. },
  316. gunDetail: {},
  317. haveLock: false,
  318. lockSafeStopTime: 0,
  319. lockStatus: '', // 1抬锁 2落锁
  320. carplateMust: false,
  321. detail: {
  322. no: '',
  323. interface: '',
  324. type: '',
  325. power: 0,
  326. price: [
  327. ]
  328. },
  329. consumerPhone: "",
  330. description: '充电前请确保您的车辆已与充电桩连接!并关闭车内电源。',
  331. show: false,
  332. title: '联系客服',
  333. showVin: false,
  334. confirmText: '拨打电话',
  335. content: '余额不足5,请先充值。',
  336. carDetText: '',
  337. userCard: null,
  338. canUse: false,
  339. openStatus: 0,
  340. isVip: false,
  341. openBoolShow: false,
  342. carTempBl: false,
  343. maxlength: 8,
  344. chatShowId: "",
  345. chatShow: false,
  346. startCarChargingBl:false,
  347. quickChargingBl:false,
  348. carplateMustModel:false,
  349. projectName: "",
  350. showrecharge:"",
  351. bannerListTop:[],
  352. getBannerInfoTopBl:true,
  353. showTop:false,
  354. showTopImg:"",
  355. showTopIndex: 0,
  356. startType:1,
  357. startTypeShow:false,
  358. startTypeTimeShow:false,
  359. startTypeTimeValue1:0,
  360. startTypeTimeValue2:0,
  361. lastTiming:{},
  362. startTypeTimeList:[
  363. [
  364. {
  365. label:"00",
  366. value:"00"
  367. },
  368. ],
  369. [
  370. {
  371. label:"00",
  372. value:"00"
  373. }
  374. ]
  375. ],
  376. startTypeStartTime:"",
  377. startTypeList:[
  378. {
  379. label:"设置定时",
  380. value:0
  381. },
  382. {
  383. label:"立即开始",
  384. value:1
  385. }
  386. ]
  387. }
  388. },
  389. computed: {
  390. checked(){
  391. return !this.startType
  392. },
  393. prevMonthKwhBL(){
  394. if(this.carImg3span1>=1000){
  395. return false
  396. }
  397. return true
  398. },
  399. openBool() {
  400. if (this.openStatus == '3') {
  401. return this.isVip
  402. }
  403. return true
  404. },
  405. userCardBool() {
  406. if (this.userCard) {
  407. var date = new Date().getTime()
  408. var reg = new RegExp('-', 'gi')
  409. var str = this.userCard.endTime;
  410. //console.log(str.replace(reg,'/'))
  411. var date2 = new Date(str.replace(reg, '/')).getTime();
  412. if (date < date2) {
  413. return true;
  414. }
  415. }
  416. return false
  417. },
  418. },
  419. onShow() {
  420. uni.hideToast();
  421. this.checkSubscribe()
  422. if (this.onShowRole) {
  423. this.getPile()
  424. }
  425. },
  426. onReady() {
  427. },
  428. onLoad(op) {
  429. //this.startCarCharging()
  430. this.init(op)
  431. },
  432. methods: {
  433. startTypeTimeConfirm(e){
  434. console.log(e)
  435. this.startTypeTimeValue1=this.startTypeTimeList[0].findIndex(item=>{
  436. return item.value==e[0].value
  437. })
  438. this.startTypeTimeValue2=this.startTypeTimeList[1].findIndex(item=>{
  439. return item.value==e[1].value
  440. })
  441. console.log(this.startTypeTimeValue2,this.startTypeTimeValue1)
  442. },
  443. // startTypeConfirm(e){
  444. // console.log(e);
  445. // this.startType=e?0:1
  446. // console.log(this.startType);
  447. // if(this.lastTiming==null){
  448. // this.startTypeTimeValue1=new Date().getHours()
  449. // this.startTypeTimeValue2=new Date().getMinutes()
  450. // }
  451. // },
  452. startTypeConfirm(e){
  453. console.log(e);
  454. this.startType=e[0].value
  455. if(this.lastTiming==null){
  456. this.startTypeTimeValue1=new Date().getHours()
  457. this.startTypeTimeValue2=new Date().getMinutes()
  458. }
  459. },
  460. onShowK() {
  461. uni.hideToast();
  462. this.checkSubscribe()
  463. if (this.onShowRole) {
  464. this.getPile()
  465. }
  466. },
  467. init(op){
  468. this.startTypeTimeList[0]=[]
  469. for(var i=0;i<24;i++){
  470. this.startTypeTimeList[0].push({
  471. label:i<10?"0"+i:i,
  472. value:i<10?"0"+i:i,
  473. })
  474. }
  475. this.startTypeTimeList[1]=[]
  476. for(var i=0;i<60;i++){
  477. this.startTypeTimeList[1].push({
  478. label:i<10?"0"+i:i,
  479. value:i<10?"0"+i:i,
  480. })
  481. }
  482. this.projectName = process.car.ProjectName;
  483. var consumerPhone = "400-8899-619"
  484. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  485. if (consumerPhone) {
  486. this.consumerPhone = consumerPhone
  487. }
  488. var carDetText = "填写车牌号,充电时可以减免部分停车费用"
  489. // img="https://yktwechat.xiaoxinda.com/config/xxd2021.jpg"
  490. if (carDetText) {
  491. this.carDetText = carDetText
  492. }
  493. if( this.branchParameterBl('ud')){
  494. //this.getf5surprised()
  495. this.getBannerInfoTop("home-top2");
  496. }
  497. //this.startCarCharging()
  498. if (op.isback) {
  499. this.isback = true
  500. }
  501. if (op.id) {
  502. this.id = op.id
  503. var personInfo = this.carhelp.getPersonInfo()
  504. this.personInfo = personInfo
  505. var userInfo = this.carhelp.getPersonInfo();
  506. if (this.personInfo && this.personInfo.userType == "1") {
  507. this.show3 = true
  508. }else{
  509. }
  510. if (userInfo && userInfo.id) {
  511. } else {
  512. //this.getBannerInfoTop("home-top");
  513. }
  514. this.getPile()
  515. } else {
  516. uni.showToast({
  517. title: "请扫码充电"
  518. })
  519. }
  520. },
  521. loginMethod(){
  522. var personInfo = this.carhelp.getPersonInfo()
  523. this.personInfo = personInfo
  524. this.getPile()
  525. },
  526. cancelGz() {
  527. this.carhelp.setGzDate()
  528. },
  529. gotoGz() {
  530. this.carhelp.setGzDate()
  531. var url = process.car.gzUrl;
  532. window.location.href = url
  533. },
  534. checkSubscribe() {
  535. API_weixin.checkSubscribe({
  536. openId: this.carhelp.getOpenId()
  537. }).then((res) => {
  538. if (res.data == "0") {
  539. this.show1 = true
  540. } else {
  541. //this.init();
  542. this.show1 = false;
  543. this.show2 = true;
  544. //this.carhelp.setGzDate()
  545. }
  546. //setGzDate
  547. }).catch(error => {
  548. uni.showToast({
  549. title: error
  550. })
  551. })
  552. },
  553. checkedChange2(checked2) {
  554. uni.showLoading({
  555. title: "加载中",
  556. mask: true,
  557. })
  558. API_index.changeQuickCharging({qucikStatus: checked2}).then((res) => {
  559. var userInfo = this.carhelp.getPersonInfo();
  560. userInfo.quickCharging=checked2;
  561. this.carhelp.setPersonInfo(userInfo);
  562. this.quickChargingBl=false;
  563. uni.hideLoading();
  564. if(checked2){
  565. this.startCarCharging()
  566. }
  567. }).catch(error => {
  568. uni.showToast({
  569. title: error,
  570. icon: "none"
  571. })
  572. })
  573. },
  574. chatShowBtn(item) {
  575. if(this.chatShow == false){
  576. this.chatShow = true
  577. }else if(item.startTime!=this.pricesInfoCurrent2.startTime){
  578. this.chatShow = true
  579. }else{
  580. this.chatShow = false
  581. }
  582. this.pricesInfoCurrent2=item
  583. },
  584. clickBannerTopI(i) {
  585. var mod = this.bannerListTop[i];
  586. //this.showTop = false;
  587. this.clickBanner(0, true, mod)
  588. },
  589. clickBannerTop() {
  590. var mod = this.bannerListTop[this.showTopIndex];
  591. this.showTop = false;
  592. this.clickBanner(0, true, mod)
  593. },
  594. clickBanner(index, bl, modout) {
  595. var uurl = "";
  596. var mod = {}
  597. if (modout) {
  598. mod = modout;
  599. }else{
  600. mod =this.bannerList[index]
  601. }
  602. mod.clickUrl = mod.linkUrl
  603. if (mod.linkPicUrl && !bl) {
  604. this.showOss = true;
  605. this.showOssImg = mod.linkPicUrl;
  606. this.showOssIndex = index;
  607. } else if (mod.clickUrl == null) {
  608. } else if (mod.clickUrl.indexOf('http') == 0) {
  609. window.location = mod.clickUrl + uurl;
  610. } else if (mod.clickUrl.slice(-5) == 'login' && this.userId) {
  611. } else if (mod.clickUrl.indexOf('#/') == 0) {
  612. if (mod.clickUrl.indexOf("?") == -1) {
  613. mod.clickUrl += '?';
  614. }
  615. var url = mod.clickUrl.split("#")[1]
  616. //window.location = mod.clickUrl;
  617. uni.navigateTo({
  618. url: url + uurl
  619. })
  620. } else if (mod.clickUrl == '#' || mod.clickUrl == '') {
  621. } else {
  622. uni.navigateTo({
  623. url: mod.clickUrl + uurl
  624. })
  625. }
  626. },
  627. getBannerInfo(code) {
  628. uni.showLoading({
  629. title: "加载中",
  630. mask: true,
  631. })
  632. newsApi.getBannerInfo(code).then((res) => {
  633. uni.hideLoading();
  634. this.bannerList = res.data;
  635. // document.getElementsByClassName("uni-swiper-wrapper")[0].parentNode.style="background-color: rgb(255, 255, 255); height: 300px;"
  636. }).catch(error => {
  637. uni.showToast({
  638. title: error,
  639. icon: "none"
  640. })
  641. })
  642. },
  643. thisdaysDistance(endTime) {
  644. var date = new Date()
  645. var date2 = newDate(endTime);
  646. return daysDistance(date, date2)
  647. },
  648. thisendTime(endTime) {
  649. if (endTime) {
  650. var reg = new RegExp('-', 'gi')
  651. var str = endTime.substring(0, 10).replace(reg, '.')
  652. return str
  653. }
  654. return ''
  655. },
  656. thispercent(userCard) {
  657. var p = 0
  658. if (userCard && userCard.chargeDegreeLimit) {
  659. p = userCard.chargedDegree / userCard.chargeDegreeLimit * 100
  660. }
  661. if (p > 100) {
  662. p = 100
  663. }
  664. return p.toFixed(0)
  665. },
  666. carTempBlInit() {
  667. var aaa = this.$refs.uKeyboard.changeCarInputValue();
  668. console.log(aaa)
  669. if (this.form.carNum.length && !aaa) {
  670. var c = this.$refs.uKeyboard.changeCarInputMode();
  671. }
  672. },
  673. // 按键被点击(点击退格键不会触发此事件)
  674. // 按键被点击(点击退格键不会触发此事件)
  675. valChange(val) {
  676. if (this.form.carNum.length >= this.maxlength) {
  677. return
  678. }
  679. if (true) {
  680. this.form.carNum += val;
  681. } else {
  682. }
  683. // 将每次按键的值拼接到form.carNum变量中,注意+=写法
  684. //(this.form.carNum);
  685. var aaa = this.$refs.uKeyboard.changeCarInputValue();
  686. if ((this.form.carNum.length == 0) && aaa) {
  687. this.$refs.uKeyboard.changeCarInputMode();
  688. } else if (!aaa) {
  689. this.$refs.uKeyboard.changeCarInputMode();
  690. }
  691. },
  692. // 退格键被点击
  693. backspace() {
  694. // 删除form.carNum的最后一个字符
  695. if (this.form.carNum.length) {
  696. if (true) {
  697. this.form.carNum = this.form.carNum.substr(0, this.form.carNum.length - 1);
  698. } else {
  699. //this.selectIndex=-1;
  700. }
  701. }
  702. //(this.form.carNum);
  703. var aaa = this.$refs.uKeyboard.changeCarInputValue();
  704. if (this.form.carNum.length == 0 && aaa) {
  705. this.$refs.uKeyboard.changeCarInputMode();
  706. }
  707. },
  708. lockDown() {
  709. uni.showLoading({
  710. title: "加载中",
  711. mask: true,
  712. })
  713. API.lockDown({
  714. gunId: this.gun.id
  715. }).then((res) => {
  716. uni.hideLoading()
  717. this.lockStatus = res.data.lockStatus
  718. setTimeout(() => {
  719. this.getPile()
  720. }, 5 * 1000)
  721. }).catch(error2 => {
  722. uni.showToast({
  723. title: error2
  724. })
  725. })
  726. },
  727. workStatus2() {
  728. API_index.findChargeData().then((res) => {
  729. var list = res.data.chargingRecordList;
  730. var obj = null;
  731. for (var i = 0; i < list.length; i++) {
  732. if (list[i].deviceNo == this.detail.deviceNo && list[i].channelNo == this.gun.channelNo) {
  733. obj = list[i];
  734. break;
  735. }
  736. }
  737. if (obj) {
  738. uni.redirectTo({
  739. url: "/pages/searchPile/chargeProcess/dcCharging?id=" + obj.id
  740. })
  741. }
  742. }).catch(error => {
  743. uni.showToast({
  744. title: error,
  745. icon: "none"
  746. })
  747. })
  748. },
  749. priceDetail() {
  750. uni.navigateTo({
  751. url: 'chargePriceDetails?stationId=' + this.detail.stationId + "&type=" + this.detail.type +
  752. "&id=" + this.detail.id
  753. })
  754. },
  755. customback2() {
  756. this.step = 0;
  757. },
  758. customback() {
  759. if (this.isback) {
  760. if (this.$refs.ujpnavbar) {
  761. this.$refs.ujpnavbar.navberBack()
  762. } else {
  763. uni.navigateBack({
  764. })
  765. }
  766. } else {
  767. uni.reLaunch({
  768. url: "/pages/login/welcome"
  769. })
  770. }
  771. },
  772. gotoLogin() {
  773. this.onShowRole = true
  774. if (false) {
  775. } else {
  776. uni.navigateTo({
  777. url: "/pages/login/login?jpcode=jp_team51_charge_id:A_" + this.id
  778. })
  779. }
  780. },
  781. carTemp() {
  782. },
  783. carDet(t) {
  784. if(this.car){
  785. return
  786. }
  787. this.onShowRole = true
  788. var url="/pages/user/car/carDet?jpcode=jp_team51_charge_id:A_" + this.id
  789. if( this.car&& this.car.id){
  790. url+="&id="+this.car.id
  791. }
  792. uni.navigateTo({
  793. url: url
  794. })
  795. },
  796. openModal() {
  797. this.show = true;
  798. },
  799. confirmPhone() {
  800. this.show = false;
  801. uni.makePhoneCall({
  802. phoneNumber: this.consumerPhone //仅为示例
  803. });
  804. },
  805. role(bl) {
  806. if (bl) {
  807. return true;
  808. }
  809. if (this.carplateMust) {
  810. if (this.car && this.car.carNum) {
  811. } else {
  812. uni.showModal({
  813. title: "提示",
  814. content: "填写车牌号,离场时可减免部分停车费",
  815. confirmText: "填写车牌号",
  816. cancelText: "继续充电",
  817. success: res1 => {
  818. if (res1.confirm) {
  819. this.carDet()
  820. } else if (res1.cancel) {
  821. //('用户点击取消');
  822. this.charge(true)
  823. }
  824. }
  825. })
  826. return false;
  827. }
  828. }
  829. return true;
  830. },
  831. getChargeList(){
  832. var obj=this.carhelp.get("carhelp_getChargeList")
  833. var time=new Date( ).toLocaleString().substr(0,12).replace("T"," ");
  834. if(obj&&time==obj.time){
  835. var num1=parseInt(obj.electricQuantity);
  836. var num2=parseInt(obj.totalServiceMoney) ;
  837. this.carImg3span1=parseInt(num1/10000);
  838. this.carImg3span2=parseInt(num2*0.4) ;
  839. this.carImg3span3=parseInt(num2) ;
  840. if(num2*0.4>20||this.carImg3span1>=1000){
  841. this.carImg3Bl=true;
  842. }else{
  843. this.carImg4Bl=true;
  844. }
  845. console.log("carhelp_getChargeList",this.carImg3span1,this.carImg3span2)
  846. return
  847. }
  848. var date =new Date().getTime()-30*1000*60*60*24;
  849. var startDate =parseUnixTime(new Date(date),'{y}-{m}-{d}');
  850. API_index.chargingRecordData({
  851. pageIndex: 1,
  852. pageSize:999,
  853. startDate: startDate,
  854. // endDate: this.endDate
  855. }).then((res) => {
  856. var chargeList =res.data.data;
  857. var num1=0;
  858. var num2=0;
  859. for(var i in chargeList){
  860. var obj=chargeList[i]
  861. if(obj.status==2){
  862. num1+=obj.electricQuantity
  863. num2+=obj.totalServiceMoney
  864. }
  865. }
  866. console.log(num1,num2)
  867. this.carhelp.set("carhelp_getChargeList",{
  868. time: time,
  869. electricQuantity:num1,
  870. totalServiceMoney:num2
  871. })
  872. this.carImg3span1=parseInt(num1/10000);
  873. this.carImg3span2=parseInt(num2*0.4) ;
  874. this.carImg3span3=parseInt(num2) ;
  875. if(num2*0.4>20||this.carImg3span1>=1000){
  876. this.carImg3Bl=true;
  877. }else{
  878. this.carImg4Bl=true;
  879. }
  880. }).catch(error => {
  881. uni.showToast({
  882. title: error,
  883. icon: "none"
  884. })
  885. })
  886. },
  887. getUserCard() {
  888. },
  889. getH(item) {
  890. return item * 100 + 'px'
  891. },
  892. getW(item) {
  893. var t1 = item.endTime.substring(0, 2)
  894. var t2 = item.startTime.substring(0, 2)
  895. var k = parseInt(t1) - parseInt(t2);
  896. return 100 / 24 * k + "%"
  897. },
  898. getPile() {
  899. uni.showLoading({
  900. title: "加载中",
  901. mask: true,
  902. })
  903. API.chargingDeviceGunDetail({
  904. gunNo: this.id,
  905. jpcode: "jp_team51_charge_id:A_" + this.id
  906. }).then((res) => {
  907. uni.hideLoading()
  908. this.gunDetail = res.data;
  909. this.detail = res.data.device
  910. this.station = res.data.station
  911. this.carplateMust = this.station.carNumRequired;
  912. this.prices = res.data.prices
  913. this.pricesInfo = res.data.prices
  914. this.price = res.data.price
  915. this.lastTiming=res.data.lastTiming
  916. if(this.lastTiming){
  917. if(this.lastTiming.lastStartMode==4||this.gunDetail.nextTiming){
  918. this.startType=0
  919. }
  920. if(this.lastTiming.startTime){
  921. var sz=this.lastTiming.startTime.split(":")
  922. this.startTypeTimeConfirm([
  923. {
  924. value:sz[0],
  925. label:sz[0]
  926. },
  927. {
  928. value:sz[1],label:sz[1]
  929. }
  930. ])
  931. }
  932. }
  933. this.pricesInfoCurrent = {
  934. ...this.price
  935. }
  936. this.pricesInfoCurrent2 = {
  937. ...this.price
  938. }
  939. this.gun = res.data.gun
  940. if(this.gun &&this.gun.workStatus==6){
  941. this.operating=true;
  942. }
  943. this.car =res.data.car
  944. if (this.carplateMust && this.car && this.car.carNum) {
  945. //this.carplateMustModel=true;
  946. } else {
  947. }
  948. this.lockStatus = res.data.lockStatus;
  949. this.haveLock = res.data.haveLock;
  950. this.lockSafeStopTime = res.data.lockSafeStopTime
  951. this.isVip = res.data.isVip
  952. this.openStatus = res.data.station.openStatus
  953. this.isInsert = this.gun.insertStatus
  954. if (!this.openBool) {
  955. //this.openBoolShow=true;
  956. uni.showModal({
  957. title: "提示",
  958. content: "当前设备仅供内部使用,如有问题可联系客服",
  959. showCancel: false,
  960. success: () => {
  961. }
  962. })
  963. }
  964. if (this.gun.workStatus == 2) {
  965. this.workStatus2()
  966. }
  967. }).catch(error => {
  968. uni.hideLoading()
  969. uni.showModal({
  970. title: "提示",
  971. content: "设备扫码异常",
  972. confirmText: "前往首页",
  973. showCancel: false,
  974. success: () => {
  975. uni.reLaunch({
  976. url: "/pages/index/index"
  977. })
  978. }
  979. })
  980. // uni.showToast({
  981. // title: error
  982. // })
  983. })
  984. },
  985. chargeTest(bl) {
  986. if (process.env.NODE_ENV === "development" && process.car.SIMPLE_RUN) {
  987. var url = '/pages/searchPile/chargeProcess/charge?stationId=' + this.detail.stationId +
  988. '&deviceNo=' + this.detail.deviceNo + "&gun=" + this.gun.channelNo + "&carNumber=" + (
  989. this.car ? this.car.carNum : '');
  990. url+="&id="+this.id
  991. uni.navigateTo({
  992. url: url
  993. })
  994. }
  995. },
  996. charge(bl) {
  997. if (!this.role(bl)) {
  998. return
  999. }
  1000. // var url = '/pages/searchPile/chargeProcess/charge?stationId=' + this.detail.stationId +
  1001. // '&deviceNo=' + this.detail.deviceNo + "&gun=" + this.gun.channelNo + "&carNumber=" + (
  1002. // this.car ? this.car.carNum : '');
  1003. // if(this.isback){
  1004. // url+="&startMode=1"
  1005. // }
  1006. // url+="&id="+this.id
  1007. // uni.navigateTo({
  1008. // url: url
  1009. // })
  1010. if(this.startType==1){
  1011. this.startCarCharging()
  1012. }
  1013. if(this.startType==0){
  1014. this.readyToTimingCharging()
  1015. }
  1016. },
  1017. isInsertBtn() {
  1018. this.isInsert = true;
  1019. },
  1020. exchangeDetail(exchangeCode, code2) {
  1021. uni.showLoading({
  1022. title: "加载中",
  1023. mask: true,
  1024. })
  1025. userApi.exchangeDetail({
  1026. key: exchangeCode
  1027. }).then((res) => {
  1028. uni.hideLoading();
  1029. //
  1030. if (!res.data.enabled) {
  1031. if (res.data.code == 2) {
  1032. //未开始
  1033. } else {
  1034. //已经结束
  1035. }
  1036. //this.getBannerInfoTop("home-top");
  1037. } else if (res.data.status == 1) {
  1038. //this.getBannerInfoTop("home-top");
  1039. //已经兑换,
  1040. } else if (res.data.status == 2) {
  1041. if (code2) {
  1042. //试试另一张卷
  1043. var c = this.carhelp.get("newyear_activity2023")
  1044. if (c) {
  1045. this.carhelp.set("newyear_activity2023", {
  1046. nt: code2,
  1047. code: c.code == 0 ? 1 : 0,
  1048. status: 0
  1049. })
  1050. }
  1051. this.exchangeDetail(code2)
  1052. } else {
  1053. //this.getBannerInfoTop("home-top");
  1054. }
  1055. //不能兑换
  1056. } else {
  1057. this.showNt = true
  1058. this.showNtStep = 0;
  1059. this.showNtValue = res.data.totalDiscount
  1060. }
  1061. }).catch(error => {
  1062. this.showNt = false;
  1063. uni.showToast({
  1064. title: error,
  1065. icon: "none"
  1066. })
  1067. })
  1068. },
  1069. redeemNow(exchangeCode) {
  1070. uni.showLoading({
  1071. title: "加载中",
  1072. mask: true,
  1073. })
  1074. userApi.exchange({
  1075. key: exchangeCode
  1076. }).then((res) => {
  1077. uni.hideLoading();
  1078. this.showNtStep = 1
  1079. this.carhelp.set("newyear_activity2023", {
  1080. nt: exchangeCode,
  1081. status: 1
  1082. })
  1083. }).catch(error => {
  1084. this.showNt = false;
  1085. uni.showToast({
  1086. title: error,
  1087. icon: "none"
  1088. })
  1089. })
  1090. },
  1091. showNtStepClick() {
  1092. if (this.showNtStep == 0) {
  1093. var obj = this.carhelp.get("newyear_activity2023")
  1094. if (this.personInfo.userType != 1) {
  1095. this.redeemNow(obj.nt)
  1096. } else {
  1097. this.showNt = false;
  1098. uni.showModal({
  1099. title: "提示",
  1100. content: "游客无法兑换,请先注册为会员后再兑换",
  1101. confirmText: "前往注册",
  1102. success: res1 => {
  1103. if (res1.confirm) {
  1104. uni.navigateTo({
  1105. url: '/pages/login/login'
  1106. })
  1107. } else if (res1.cancel) {
  1108. //('用户点击取消');
  1109. }
  1110. }
  1111. })
  1112. }
  1113. } else if (this.showNtStep == 1 || this.showNtStep == 2 || this.showNtStep == 3 || this.showNtStep == 4) {
  1114. this.showNt = false;
  1115. uni.navigateTo({
  1116. url: "/pages/user/coupon/myCoupon"
  1117. })
  1118. }
  1119. },
  1120. getf5surprised() {
  1121. uni.showLoading({
  1122. title: "加载中",
  1123. mask: true,
  1124. })
  1125. userApi.exchangeGroupDetail2("周年红包").then((res) => {
  1126. uni.hideLoading();
  1127. var data=res.data;
  1128. this.key=""
  1129. this.couponList=[]
  1130. if(data.length){
  1131. this.couponList = res.data[0].couponList;
  1132. if(this.couponList&&this.couponList.length){
  1133. //this.getBannerInfoTop()
  1134. this.getBannerInfoTop("home-top2");
  1135. }
  1136. }
  1137. }).catch(error => {
  1138. uni.showToast({
  1139. title: error,
  1140. icon: "none"
  1141. })
  1142. })
  1143. },
  1144. getBannerInfoTop(code) {
  1145. if(!this.carhelp.getOpenId()){
  1146. return
  1147. }
  1148. var nowtime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d}')
  1149. var time = this.carhelp.get("bannerListTop");
  1150. if ((time && nowtime == time)) {
  1151. this.getBannerInfoTopBl = false;
  1152. }
  1153. //特殊活动不考虑
  1154. //this.getBannerInfoTopBl = true;
  1155. // uni.showLoading({
  1156. // title: "加载中",
  1157. // mask: true,
  1158. // })
  1159. newsApi.getBannerInfo(code).then((res) => {
  1160. this.bannerListTop = res.data;
  1161. if (this.bannerListTop.length) {
  1162. this.showTop = true;
  1163. this.showTopImg = this.bannerListTop[0].picUrl;
  1164. this.showTopIndex = 0;
  1165. }
  1166. this.carhelp.set("bannerListTop", nowtime);
  1167. //this.test()
  1168. var userInfo = this.carhelp.getPersonInfo();
  1169. if (userInfo && userInfo.id) {
  1170. //this.getf5surprised()
  1171. } else {}
  1172. //uni.hideLoading()
  1173. //document.getElementsByClassName("uni-swiper-wrapper")[0].parentNode.style="background-color: rgb(255, 255, 255); height: 120px;"
  1174. }).catch(error => {
  1175. uni.showToast({
  1176. title: error,
  1177. icon: "none"
  1178. })
  1179. })
  1180. },
  1181. readyToTimingCharging(){
  1182. if(this.gun&&this.gun.workStatus==2){
  1183. uni.showModal({
  1184. title: '提示',
  1185. showCancel:false,
  1186. content:"快捷充电失败:充电中",
  1187. })
  1188. }else if(!this.openBool){
  1189. uni.showModal({
  1190. title: '提示',
  1191. showCancel:false,
  1192. content:"快捷充电失败:仅内部员工可用"
  1193. })
  1194. }else if(this.gunDetail.chargingAppointment&&!this.gunDetail.isMeAppoint){
  1195. uni.showModal({
  1196. title: '提示',
  1197. showCancel:false,
  1198. content:"快捷充电失败:已被预约"
  1199. })
  1200. }else if(this.haveLock&&this.lockStatus==1){
  1201. uni.showModal({
  1202. title: '提示',
  1203. showCancel:false,
  1204. content:"快捷充电失败:下降地锁"
  1205. })
  1206. }else if(!this.isInsert){
  1207. uni.showModal({
  1208. title: '提示',
  1209. showCancel:false,
  1210. content:"快捷充电失败:未插枪"
  1211. })
  1212. }else {
  1213. this.readyToTimingChargingApi();
  1214. }
  1215. },
  1216. readyToTimingChargingApi(){
  1217. uni.showLoading({
  1218. title:"定时充电启动",
  1219. mask: true,
  1220. })
  1221. this.startTypeStartTime=
  1222. this.startTypeTimeList[0][this.startTypeTimeValue1].value+":"+this.startTypeTimeList[1][this.startTypeTimeValue2].value
  1223. var submitForm={
  1224. deviceNo:this.detail.deviceNo,
  1225. channelNo:this.gun.channelNo,
  1226. startTime:this.startTypeStartTime
  1227. }
  1228. API.readyToTimingCharging(submitForm).then((res) => {
  1229. uni.hideLoading()
  1230. uni.showModal({
  1231. title: '提示',
  1232. showCancel:false,
  1233. content:"设置完成"
  1234. })
  1235. this.getPile()
  1236. }).catch(error => {
  1237. uni.hideLoading()
  1238. uni.showModal({
  1239. title: '提示',
  1240. showCancel:false,
  1241. content:"充电失败:"+( error?error:'未知错误')
  1242. })
  1243. })
  1244. },
  1245. startCarCharging(){
  1246. if(this.gun&&this.gun.workStatus==2){
  1247. uni.showModal({
  1248. title: '提示',
  1249. showCancel:false,
  1250. content:"快捷充电失败:充电中",
  1251. })
  1252. }else if(!this.openBool){
  1253. uni.showModal({
  1254. title: '提示',
  1255. showCancel:false,
  1256. content:"快捷充电失败:仅内部员工可用"
  1257. })
  1258. }else if(this.gunDetail.chargingAppointment&&!this.gunDetail.isMeAppoint){
  1259. uni.showModal({
  1260. title: '提示',
  1261. showCancel:false,
  1262. content:"快捷充电失败:已被预约"
  1263. })
  1264. }else if(this.haveLock&&this.lockStatus==1){
  1265. uni.showModal({
  1266. title: '提示',
  1267. showCancel:false,
  1268. content:"快捷充电失败:下降地锁"
  1269. })
  1270. }else if(!this.isInsert){
  1271. uni.showModal({
  1272. title: '提示',
  1273. showCancel:false,
  1274. content:"快捷充电失败:未插枪"
  1275. })
  1276. }else {
  1277. this.startCarChargingApi();
  1278. }
  1279. },
  1280. startCarChargingApi(){
  1281. uni.showLoading({
  1282. title:"快捷充电启动",
  1283. mask: true,
  1284. })
  1285. this.startCarChargingBl=true;
  1286. var submitForm={
  1287. deviceNo:this.detail.deviceNo,
  1288. channelNo:this.gun.channelNo,
  1289. carNumber:this.car ? this.car.carNum : '',
  1290. chargeStrategy:0,
  1291. amount:0,
  1292. payType:2,
  1293. }
  1294. if(this.userCardBool){
  1295. submitForm.userCardId=this.userCard.id
  1296. }
  1297. API.startCarCharging(submitForm).then((res) => {
  1298. if (res.data.status == "5") {
  1299. var _this=this;
  1300. var recordId=res.data.recordId;
  1301. uni.showModal({
  1302. title: '启动充电失败',
  1303. confirmText:"充值",
  1304. cancelText:"暂不启用",
  1305. content:"个人账户余额不足10元,无法启动快捷充电",
  1306. success: function (res) {
  1307. if (res.confirm) {
  1308. console.log('用户点击确定');
  1309. _this.gotoUrl("pages/user/finance/recharge?recordId=" + recordId);
  1310. } else if (res.cancel) {
  1311. _this.checkedChange2(0);
  1312. console.log('用户点击取消');
  1313. }
  1314. }
  1315. })
  1316. uni.hideLoading()
  1317. }else{
  1318. this.gotoUrl("pages/searchPile/chargeProcess/dcCharging?id=" + res.data.recordId);
  1319. }
  1320. }).catch(error => {
  1321. uni.hideLoading()
  1322. if (error == '用户账户余额不足!') {
  1323. var _this=this;
  1324. uni.showModal({
  1325. title: '快捷充电失败',
  1326. confirmText:"充值",
  1327. content:"用户余额不足!",
  1328. success: function (res) {
  1329. if (res.confirm) {
  1330. console.log('用户点击确定');
  1331. _this.showrecharge=true
  1332. } else if (res.cancel) {
  1333. console.log('用户点击取消');
  1334. }
  1335. }
  1336. })
  1337. } else {
  1338. uni.showModal({
  1339. title: '提示',
  1340. showCancel:false,
  1341. content:"充电失败:"+( error?error:'未知错误')
  1342. })
  1343. }
  1344. })
  1345. }
  1346. },
  1347. }
  1348. </script>
  1349. <style lang="scss">
  1350. .priceListBlMain {
  1351. display: flex;
  1352. justify-content: space-between;
  1353. align-items: last baseline;
  1354. }
  1355. .discount-card {
  1356. box-shadow: 0px 0px 8px 0px rgba(0, 65, 30, 0.1);
  1357. border: 1px solid rgba(225, 236, 231, 1);
  1358. border-radius: 8px;
  1359. //background-color: rgba(55, 59, 80, 1);
  1360. padding: 24rpx;
  1361. margin-top: 24rpx;
  1362. .name {
  1363. //color: rgba(255, 255, 255, 1);
  1364. font-size: 32rpx;
  1365. }
  1366. .progress {
  1367. display: flex;
  1368. justify-content: space-between;
  1369. flex-wrap: wrap;
  1370. // color: rgba(219, 219, 219, 1);
  1371. font-size: 24rpx;
  1372. margin-bottom: 16rpx;
  1373. margin-top: 24rpx;
  1374. }
  1375. ::v-deep .u-active {
  1376. background: linear-gradient(84.49deg, rgba(59, 182, 254, 1) 4.25%, rgba(0, 185, 98, 1) 95.02%);
  1377. }
  1378. }
  1379. .discount-card-4 {
  1380. background: #da241e !important;
  1381. .unit{
  1382. color:#fff !important;
  1383. }
  1384. .u-progress{
  1385. background-color:#cf4c42 !important;
  1386. color: #fff;
  1387. }
  1388. .name{
  1389. color: #ffd695!important;
  1390. font-size: 36rpx;
  1391. font-family: "SimSun", Arial, sans-serif;
  1392. font-weight: 400;
  1393. text-shadow: 2px 1px 0px #800400 ;
  1394. }
  1395. .progress{
  1396. color: #fff;
  1397. }
  1398. }
  1399. .temporaryCarNum {
  1400. text-align: right;
  1401. margin-bottom: 10px;
  1402. margin: 0 40rpx;
  1403. span {
  1404. margin: 0 8rpx;
  1405. color: #19be6b;
  1406. }
  1407. }
  1408. .oldTextClassF {
  1409. .tips {
  1410. padding: 36rpx;
  1411. .p {
  1412. font-size: 42rpx !important;
  1413. }
  1414. .content {
  1415. font-size: 34rpx !important;
  1416. }
  1417. }
  1418. .bottom {
  1419. .u-btn {
  1420. font-size: 48rpx
  1421. }
  1422. }
  1423. .text-1 {
  1424. font-size: 56rpx !important;
  1425. }
  1426. .text-2 {
  1427. font-size: 38rpx !important;
  1428. }
  1429. .charging-info {
  1430. .name {
  1431. font-size: 36rpx !important;
  1432. .free {
  1433. font-weight: bold;
  1434. font-size: 36rpx !important;
  1435. }
  1436. }
  1437. .address {
  1438. font-size: 44rpx;
  1439. font-weight: bold;
  1440. }
  1441. .price {
  1442. font-weight: bold;
  1443. font-size: 60rpx !important;
  1444. .unit {
  1445. font-weight: normal;
  1446. font-size: 36rpx !important;
  1447. }
  1448. }
  1449. }
  1450. }
  1451. page {
  1452. background-color: #F6F8F8;
  1453. padding-bottom: 100px;
  1454. }
  1455. .service {
  1456. font-size: 24px;
  1457. color: #101010;
  1458. position: absolute;
  1459. right: 16px;
  1460. }
  1461. .main2 {
  1462. background-color: #fff;
  1463. padding-left: 16px;
  1464. .item {
  1465. border-bottom: 1px solid #e5e7ea;
  1466. padding: 16px 0;
  1467. .title {
  1468. line-height: 16px;
  1469. color: rgba(119, 119, 119, 100);
  1470. font-size: 16px;
  1471. .more {
  1472. font-size: 24px;
  1473. color: #b3b3b3;
  1474. float: right;
  1475. margin-right: 8px;
  1476. }
  1477. }
  1478. .content {
  1479. line-height: 24px;
  1480. color: rgba(16, 16, 16, 100);
  1481. font-size: 16px;
  1482. margin-top: 8px;
  1483. padding-right: 30px;
  1484. }
  1485. }
  1486. }
  1487. .main {
  1488. padding: 40rpx 40rpx 24rpx 40rpx;
  1489. background-image: linear-gradient(#D6EEDC, #F6F8F8);
  1490. .text-1 {
  1491. color: rgba(0, 170, 90, 100);
  1492. font-size: 48rpx;
  1493. line-height: 33px;
  1494. }
  1495. .text-2 {
  1496. color: rgba(102, 102, 102, 100);
  1497. font-size: 32rpx;
  1498. line-height: 22px;
  1499. }
  1500. .charging-info {
  1501. background-color: #fff;
  1502. margin: 20rpx auto;
  1503. border-radius: 12px;
  1504. padding: 20rpx 38rpx;
  1505. .row{
  1506. display: flex;
  1507. justify-content: space-between;
  1508. padding: 5px 0;
  1509. .key{
  1510. color:#777777;
  1511. font-size: 32rpx;
  1512. }
  1513. .value{
  1514. display: flex;
  1515. color: rgba(51, 51, 51, 1);
  1516. font-size: 32rpx;
  1517. }
  1518. }
  1519. .name {
  1520. margin-top: 8rpx;
  1521. color: #777777;
  1522. font-size: 32rpx;
  1523. .free {
  1524. display: inline-block;
  1525. //width: 72px;
  1526. padding:4rpx 24rpx ;
  1527. //height: 20px;
  1528. line-height: 20px;
  1529. border-radius: 50px;
  1530. background-color: rgba(208, 246, 228, 100);
  1531. color: rgba(0, 185, 98, 100);
  1532. font-size: 28rpx;
  1533. text-align: center;
  1534. margin-left: 12px;
  1535. }
  1536. .workStatusText6{
  1537. background-color: rgba(255, 214, 210, 1);
  1538. color: rgba(255, 56, 56, 1);
  1539. }
  1540. }
  1541. .price-3-card-view {
  1542. display: flex;
  1543. align-items: last baseline;
  1544. .price-3-card {
  1545. max-width: 240rpx;
  1546. min-width: 220rpx;
  1547. display: flex;
  1548. background: linear-gradient(93.02deg, rgba(59, 182, 254, 1) 39.4%, rgba(0, 185, 98, 1) 92.96%);
  1549. border-radius: 4px;
  1550. height: 32rpx;
  1551. min-height: 32rpx;
  1552. margin-left: 32rpx;
  1553. // align-items: center;
  1554. line-height: 32rpx;
  1555. .num1 {
  1556. img {
  1557. // width: 88rpx;
  1558. //width: 34px;
  1559. height: 32rpx;
  1560. }
  1561. ::v-deep .u-image {
  1562. min-height: 32rpx;
  1563. }
  1564. font-size: 22rpx;
  1565. background: rgb(48, 49, 51);
  1566. }
  1567. .num {
  1568. padding: 0 6rpx 0 6rpx;
  1569. color: rgba(255, 255, 255, 1);
  1570. font-size: 22rpx;
  1571. display: flex;
  1572. align-items: center;
  1573. }
  1574. }
  1575. .price-3-card-yue{
  1576. background: linear-gradient(88.81deg, rgba(219,199,167,1) 1.89%,rgba(194,154,93,1) 98%);
  1577. }
  1578. }
  1579. .price-2 {
  1580. display: flex;
  1581. align-items: baseline;
  1582. .price-4 {
  1583. color: rgba(0, 185, 98, 100);
  1584. font-size: 56rpx;
  1585. margin-top: 0rpx;
  1586. display: flex;
  1587. align-items: baseline;
  1588. .unit {
  1589. font-size: 32rpx;
  1590. color: #666666;
  1591. margin-left: 4px;
  1592. }
  1593. }
  1594. .price-3 {
  1595. font-size: 24rpx;
  1596. color: #fff;
  1597. margin-left: 8rpx;
  1598. padding-right: 9rpx;
  1599. background: #00B962;
  1600. border-radius: 8rpx;
  1601. .num1 {
  1602. padding-left: 12rpx;
  1603. border-radius: 8rpx 0 8rpx 8rpx;
  1604. padding-right: 18rpx;
  1605. background: #121212;
  1606. -webkit-clip-path: polygon(0 0, 93% 0, 84% 100%, 0% 100%);
  1607. clip-path: polygon(0 0, 93% 0, 84% 100%, 0% 100%);
  1608. }
  1609. }
  1610. }
  1611. .price {
  1612. color: rgba(0, 185, 98, 100);
  1613. //font-size: 56rpx;
  1614. margin: 8rpx 0;
  1615. .span {
  1616. font-size: 56rpx;
  1617. }
  1618. .unit {
  1619. font-size: 32rpx;
  1620. color: #666666;
  1621. margin-left: 4px;
  1622. }
  1623. }
  1624. .address {
  1625. color: #333333;
  1626. font-size: 40rpx;
  1627. .explain {
  1628. line-height: 22px;
  1629. color: rgba(22, 119, 255, 100);
  1630. font-size: 32rpx;
  1631. float: right;
  1632. }
  1633. }
  1634. }
  1635. }
  1636. .main-head {
  1637. display: flex;
  1638. justify-content: space-between;
  1639. }
  1640. .charge-img {
  1641. width: 80px;
  1642. overflow: hidden;
  1643. height: 80px;
  1644. // margin-right: 16rpx;
  1645. img {
  1646. width: 100%;
  1647. }
  1648. }
  1649. .cost-explainMain{
  1650. margin: 24rpx 40rpx 24rpx 40rpx;
  1651. padding: 30rpx 40rpx;
  1652. background-color: #fff;
  1653. // background-color: #fff;
  1654. // margin: 0 40rpx;
  1655. border-radius: 12px;
  1656. // padding: 38rpx 40rpx;
  1657. // display: flex;
  1658. font-size: 36rpx;
  1659. // 费用说明
  1660. .cost-explain {
  1661. margin-bottom: 12rpx;
  1662. border-radius: 12px;
  1663. display: flex;
  1664. justify-content: space-between;
  1665. align-items: center;
  1666. .car-number {
  1667. display: flex;
  1668. font-size: 32rpx;
  1669. }
  1670. img {
  1671. vertical-align: middle;
  1672. }
  1673. .text {
  1674. font-size: 36rpx;
  1675. color: #101010;
  1676. //width: 330rpx;
  1677. white-space: pre;
  1678. }
  1679. .iconfont {
  1680. color: #b3b3b3;
  1681. font-size: 48rpx
  1682. }
  1683. }
  1684. .cost-explain2{
  1685. .car-number{
  1686. font-size: 28rpx;
  1687. color: #FF3D00;
  1688. }
  1689. }
  1690. }
  1691. .tips {
  1692. background-color: #fff;
  1693. padding: 40rpx;
  1694. margin: 8rpx 40rpx 0 40rpx;
  1695. border-radius: 12px;
  1696. .p {
  1697. line-height: 25px;
  1698. color: #333333;
  1699. font-size: 32rpx;
  1700. font-weight: 550;
  1701. }
  1702. .content {
  1703. margin-top: 16rpx;
  1704. line-height: 22px;
  1705. color: #666666;
  1706. font-size: 28rpx;
  1707. }
  1708. }
  1709. .bottom {
  1710. width: 100%;
  1711. padding: 28rpx 0;
  1712. .u-btn {
  1713. margin: 0 40rpx;
  1714. line-height: 88rpx;
  1715. height: 88rpx;
  1716. font-size: 40rpx
  1717. }
  1718. }
  1719. ::v-deep .u-alert-desc {
  1720. color: rgba(255, 115, 0, 100);
  1721. font-size: 16px
  1722. }
  1723. // 入场车辆
  1724. .carp {
  1725. margin: 0 40rpx;
  1726. }
  1727. .carImg {
  1728. margin: 0 40rpx;
  1729. img {
  1730. width: 100%;
  1731. }
  1732. }
  1733. .carImg3 {
  1734. margin: 0 40rpx;
  1735. background: linear-gradient(32.4deg, rgba(59,182,254,1) 20.49%,rgba(0,185,98,1) 118.87%);
  1736. border-radius: 8px;
  1737. }
  1738. .carImg3-yue {
  1739. margin: 0 40rpx;
  1740. background: linear-gradient(88.81deg, rgba(219,199,167,1) 1.89%,rgba(194,154,93,1) 98%);
  1741. border-radius: 8px;
  1742. }
  1743. .carImg2-yue {
  1744. line-height: 20px;
  1745. color: rgba(255, 255, 255, 1);
  1746. font-size: 32rpx;
  1747. padding:40rpx;
  1748. //background: linear-gradient(88.81deg, rgba(219,199,167,1) 1.89%,rgba(194,154,93,1) 98%);
  1749. background: url('@/assets/img/9-4/antFill-crown.svg');
  1750. background-repeat: repeat-y;
  1751. background-position-x: 440rpx;
  1752. .carImg-2{
  1753. span{
  1754. font-size: 48rpx;
  1755. color:red;
  1756. margin: 0 4rpx;
  1757. font-weight: bold;
  1758. padding:0rpx 4rpx;
  1759. }
  1760. }
  1761. .carImg-3{
  1762. margin-top:8rpx ;
  1763. span{
  1764. padding:8rpx 16rpx;
  1765. border-radius: 12px;
  1766. background-color: rgba(255, 255, 255, 1);
  1767. text-align: center;
  1768. color: #795626 ;
  1769. font-size: 12px;
  1770. }
  1771. }
  1772. }
  1773. .carImg2 {
  1774. line-height: 20px;
  1775. color: rgba(255, 255, 255, 1);
  1776. font-size: 32rpx;
  1777. padding:40rpx;
  1778. background: url('@/assets/img/9-4/6show.png');
  1779. background-repeat: repeat-y;
  1780. background-position-x: 440rpx;
  1781. .carImg-2{
  1782. span{
  1783. font-size: 48rpx;
  1784. color:red;
  1785. margin: 0 4rpx;
  1786. font-weight: bold;
  1787. padding:0rpx 4rpx;
  1788. }
  1789. }
  1790. .carImg-3{
  1791. margin-top:8rpx ;
  1792. span{
  1793. padding:8rpx 16rpx;
  1794. border-radius: 12px;
  1795. background-color: rgba(255, 255, 255, 1);
  1796. text-align: center;
  1797. color: rgba(0, 130, 69, 1);
  1798. font-size: 12px;
  1799. }
  1800. }
  1801. }
  1802. .showOss2 {
  1803. ::v-deep .u-model,
  1804. ::v-deep .u-mode-center-box {
  1805. background-color: transparent;
  1806. }
  1807. }
  1808. .classtable {
  1809. margin: 0rpx 40rpx;
  1810. .td1 {
  1811. width: 50rpx;
  1812. padding: 12rpx 0;
  1813. text-align: center;
  1814. img {
  1815. width: 48rpx;
  1816. height: 48rpx;
  1817. }
  1818. font-size: 10px;
  1819. }
  1820. .td2 {
  1821. padding-left: 16rpx;
  1822. font-size: 12px;
  1823. line-height: 24px;
  1824. .dian {
  1825. padding: 0 10rpx
  1826. }
  1827. }
  1828. }
  1829. .btnview {
  1830. display: flex;
  1831. flex-direction: column;
  1832. align-items: center;
  1833. .btnview1 {}
  1834. .btnview2 {
  1835. color: #999999;
  1836. margin-top: 20rpx;
  1837. padding-bottom: 48rpx;
  1838. }
  1839. }
  1840. .sign-6 {
  1841. //background: linear-gradient(89.4deg, rgba(255,61,0,1) 2.8%,rgba(255,134,0,1) 98.02%);
  1842. background: linear-gradient(89.4deg, rgba(0, 164, 87, 1) 2.8%, rgba(0, 206, 141, 1) 98.02%);
  1843. color: rgba(255, 255, 255, 1);
  1844. padding: 0 10rpx;
  1845. }
  1846. .chat_hhh_time {
  1847. display: flex;
  1848. justify-content: space-between;
  1849. }
  1850. .chat_hhh {
  1851. .chatShow {
  1852. .showspan{
  1853. float: right;
  1854. color: #00b962;
  1855. }
  1856. margin-bottom: 280rpx;
  1857. //height: 160px;
  1858. visibility: hidden;
  1859. // width: 120px;
  1860. padding: 4rpx 16rpx;
  1861. text-align: initial;
  1862. /* 定位 */
  1863. position: absolute;
  1864. z-index: 1;
  1865. padding: 4rpx 16rpx;
  1866. background-color: #fff;
  1867. color: rgba(102, 102, 102, 1);
  1868. border-radius: 3px;
  1869. font-size: 24rpx;
  1870. box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.2);
  1871. }
  1872. .chatShowA {
  1873. margin-left: -60rpx;
  1874. }
  1875. .chatShowB {
  1876. margin-left: -160rpx;
  1877. }
  1878. .chatShowNo {
  1879. visibility: hidden;
  1880. }
  1881. .chatShowOk {
  1882. visibility: visible;
  1883. }
  1884. background: #f9f9f9;
  1885. text-align: center;
  1886. min-height: 160px;
  1887. display: flex;
  1888. font-size: 20rpx;
  1889. .current1 {
  1890. .chats2 {
  1891. //border: 1px solid red;
  1892. }
  1893. }
  1894. .current2 {
  1895. .chats1 {
  1896. border: 1px solid #333333;
  1897. border-bottom: 0px;
  1898. }
  1899. .chats2 {
  1900. border: 1px solid #333333;
  1901. background: #26FF6B !important;
  1902. border-top: 0px;
  1903. }
  1904. }
  1905. .chatTime {
  1906. min-width: 68rpx;
  1907. display: flex;
  1908. flex-direction: column;
  1909. justify-content: flex-end;
  1910. border: 1px solid #f9f9f9;
  1911. .chats0 {
  1912. // background-color: #ff8b17;
  1913. // color: #ffecdd;
  1914. display: flex;
  1915. justify-content: center;
  1916. flex-wrap: wrap;
  1917. flex-direction: column;
  1918. }
  1919. .chats9 {
  1920. opacity: 0;
  1921. display: flex;
  1922. justify-content: center;
  1923. flex-wrap: wrap;
  1924. flex-direction: column;
  1925. }
  1926. .chats1 {
  1927. background: #dcdcdc;
  1928. min-height: 30rpx
  1929. }
  1930. .chats2 {
  1931. background: #80e0a6;
  1932. display: flex;
  1933. flex-direction: column;
  1934. justify-content: space-between;
  1935. }
  1936. }
  1937. }
  1938. .quickMain{
  1939. ::v-deep .u-mode-center-box{
  1940. background-color: transparent;
  1941. }
  1942. ::v-deep .u-model{
  1943. background-color: transparent;
  1944. }
  1945. .quickMain-slot-content{
  1946. .quickMain-img{
  1947. position: relative;
  1948. top: 120rpx;
  1949. text-align: center;
  1950. img{
  1951. width: 160rpx;
  1952. height: 240rpx;
  1953. }
  1954. }
  1955. .quickMain-bodyMain{
  1956. background-color:#fff;
  1957. border-radius: 15px;
  1958. }
  1959. .quickMain-body{
  1960. margin:0 56rpx ;
  1961. color: rgba(51, 51, 51, 1);
  1962. .quickMain-text1{
  1963. font-size: 48rpx;
  1964. text-align: center;
  1965. padding: 132rpx 0 32rpx 0;
  1966. }
  1967. .quickMain-text2{
  1968. margin-bottom: 20rpx ;
  1969. //color: rgba(51, 51, 51, 1);
  1970. font-size: 32rpx;
  1971. img{
  1972. width: 40rpx;
  1973. //height: 120px;
  1974. }
  1975. }
  1976. }
  1977. }
  1978. }
  1979. .slogan-4 {
  1980. z-index: 2;
  1981. margin-top: 10px;
  1982. display: flex;
  1983. justify-content: center;
  1984. /* text-decoration: underline; */
  1985. text-align: center;
  1986. position: fixed;
  1987. /* top: 40px; */
  1988. bottom: 180px;
  1989. right: 20px;
  1990. height: 80rpx;
  1991. width: 80rpx;
  1992. line-height: 20px;
  1993. font-size: 16px;
  1994. background: linear-gradient(95deg, #FF9800, #FF5722);
  1995. box-shadow: 0 4rpx 24rpx 0 #FF5722;
  1996. //padding-top: 8px;
  1997. color: #fff;
  1998. border-radius: 25px;
  1999. }
  2000. .imageshake {
  2001. position: relative;
  2002. animation: shake 0.5s ease-in-out infinite;
  2003. }
  2004. @keyframes shake {
  2005. 0% {
  2006. transform: rotate(0deg);
  2007. }
  2008. 25% {
  2009. transform: rotate(8deg);
  2010. }
  2011. 50% {
  2012. transform: rotate(0deg);
  2013. }
  2014. 75% {
  2015. transform: rotate(-8deg);
  2016. }
  2017. 100% {
  2018. transform: rotate(0deg);
  2019. }
  2020. }
  2021. .showOssK {
  2022. ::v-deep .u-model,
  2023. ::v-deep .u-mode-center-box {
  2024. background-color: transparent;
  2025. }
  2026. }
  2027. // .showOss {
  2028. // ::v-deep .u-model,
  2029. // ::v-deep .u-mode-center-box {
  2030. // background-color: transparent;
  2031. // }
  2032. // }
  2033. .swiper {
  2034. height: 700rpx;
  2035. .swiperitem {
  2036. height: 700rpx;
  2037. }
  2038. }
  2039. .useFreeCoupon{
  2040. font-size: 24rpx;
  2041. color:#FF3D00;
  2042. }
  2043. .sign {
  2044. display: flex;
  2045. flex-wrap: wrap;
  2046. margin-top: 10px;
  2047. .sign-tag {
  2048. height: 36rpx;
  2049. line-height: 32rpx;
  2050. border-radius: 8rpx;
  2051. //background-color: rgba(255, 255, 255, 100);
  2052. //color: rgba(255, 139, 0, 100);
  2053. font-size: 10px;
  2054. text-align: center;
  2055. //border: 1px solid rgba(255, 139, 0, 100);
  2056. padding: 0 8rpx;
  2057. margin-right: 8rpx;
  2058. margin-bottom: 8rpx;
  2059. }
  2060. .sign-0 {
  2061. background: linear-gradient(89.4deg, rgba(129, 97, 255, 1) 2.8%, rgba(169, 147, 255, 1) 98.02%);
  2062. color: rgba(255, 255, 255, 1);
  2063. //padding: 0 10rpx;
  2064. //border: 1px solid rgba(255, 139, 0, 100);
  2065. }
  2066. .sign-5 {
  2067. background: linear-gradient(89.4deg, rgba(255, 61, 0, 1) 2.8%, rgba(255, 134, 0, 1) 98.02%);
  2068. color: rgba(255, 255, 255, 1);
  2069. //padding: 0 10rpx;
  2070. }
  2071. .sign-1 {
  2072. background-color: rgba(255, 255, 255, 100);
  2073. color: rgba(255, 139, 0, 100);
  2074. border: 1px solid rgba(255, 139, 0, 100);
  2075. }
  2076. .sign-2 {
  2077. background-color: rgba(255, 255, 255, 100);
  2078. color: rgba(153, 153, 153, 100);
  2079. border: 1px solid rgba(204, 204, 204, 100);
  2080. }
  2081. .sign-3 {
  2082. background-color: rgba(255, 255, 255, 100);
  2083. color: #8161FF;
  2084. border: 1px solid #8161FF;
  2085. }
  2086. .sign-4 {
  2087. background-color: rgba(255, 255, 255, 100);
  2088. color: #00B962;
  2089. border: 1px solid #00B962;
  2090. }
  2091. }
  2092. </style>