index.vue 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102
  1. <template>
  2. <view>
  3. <ujp-navbar title="折扣卡购买" :show="false"></ujp-navbar>
  4. <!-- 头部图片 -->
  5. <view class="background">
  6. <!-- 新闻 -->
  7. <view class=" options-item" v-show="flag&&newsList.length > 0" >
  8. <!-- ////@click="toNewsArticleDetails" -->
  9. <ujp-notice-bar
  10. @click="toNewsArticleDetails"
  11. color="#FF3D00" bg-color="#fff"
  12. :list="newsList"></ujp-notice-bar>
  13. </view>
  14. <view class="u-navbar-placeholder" style="width: 100%; height: 64rpx;"></view>
  15. <view class="banner">
  16. <u-swiper bg-color="#fff" :img-mode="'scaleToFill'" :list="bannerList"
  17. @click="clickBanner" :name="'picUrl'">
  18. </u-swiper>
  19. </view>
  20. <!-- 选项列表 -->
  21. <view class="option-list" v-if="false">
  22. <view class="list-item" @click="getScanCode">
  23. <view class="icon iconfont" style="background: linear-gradient(45deg,#00B962,#5FE4A6);">
  24. &#xe61a;
  25. </view>
  26. <view class="text oldTextjp2" oldstyle="font-size: 18px;">
  27. 扫码充电
  28. </view>
  29. </view>
  30. <view class="list-item" @click="fastRecharge">
  31. <view class="icon iconfont" style="background: linear-gradient(45deg,#23AD9B,#4BD2C0);">
  32. &#xe629;
  33. </view>
  34. <view class="text oldTextjp2" oldstyle="font-size: 18px;">
  35. 快速充值
  36. </view>
  37. </view>
  38. <view class="list-item" @click="chargingRecord">
  39. <view class="icon iconfont" style="background: linear-gradient(45deg,#407DE4,#6FA5FF );">
  40. &#xe625;
  41. </view>
  42. <view class="text oldTextjp2" oldstyle="font-size: 18px;">
  43. 充电记录
  44. </view>
  45. </view>
  46. <view class="list-item" @click="toSearchPile">
  47. <view class="icon iconfont" style="background: linear-gradient(45deg,#6366FF,#9D9FFF);">
  48. &#xe622;
  49. </view>
  50. <view class="text oldTextjp2" oldstyle="font-size: 18px;">
  51. 附近站点
  52. </view>
  53. </view>
  54. </view>
  55. <!-- 充值活动 -->
  56. <view class=" top-up" v-if="activityList.length > 0 && !activityListShow">
  57. <view class="card-box">
  58. <view class="card" v-for="(item,index) in activityList" :key="item.id"
  59. @click="rechargeActivity(item)">
  60. <img :src="item.picUrl" alt="">
  61. </view>
  62. </view>
  63. </view>
  64. <u-modal v-model="showOss" class="showOss" :show-title="false" :show-confirm-button="false">
  65. <view class="slot-content">
  66. <u-image width="250px" style="margin: auto;min-height: 250px;" mode="widthFix"
  67. @click="clickBanner(showOssIndex,true)" :src="showOssImg">
  68. <view slot="loading" style="height: 200px;">
  69. <u-loading mode="flower" size="186">
  70. </u-loading>
  71. </view>
  72. </u-image>
  73. <u-image width="36px" style="margin: auto;" mode="widthFix" @click="showOss=false"
  74. src="../../assets/img/if-close-line-circled.png"></u-image>
  75. </view>
  76. </u-modal>
  77. <!-- 专享优惠券 -->
  78. <!--
  79. <view class="couponmain" v-if="false&&bannerListTop[showTopIndex].topmodel=='coupon'">
  80. <view class="main">
  81. <view class="exclusive">
  82. <p class="exclusive1">恭喜你</p>
  83. <p class="exclusive2">获得{{bannerListTop[showTopIndex].value}}元月卡卷</p>
  84. <view class="img">
  85. <img src="../../assets/img/Frame915.png" alt="">
  86. <view class="num">
  87. {{bannerListTop[showTopIndex].value}}<span class="unit">元</span>
  88. </view>
  89. <view class="unit2">月卡优惠券</view>
  90. <view class="ticket-info">
  91. <view class="ticket-name">
  92. {{bannerListTop[showTopIndex].text}}
  93. </view>
  94. </view>
  95. </view>
  96. <view class="exclusive-text"> 持月卡在指定站点充电,充电服务费全免</view>
  97. <button class="exclusive-btn" @click="clickBannerTop()" shape="circle">立即开通</button>
  98. </view>
  99. </view>
  100. </view> -->
  101. <u-modal v-model="showTop" v-if="getBannerInfoTopBl" class="showOss" :show-title="false" :show-confirm-button="false">
  102. <view class="slot-content" >
  103. <swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="2500"
  104. :duration="500">
  105. <swiper-item class="swiperitem" v-if="showNt">
  106. <u-image width="600" style="margin: auto;min-height: 250px;" mode="widthFix" v-show="showNtStep==0"
  107. src="@/assets/img/nt/f5surprised-1.png">
  108. <view slot="loading" style="height: 200px;">
  109. <u-loading mode="flower" size="186">
  110. </u-loading>
  111. </view>
  112. </u-image>
  113. <view style="color: #ecc07d;
  114. font-size: 64rpx;
  115. position: relative;
  116. top: -220rpx;
  117. right: -100rpx; width: 400rpx;" @click="showNtStepClick" v-show="showNtStep==0">
  118. <span>.</span>
  119. </view>
  120. <u-image width="600" height="700" style="margin: auto;;min-height: 250px;" mode="scaleToFill"
  121. v-show="showNtStep==1" src="@/assets/img/nt/f5surprised-2.png">
  122. </u-image>
  123. <u-image width="600" style="margin: auto;min-height: 250px;" mode="widthFix"
  124. v-show="showNtStep==2" src="@/assets/img/nt/nt-activity-3.png">
  125. </u-image>
  126. <u-image width="500" style="color: #FFFFFF;
  127. font-size: 64rpx;
  128. position: relative;
  129. top: -540rpx;
  130. right: -60rpx;height: 0;
  131. " mode="widthFix" v-show="showNtStep==2" src="@/assets/img/nt/f5surprised-3.png">
  132. </u-image>
  133. <view style="color: #ecc07d;
  134. font-size: 72rpx;
  135. position: relative;
  136. top: -180rpx;
  137. right: -144rpx; width: 310rpx;" @click="showNtStepClick" v-show="showNtStep==2">
  138. <span>.</span>
  139. </view>
  140. <view style="color: #FFFFFF;
  141. font-size: 64rpx;
  142. position: relative;
  143. top: -528rpx;
  144. right: -80rpx;" :style="{
  145. right:showNtValue>99?'-80rpx':(showNtValue>9?'-95rpx':'-110rpx')
  146. }" v-show="showNtStep==1"><b>{{showNtValue}}</b>
  147. <span style="font-size: 28rpx;">元</span>
  148. </view>
  149. <view style="color: #ecc07d;
  150. font-size: 72rpx;
  151. position: relative;
  152. top: -270rpx;
  153. right: -144rpx; width: 310rpx;" @click="showNtStepClick" v-show="showNtStep==1">
  154. <span>.</span>
  155. </view>
  156. </swiper-item>
  157. <swiper-item class="swiperitem" v-for="(item,i) in bannerListTop" :key="i">
  158. <u-image width="500" height="500" bgColor="#ff000000" style="margin: auto;min-height: 250px;"
  159. mode="widthFix" @click="clickBannerTopI(i)" :src="item.picUrl">
  160. <view slot="loading" style="height: 200px;">
  161. <u-loading mode="flower" size="186">
  162. </u-loading>
  163. </view>
  164. </u-image>
  165. </swiper-item>
  166. </swiper>
  167. <u-image width="36px"
  168. style="margin: auto; margin-top: 10px;" mode="widthFix" @click="showTop=false"
  169. src="../../assets/img/if-close-line-circled.png"></u-image>
  170. </view>
  171. </u-modal>
  172. <!-- 模式选择 -->
  173. <u-mask :show="show">
  174. <view class="wrap">
  175. <view class="shema" @tap.stop>
  176. <view class="title">
  177. 设置浏览模式
  178. </view>
  179. <view class="">
  180. <u-radio-group v-model="value">
  181. <u-radio v-for="(item, index) in list" :key="index" :name="item.name"
  182. :disabled="item.disabled" active-color="#00B962">
  183. {{item.name}}
  184. <p v-if="item.name == '长辈模式'">字体更大 看的清楚</p>
  185. <p v-if="item.name == '标准模式'">信息丰富 功能全面</p>
  186. </u-radio>
  187. </u-radio-group>
  188. </view>
  189. <view class="hint">可在 {{""}}我的-设置 {{""}}页面中切换</view>
  190. <view class="btn-box">
  191. <u-button class="choice-btn" type="success" shape="circle"
  192. @click="elderClick">我选好了</u-button>
  193. </view>
  194. </view>
  195. </view>
  196. </u-mask>
  197. <!-- <view class="top-up-title oldTextjp" oldstyle="font-size:20px;"><text class="line"></text>最新活动</view>
  198. <view class="img-box">
  199. <view class="img-1" v-for="(item,index) in activityList" :key="item.id"
  200. @click="rechargeActivity(item)">
  201. <img :src="item.picUrl" alt="">
  202. </view>
  203. </view> -->
  204. </view>
  205. <!-- 最新活动 -->
  206. <view class=" top-up" v-if="activityList.length > 0 && activityListShow">
  207. <view class="top-up-title oldTextjp" oldstyle="font-size:20px;"><text class="line"></text>最新活动</view>
  208. <view class="img-box2">
  209. <view class="left-image" :style="{backgroundImage: 'url(' + activityDateList.picUrl + ')'}"
  210. @click="rechargeActivity(activityDateList)">
  211. <p>{{activityDateList.name}}</p>
  212. <view class="time-activities">
  213. 距活动结束仅剩 <text class="time">{{description}}</text>
  214. </view>
  215. </view>
  216. <view class="right-image">
  217. <img class="margin-bottom" v-for="(item,index) in activityList" :key="item.id"
  218. @click="rechargeActivity(item)" :src="item.narrowUrl" alt="">
  219. <!-- <img class="margin-bottom" src="../../assets/img/topup2.png" alt="" @click="rechargeActivity(0)">
  220. <img class="margin-bottom" src="../../assets/img/topup3.png" alt="" @click="rechargeActivity(1)"> -->
  221. </view>
  222. </view>
  223. </view>
  224. <template v-if="message == 'getLocation:ok' && stationList.length != 0 && chargeList.length == 0">
  225. <view class=" top-up">
  226. <view class="top-up-title oldTextjp" oldstyle="font-size:20px;"><text class="line"></text>附近站点
  227. <view class="pack-up" v-show="!listShow" @click="listShow=true">
  228. 收起<text class="iconfont">&#xe607;</text>
  229. </view>
  230. <view class="pack-up" v-if="listShow" @click="listShow=false">
  231. 展开<text class="iconfont">&#xe62c;</text>
  232. </view>
  233. </view>
  234. </view>
  235. <!-- 附近站点 -->
  236. <template v-for="(stationData,i) in stationList" >
  237. <view class="station" :key="i+'abc'" v-show="!listShow||i==0"
  238. @click="gotoUrl('pages/searchPile/stationAndPile/stationDetails?id=' + stationData.id)">
  239. <view class="head">
  240. <view class="title oldTextjp" oldstyle="font-size: 20px;">
  241. {{stationData.name}}
  242. </view>
  243. <view class="distance ">
  244. <text class="iconfont"
  245. style="color:#666666">&#xe615;</text>{{stationData.distance!=null&&stationData.distance>0.1 ? stationData.distance.toFixed(1)+'公里':'小于100米'}}
  246. </view>
  247. </view>
  248. <view class="sign" v-if="stationData.stationType==50">
  249. <view class="sign-tag sign-0" v-if="stationData.isRecommend">推荐</view>
  250. <view class="sign-tag sign-5" v-if="stationData.isAlways">常用</view>
  251. <view class="sign-tag sign-6" v-if="stationData.isSpecial">特价</view>
  252. {{stationData.address}}
  253. </view>
  254. <view class="sign" v-else>
  255. <view class="sign-tag sign-0" v-if="stationData.isRecommend">推荐</view>
  256. <view class="sign-tag sign-5" v-if="stationData.isAlways">常用</view>
  257. <view class="sign-tag sign-6" v-if="stationData.isSpecial">特价</view>
  258. <!-- -->
  259. <view class="sign-1"
  260. v-if="stationData.giveDiscount&&stationData.discountRatio&&stationData.discountRatio!=100">
  261. 会员{{discountRatio10(stationData.discountRatio)}}折</view>
  262. <view class="sign-3" v-if="stationData.category=='超充'">160kW超充站</view>
  263. <view class="sign-4"
  264. v-if="stationData.nightLowPriceEnabled">
  265. 夜间超低价</view>
  266. <view class="sign-2" v-if="stationData.platformType==1">自营站</view>
  267. <view class="sign-2" v-if="stationData.tagList.length != 0"
  268. v-for="(tagName,tagIndex) in stationData.tagList" :key="tagIndex">{{tagName}}</view>
  269. </view>
  270. <view class="price-free oldTextClass">
  271. <view class="price" v-if="personInfo&&personInfo.userType==2">
  272. <view class="price-1">
  273. <text class="num">
  274. {{!stationData.giveDiscount ? (stationData.electricityPrice+stationData.servicePrice).toFixed(2)
  275. : (stationData.electricityPrice+stationData.discountServicePrice).toFixed(2)}}</text>
  276. <text class="unit " oldstyle="font-size: 48rpx;">元/度</text>
  277. </view>
  278. <view class="price-2 " oldstyle="font-size: 48rpx;" v-if="stationData.giveDiscount">
  279. <text
  280. class="num">{{(stationData.electricityPrice+stationData.servicePrice).toFixed(2)}}</text>
  281. <text class="unit ">元/度</text>
  282. </view>
  283. </view>
  284. <!-- 游客价格-->
  285. <view class="price" v-else>
  286. <view class="price-1">
  287. <text class="num">
  288. {{(stationData.electricityPrice+stationData.servicePrice).toFixed(2)}}</text>
  289. <text class="unit " oldstyle="font-size: 48rpx;">元/度</text>
  290. </view>
  291. <view class="price-3 " oldstyle="font-size: 48rpx;" v-if="stationData.giveDiscount">
  292. <text class="num1">会员</text>
  293. <text class="num">{{ (stationData.electricityPrice+stationData.discountServicePrice).toFixed(2)}}</text>
  294. <text class="unit ">元/度</text>
  295. </view>
  296. </view>
  297. <view class="free">
  298. <view class="fast" v-if="stationData.fastNum">
  299. <view class="fast-font">
  300. </view>
  301. <view class="num">
  302. {{stationData.fastAvailableNum}}
  303. </view>
  304. <view class="num1">
  305. /{{stationData.fastNum}}
  306. </view>
  307. </view>
  308. <view class="slow oldTextjp2" oldstyle="margin-left: 1px;" v-if="stationData.slowNum">
  309. <view class="slow-font">
  310. </view>
  311. <view class="num">
  312. {{stationData.slowAvailableNum}}
  313. </view>
  314. <view class="num1">
  315. /{{stationData.slowNum}}
  316. </view>
  317. </view>
  318. </view>
  319. </view>
  320. </view>
  321. <view class="piccBanner" v-for="(itemJNT,index ) in bannerListJNT"
  322. @click="gotoUrl2(itemJNT.linkUrl)" :key="i+'_'+index" style="
  323. text-align: center;
  324. padding: 4px 16px;
  325. margin-top: 8px; " v-show="index==0"
  326. v-if="(stationList.length<=2&&stationList.length-1==i)||(stationList.length>2&&i==1)">
  327. <image :src="itemJNT.picUrl" style="height: 204rpx;width: 100%;" ></image>
  328. </view>
  329. </template>
  330. <view class="bottom" @click="searchStationData(true)" v-if="recordsTotal2!=stationList.length">
  331. <view class="bot">
  332. <view class="bot-line"></view>
  333. <view class="bot-text " style="color: #00B962;">点击查看更多站点</view>
  334. <view class="bot-line"></view>
  335. </view>
  336. </view>
  337. <view class="bottom" v-else>
  338. <view class="bot">
  339. <view class="bot-line"></view>
  340. <view class="bot-text " style="color: #00B962;">已经到底了</view>
  341. <view class="bot-line"></view>
  342. </view>
  343. </view>
  344. </template>
  345. <template v-if="loading&&message == 'getLocation:ok' && stationList.length == 0 && chargeList.length == 0">
  346. <view class="location-box">
  347. <view class="location">
  348. <view class="location-text">
  349. <view class="text-1 oldTextjp" oldstyle="font-size: 20px;">
  350. {{loading?'查询失败':'加载中'}}
  351. </view>
  352. <view class="text-2 oldTextjp2" oldstyle="font-size: 16px;">
  353. {{loading?'未查询到可用的站点':'正在为你查找附近的站点'}}
  354. </view>
  355. <view class="text-3 oldTextjp2"
  356. v-if="loading"
  357. oldstyle="font-size: 16px;" @click="toSearchPile" >
  358. 去找桩
  359. </view>
  360. </view>
  361. <view class="img-box">
  362. <img src="static/img/暂无网络信号-缺省页 1.png">
  363. </view>
  364. </view>
  365. </view>
  366. </template>
  367. <!-- 定位 -->
  368. <view class="location-box"
  369. v-if="message != 'getLocation:ok' && stationList.length == 0 && chargeList.length == 0">
  370. <view class="location">
  371. <view class="location-text">
  372. <view class="text-1 oldTextjp" oldstyle="font-size: 20px;">
  373. 定位中...
  374. </view>
  375. <view class="text-2 oldTextjp2" oldstyle="font-size: 16px;">
  376. 授权定位后可查询附近充电站
  377. </view>
  378. <view class="text-3 oldTextjp2" oldstyle="font-size: 16px;" @click="getPoint()">
  379. 重新定位
  380. </view>
  381. </view>
  382. <view class="img-box">
  383. <img src="static/img/暂无网络信号-缺省页 1.png">
  384. </view>
  385. </view>
  386. </view>
  387. <!-- 附近站点 -->
  388. <view class="station" v-for="(stationData,i) in defaultStation" :key="i" v-if="stationList.length == 0 && chargeList.length == 0"
  389. @click="gotoUrl('pages/searchPile/stationAndPile/stationDetails?id=' + stationData.id)">
  390. <view class="head">
  391. <view class="title oldTextjp" oldstyle="font-size: 20px;">
  392. {{stationData.name}}
  393. </view>
  394. <view class="distance " v-if="false">
  395. <text class="iconfont"
  396. style="color:#666666">&#xe615;</text>{{stationData.distance!=null&&stationData.distance>0.1 ? stationData.distance.toFixed(1)+'公里':'小于100米'}}
  397. </view>
  398. </view>
  399. <view class="sign" >
  400. <view class="sign-tag sign-0" >推荐</view>
  401. <!-- -->
  402. <view class="sign-1"
  403. v-if="stationData.giveDiscount&&stationData.discountRatio&&stationData.discountRatio!=100">
  404. 会员{{discountRatio10(stationData.discountRatio)}}折</view>
  405. <view class="sign-3" v-if="stationData.category=='超充'">160kW超充站</view>
  406. <view class="sign-4"
  407. v-if="stationData.nightLowPriceEnabled">
  408. 夜间超低价</view>
  409. <view class="sign-2" v-if="stationData.platformType==1">自营站</view>
  410. <view class="sign-2" v-if="stationData.tagList.length != 0"
  411. v-for="(tagName,tagIndex) in stationData.tagList" :key="tagIndex">{{tagName}}</view>
  412. </view>
  413. <view class="price-free oldTextClass">
  414. <view class="price" v-if="personInfo&&personInfo.userType==2">
  415. <view class="price-1 ">
  416. <text class="num">
  417. {{!stationData.giveDiscount ? (stationData.electricityPrice+stationData.servicePrice).toFixed(2)
  418. : (stationData.electricityPrice+stationData.discountServicePrice).toFixed(2)}}</text>
  419. <text class="unit " oldstyle="font-size: 48rpx;">元/度</text>
  420. </view>
  421. <view class="price-2 " oldstyle="font-size: 48rpx;" v-if="stationData.giveDiscount">
  422. <text
  423. class="num">{{(stationData.electricityPrice+stationData.servicePrice).toFixed(2)}}</text>
  424. <text class="unit ">元/度</text>
  425. </view>
  426. </view>
  427. <!-- 游客价格-->
  428. <view class="price" v-else>
  429. <view class="price-1">
  430. <text class="num">
  431. {{(stationData.electricityPrice+stationData.servicePrice).toFixed(2)}}</text>
  432. <text class="unit " oldstyle="font-size: 48rpx;">元/度</text>
  433. </view>
  434. <view class="price-3 " oldstyle="font-size: 48rpx;" v-if="stationData.giveDiscount">
  435. <text class="num1">会员</text>
  436. <text class="num">{{ (stationData.electricityPrice+stationData.discountServicePrice).toFixed(2)}}</text>
  437. <text class="unit ">元/度</text>
  438. </view>
  439. </view>
  440. <view class="free">
  441. <view class="fast" v-if="stationData.fastNum">
  442. <view class="fast-font">
  443. </view>
  444. <view class="num">
  445. {{stationData.fastAvailableNum}}
  446. </view>
  447. <view class="num">
  448. /{{stationData.fastNum}}
  449. </view>
  450. </view>
  451. <view class="slow oldTextjp2" oldstyle="margin-left: 1px;" v-if="stationData.slowNum">
  452. <view class="slow-font">
  453. </view>
  454. <view class="num">
  455. {{stationData.slowAvailableNum}}
  456. </view>
  457. <view class="num1">
  458. /{{stationData.slowNum}}
  459. </view>
  460. </view>
  461. </view>
  462. </view>
  463. </view>
  464. <view class="piccBanner" v-for="(itemJNT,index ) in bannerListJNT"
  465. :key="'a_'+index" v-show="index==0"
  466. v-if="stationList.length == 0 && chargeList.length == 0"
  467. @click="gotoUrl2(itemJNT.linkUrl)" style="
  468. text-align: center;
  469. padding: 4px 16px;
  470. margin-top: 8px; " >
  471. <image :src="itemJNT.picUrl" style="height: 204rpx;width: 100%;" ></image>
  472. </view>
  473. <!-- 新闻 -->
  474. <view class="news-title" v-if="chargeList.length > 0">
  475. <view class="news-title-left oldTextjp" oldstyle="font-size:20px;">
  476. <view class="line" style="margin-top:4px;"></view>充电车辆
  477. <view class="lineBox" v-if="chargeList.length > 1">{{chargeList.length }}</view>
  478. </view>
  479. <view class="more oldTextjp2" oldstyle="font-size:16px;" v-if="chargeList.length > 3" @click="toAll">查看全部
  480. <view class="more-icon iconfont"> &#xe600;</view>
  481. </view>
  482. </view>
  483. <!-- 充电状态 -->
  484. <view class="state1 state" v-if="chargeList.length > 0" v-for="(item,index) in chargeList" v-show="index<3"
  485. :key="item.id" @click="gotoUrl('pages/searchPile/chargeProcess/dcCharging?id=' + item.id)">
  486. <view class="state-text">
  487. <view class="text-1 " oldstyle="font-size: 20px;">
  488. <span v-if="item.carNumber">{{item.carNumber}}</span>
  489. {{item.statusText}}...
  490. </view>
  491. <view v-if="item.status == '0'" class="text-2 " oldstyle="font-size: 16px;">
  492. 启动中
  493. </view>
  494. <view v-if="item.status == '1'" class="text-2 " oldstyle="font-size: 16px;">
  495. 已充
  496. <span
  497. class="text-21">{{item.electricQuantity?(item.electricQuantity/10000).toFixed(1):'0.0'}}度</span>
  498. 合计<span class="text-22">{{item.dueFee != null ? item.dueFee.toFixed(2) : '0.00'}}元</span>
  499. <view style="display: initial;" v-if="item.endSoc">电量<span class="text-21">{{item.endSoc}}%</span>
  500. </view>
  501. </view>
  502. <!-- <view v-if="item.status == '2'" class="text-2" style="color: red;">
  503. 超出时间将收取占位费
  504. </view> -->
  505. <view v-if="item.status == '4'" class="text-2 oldTextjp2" oldstyle="font-size: 16px;">
  506. <span v-if="item.waitNum==1">请耐心等待</span>
  507. <span v-else>前方等待{{item.waitNum-1}}位</span>
  508. </view>
  509. <view class="text-3 " oldstyle="font-size: 16px;">
  510. <p style=" width: 160%;">
  511. {{item.deviceName}}枪{{channelNoShow(item.channelNo,item.manufacturer)}}/{{item.stationName}}<br />当前电价{{item.chargingCostPrice.toFixed(2)}}元/度
  512. </p>
  513. </view>
  514. </view>
  515. <view class="img-box4">
  516. <img v-if="item.status == '0'" src="static/img/等待中-缺省页.png">
  517. <img v-if="item.status == '1'" src="static/img/充电中-缺省页.png">
  518. <img v-if="item.status == '2'" src="static/img/已充满-缺省页.png">
  519. <img v-if="item.status == '4'" src="static/img/等待中-缺省页.png">
  520. <view class="img-view">
  521. <view class="more-icon iconfont">查看 &#xe600;</view>
  522. </view>
  523. </view>
  524. </view>
  525. <view class="bottom" v-if="chargeList.length > 3" @click="toAll()">
  526. <view class="bot">
  527. <view class="bot-line"></view>
  528. <view class="bot-text " style="color: #00B962;">点击查看全部充电车辆</view>
  529. <view class="bot-line"></view>
  530. </view>
  531. </view>
  532. <!-- 新闻 -->
  533. <view id="options-item" class="news-title" v-if="newsList.length > 0" >
  534. <!-- <view class="news-title-left oldTextjp" oldstyle="font-size:20px;">
  535. <view class="line" style="margin-top:4px;"></view>活动公告
  536. </view>
  537. <view class="more oldTextjp2" oldstyle="font-size:16px;" >更多<view
  538. class="more-icon iconfont"> &#xe600;</view>
  539. </view> -->
  540. <ujp-notice-bar
  541. @click="toNewsArticleDetails"
  542. color="#FF3D00" bg-color="#fff"
  543. :list="newsList"></ujp-notice-bar>
  544. </view>
  545. <view class="news-title" >
  546. <view class="news-title-left oldTextjp" oldstyle="font-size:20px;">
  547. <view class="line" style="margin-top:4px;"></view>51商城
  548. </view>
  549. <view class="more oldTextjp2" oldstyle="font-size:16px;" >
  550. 备货中,敬请期待!
  551. </view>
  552. </view>
  553. <view class="shopList" @click="bhz" >
  554. <view class="shopItem" v-for="(item,i) in shopList" :key="i">
  555. <view class="shopItemImg">
  556. <img :src="item.img" >
  557. </view>
  558. <view class="shopItemName" >
  559. <img v-if="item.iszy" style="width:52px; height:16px; vertical-align: middle;" src="@/assets/img/buy/ptzy.png">
  560. {{item.name}}</view>
  561. <view class="shopItemPrice" >
  562. <view class="shopItemPrice1" v-if="personInfo&&personInfo.userType==2&&personInfo.memberLevel&&item.prices" >
  563. <text>¥</text>{{item.prices[personInfo.memberLevel]?item.prices[personInfo.memberLevel]:item.price+"&&"}}</view>
  564. <view class="shopItemPrice1" v-else ><text>¥</text>{{item.price}}</view>
  565. <view class="shopItemPrice2">
  566. <u-icon name="shopping-cart" size="40"></u-icon>
  567. </view>
  568. </view>
  569. </view>
  570. </view>
  571. <view class="shopList" @click="bhz" v-if="false" >
  572. <view class="shopItem" v-for="(item,i) in mallList"
  573. @click="gotoUrl('pages/store/commodityDetails?id='+item.id)"
  574. :key="i">
  575. <view class="shopItemImg">
  576. <img v-if="item.pic" :src="item.pic" alt="">
  577. <img v-else src="@/assets/img/chargesite_default.png" ></img>
  578. </view>
  579. <view class="shopItemNameView" >
  580. <view class="shopItemName" >
  581. <img v-if="item.own" style="width:52px; height:16px; vertical-align: middle;" src="@/assets/img/buy/ptzy.png">
  582. {{item.name}}</view>
  583. <view class="shopItemPrice" >
  584. <view class="shopItemPrice1" >¥{{item.price}}</view>
  585. <view class="shopItemPrice2">
  586. <u-icon name="shopping-cart"></u-icon>
  587. </view>
  588. </view>
  589. </view>
  590. </view>
  591. </view>
  592. <view class="bottom">
  593. <view class="bot">
  594. <view class="bot-line"></view>
  595. <view class="bot-text oldTextjp2" oldstyle="font-size: 14px;">已经到底了</view>
  596. <view class="bot-line"></view>
  597. </view>
  598. </view>
  599. <!-- 导航栏 -->
  600. <view class="navigation">
  601. <view class="login-prompt" v-if="!userId">
  602. 登录显示更多会员服务
  603. <text class="button" @click="toLogin">登录/注册</text>
  604. </view>
  605. </view>
  606. <view class="slogan-4 " v-show="couponList.length||bannerListTop.length"
  607. @click="showTop=true,getBannerInfoTopBl=true">
  608. <u-icon :class="{
  609. imageshake :couponList.length&&showNtStep==0
  610. }"
  611. size="45"
  612. name="gift"></u-icon>
  613. </view>
  614. <Tabbar :current="0" ref="tabbarMain" :elderStatus="elderStatus"></Tabbar>
  615. </view>
  616. </template>
  617. <script>
  618. import * as API from '@/apis/index.js'
  619. import * as newsApi from '@/apis/news.js'
  620. import * as WxJsApi from '@/utils/wxJsApi.js'
  621. import * as siteApi from '@/apis/site.js'
  622. import * as loginApi from '@/apis/login.js'
  623. import * as userApi from '@/apis/user.js'
  624. import * as mallApi from '@/apis/mall.js'
  625. import MapLoader from '@/utils/AMap'
  626. import Tabbar from '@/components/Tabbar.vue'
  627. var img1=require("@/assets/img/shopimg/1.png")
  628. var img2=require("@/assets/img/shopimg/2.png")
  629. var img3=require("@/assets/img/shopimg/3.png")
  630. var img4=require("@/assets/img/shopimg/4.png")
  631. import {
  632. newDate,
  633. currentTimeStamp,
  634. parseUnixTime,
  635. secondsDistance,
  636. hourDistanceArr
  637. } from '@/utils'
  638. export default {
  639. components: {
  640. Tabbar
  641. },
  642. data() {
  643. return {
  644. listShow: false,
  645. stationList: [],
  646. bannerList: [],
  647. bannerListTop: [],
  648. bannerListJNT:[],
  649. timeOut: false,
  650. pointTimeOut: true,
  651. mallList:[],
  652. chargeList: [],
  653. activityList: [],
  654. userId: '',
  655. newsList: [],
  656. pageIndex: 1,
  657. recordsTotal: 0,
  658. longitude: '',
  659. latitude: '',
  660. message: '',
  661. indexLogo: '',
  662. showOss: false,
  663. showOssImg: '',
  664. showOssIndex: '',
  665. loading:false,
  666. showTop: false,
  667. showTopImg: '',
  668. showTopIndex: 0,
  669. getBannerInfoTopBl:true,
  670. newsListData:[],
  671. show: false,
  672. list: [{
  673. name: '长辈模式',
  674. disabled: false
  675. },
  676. {
  677. name: '标准模式',
  678. disabled: false
  679. },
  680. ],
  681. // u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
  682. value: '长辈模式',
  683. elderStatus: false,
  684. fontMode: '',
  685. description: '00:00:00',
  686. activityDate: '',
  687. activityDateList: {},
  688. activityListShow: false,
  689. personInfo: {},
  690. showNt: false,
  691. showNtStep: 0,
  692. showNtValue: 30,
  693. couponList: [],
  694. couponSelect: {},
  695. pageIndex2: 1,
  696. recordsTotal2: 0,
  697. defaultStation:[],
  698. flag:true,
  699. windowHeight:300,
  700. shopList:[
  701. {
  702. iszy:1,
  703. name:"7KW交流充电桩4G共享版",
  704. price:"1488",
  705. prices:["1488","1088","988","888","888"],
  706. img:img1
  707. },{
  708. iszy:1,
  709. name:"7KW交流充电桩即插即充版",
  710. price:"1088",
  711. prices:["1088","888","788","688","688"],
  712. img:img2
  713. },{
  714. name:"联通流量卡99元全国流量套餐卡纯流量",
  715. price:"99",
  716. img:img3
  717. },{
  718. price:"1880",
  719. name:"10通道智能充电桩(4G版)",
  720. img:img4
  721. }]
  722. }
  723. },
  724. onLoad(op) {
  725. if (op.jpcode) {
  726. var k = API.codeOperation(op.jpcode)
  727. if (k) {
  728. uni.navigateTo({
  729. url: k
  730. })
  731. }
  732. }
  733. },
  734. onUnload() {
  735. this.timeOut = false;
  736. this.pointTimeOut = false;
  737. },
  738. onHide() {
  739. this.timeOut = false;
  740. this.pointTimeOut = false;
  741. },
  742. onReachBottom() {
  743. // if (this.newsList.length < this.recordsTotal) {
  744. // this.myLoadmore();
  745. // }
  746. },
  747. onShow() {
  748. if (this.$refs.tabbarMain) {
  749. this.$refs.tabbarMain.setcount(0);
  750. }
  751. if (!this.pointTimeOut) {
  752. this.pointTimeOut = true
  753. this.getPointTimeOut();
  754. }
  755. this.getUserInfo();
  756. },
  757. onReady() {
  758. WxJsApi.getWxConfig(['getLocation', 'addEventListener', 'scanQRCode']).then((res) => {
  759. // //(res)
  760. }).catch(error => {
  761. //(res)
  762. })
  763. this.getBannerInfo("homepage");
  764. this.getBannerInfoTop("home-top");
  765. this.getBannerInfo("JNT","bannerListJNT");
  766. //this.getBannerInfoTop("home-top");
  767. this.getPointTimeOut();
  768. this.getNewsList();
  769. this.getActivityInfoList();
  770. this.getChargingStationDetail()
  771. //this.getMallList()
  772. var _this=this
  773. uni.getSystemInfo({
  774. success: function (res) {
  775. console.log(res.windowHeight)
  776. _this.windowHeight=res.windowHeight
  777. }
  778. });
  779. },
  780. onPageScroll(e) {
  781. this.onPageScrollMethod()
  782. },
  783. updated(){
  784. this.onPageScrollMethod()
  785. },
  786. methods: {
  787. gotoArticleDetails(item){
  788. debugger
  789. if(item.linkType=="2"){
  790. this.gotoUrl2(item.externalUrl)
  791. }else{
  792. this.gotoUrl('pages/article/articleDetails?id=' + item.id)
  793. }
  794. },
  795. getMallList(){
  796. mallApi.mallList({
  797. pageIndex: 1,
  798. pageSize: 4,
  799. }).then((res) => {
  800. this.mallList = res.data.data;
  801. //uni.hideLoading();
  802. }).catch(error => {
  803. uni.showToast({
  804. title: error,
  805. icon: "none"
  806. })
  807. })
  808. },
  809. onPageScrollMethod(){
  810. const query = uni.createSelectorQuery().in(this);
  811. query.select('#options-item').boundingClientRect(data => {
  812. // console.log("节点离页面顶部的距离为" + data.top);
  813. console.log("onPageScrollMethod" );
  814. //console.log(this.windowHeight,e.scrollTop ,data.top)
  815. if(data){
  816. if (this.windowHeight>= data.top+80) {
  817. this.flag =false;
  818. } else {
  819. this.flag = true;
  820. }
  821. }
  822. }).exec();
  823. },
  824. getChargingStationDetail(){
  825. var defaultStation=process.car.defaultStation
  826. for(var item in defaultStation){
  827. siteApi.getChargingStationDetail({
  828. stationId:defaultStation[item]
  829. }).then((res) => {
  830. var station=res.data.station
  831. //this.MapLoaderthen(station)
  832. this.defaultStation.push(station)
  833. }).catch(error => {
  834. uni.showToast({
  835. title: error,
  836. icon: "none"
  837. })
  838. })
  839. }
  840. },
  841. getf5surprised() {
  842. userApi.exchangeGroupDetail("逢5红包").then((res) => {
  843. var message = res.message;
  844. this.couponList = res.data;
  845. if (this.couponList.length) {
  846. var list = res.data;
  847. var x = 0;
  848. for (var i in list) {
  849. var obj = list[i]
  850. if (!obj.probability) {
  851. continue;
  852. }
  853. var end = x + obj.probability;
  854. obj.start = x;
  855. obj.end = end;
  856. x = end;
  857. }
  858. var code = parseInt(Math.random() * x)
  859. // console.log(code)
  860. // console.log(list)
  861. var selectObj = null;
  862. for (var i in list) {
  863. var obj = list[i]
  864. if (!obj.probability) {
  865. continue;
  866. }
  867. if (code >= obj.start && code < obj.end) {
  868. selectObj = obj;
  869. this.couponSelect = selectObj;
  870. break
  871. }
  872. }
  873. if (selectObj) {
  874. this.showNt = true
  875. this.showTop = true;
  876. this.showNtStep = 0;
  877. this.showNtValue = this.couponSelect.totalDiscount
  878. } else {
  879. //this.getBannerInfoTop("home-top");
  880. }
  881. //console.log(selectObj)
  882. // this.exchangeDetailF5(selectObj.key);
  883. } else if (message == '1001') { //
  884. //周五,但是因为手里有卷, 所以不能抽
  885. var nowtime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d}')
  886. var time = this.carhelp.get("getf5surprised-time");
  887. if ((time && nowtime == time)) {
  888. //this.getBannerInfoTop("home-top");
  889. } else {
  890. this.carhelp.set("getf5surprised-time", nowtime);
  891. }
  892. this.showNt = true
  893. this.showTop = true;
  894. this.showNtStep = 2;
  895. } else {
  896. //this.getBannerInfoTop("home-top");
  897. }
  898. }).catch(error => {
  899. uni.showToast({
  900. title: error,
  901. icon: "none"
  902. })
  903. })
  904. },
  905. getNewYear() {
  906. //var obj=this.carhelp.get("newyear_activity2023-2-15")
  907. //
  908. var sz = ["1615623336912621591", "1615623336912621590"];
  909. var code = parseInt(Math.random() * 2)
  910. this.carhelp.set("newyear_activity2023-2-15", {
  911. nt: sz[code],
  912. code: code,
  913. status: 0
  914. })
  915. //先查询另一个领取过没
  916. userApi.exchangeDetail({
  917. key: sz[code == 0 ? 1 : 0]
  918. }).then((res) => {
  919. if (!res.data.enabled) {
  920. if (res.data.code == 2) {
  921. //未开始
  922. } else {
  923. //已经结束
  924. }
  925. //this.getBannerInfoTop("home-top");
  926. } else if (res.data.status == 1) {
  927. //this.getBannerInfoTop("home-top");
  928. //已经兑换,或者不能兑换
  929. } else if (res.data.status == 2) {
  930. // this.showNtValue=res.data.totalDiscount
  931. this.exchangeDetail(sz[code]);
  932. } else {
  933. //res.data.status==0
  934. //this.showNtValue=res.data.totalDiscount
  935. this.exchangeDetail(sz[code], sz[code == 0 ? 1 : 0]);
  936. }
  937. }).catch(error => {
  938. //this.showNt = false;
  939. uni.showToast({
  940. title: error,
  941. icon: "none"
  942. })
  943. })
  944. },
  945. exchangeDetail(exchangeCode, code2) {
  946. uni.showLoading({
  947. title: "加载中",
  948. mask: true,
  949. })
  950. userApi.exchangeDetail({
  951. key: exchangeCode
  952. }).then((res) => {
  953. uni.hideLoading();
  954. //
  955. if (!res.data.enabled) {
  956. if (res.data.code == 2) {
  957. //未开始
  958. } else {
  959. //已经结束
  960. }
  961. //this.getBannerInfoTop("home-top");
  962. } else if (res.data.status == 1) {
  963. //this.getBannerInfoTop("home-top");
  964. //已经兑换,
  965. } else if (res.data.status == 2) {
  966. if (code2) {
  967. //试试另一张卷
  968. var c = this.carhelp.get("newyear_activity2023-2-15")
  969. if (c) {
  970. this.carhelp.set("newyear_activity2023-2-15", {
  971. nt: code2,
  972. code: c.code == 0 ? 1 : 0,
  973. status: 0
  974. })
  975. }
  976. this.exchangeDetail(code2)
  977. } else {
  978. //this.getBannerInfoTop("home-top");
  979. }
  980. //不能兑换
  981. } else {
  982. this.showNt = true
  983. this.showTop = true;
  984. this.showNtStep = 0;
  985. this.showNtValue = res.data.totalDiscount
  986. }
  987. }).catch(error => {
  988. //this.showNt = false;
  989. uni.showToast({
  990. title: error,
  991. icon: "none"
  992. })
  993. })
  994. },
  995. redeemF5(exchangeCode) {
  996. uni.showLoading({
  997. title: "加载中",
  998. mask: true,
  999. })
  1000. userApi.exchangeByGroupFive({
  1001. key: exchangeCode
  1002. }).then((res) => {
  1003. uni.hideLoading();
  1004. this.showNtStep = 1
  1005. var nowtime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d}')
  1006. this.carhelp.set("getf5surprised-time", nowtime);
  1007. }).catch(error => {
  1008. //this.showNt = false;
  1009. uni.showToast({
  1010. title: error,
  1011. icon: "none"
  1012. })
  1013. })
  1014. },
  1015. redeemNow(exchangeCode) {
  1016. uni.showLoading({
  1017. title: "加载中",
  1018. mask: true,
  1019. })
  1020. userApi.exchange({
  1021. key: exchangeCode
  1022. }).then((res) => {
  1023. uni.hideLoading();
  1024. this.showNtStep = 1
  1025. this.carhelp.set("newyear_activity2023-2-15", {
  1026. nt: exchangeCode,
  1027. status: 1
  1028. })
  1029. }).catch(error => {
  1030. //this.showNt = false;
  1031. uni.showToast({
  1032. title: error,
  1033. icon: "none"
  1034. })
  1035. })
  1036. },
  1037. showNtStepClick() {
  1038. if (this.showNtStep == 0) {
  1039. if (this.personInfo.userType == 1) {
  1040. this.showTop = false;
  1041. //this.showNt = false;
  1042. uni.showModal({
  1043. title: "提示",
  1044. content: "游客无法兑换,请先注册为会员后再兑换",
  1045. confirmText: "前往注册",
  1046. success: res1 => {
  1047. if (res1.confirm) {
  1048. uni.navigateTo({
  1049. url: '/pages/login/login'
  1050. })
  1051. } else if (res1.cancel) {
  1052. //('用户点击取消');
  1053. }
  1054. }
  1055. })
  1056. }else if(!this.personInfo.carLicense){
  1057. this.showTop = false;
  1058. uni.showModal({
  1059. title: "提示",
  1060. content: "请先车辆认证后再兑换",
  1061. confirmText: "车辆信息",
  1062. success: res1 => {
  1063. if (res1.confirm) {
  1064. uni.navigateTo({
  1065. url: '/pages/user/car/carDet'
  1066. })
  1067. } else if (res1.cancel) {
  1068. //('用户点击取消');
  1069. }
  1070. }
  1071. })
  1072. }else {
  1073. this.redeemF5(this.couponSelect.key);
  1074. }
  1075. } else if (this.showNtStep == 1 || this.showNtStep == 2 || this.showNtStep == 3 || this.showNtStep == 4) {
  1076. //this.showNt = false;
  1077. uni.navigateTo({
  1078. url: "/pages/user/coupon/myCoupon"
  1079. })
  1080. }
  1081. },
  1082. test() {
  1083. if (process.env.NODE_ENV === "development") {
  1084. }
  1085. },
  1086. goSearch() {
  1087. this.$refs.tabbarMain.beforeSwitch(1)
  1088. },
  1089. nextTop(index) {
  1090. this.showTopImg = this.bannerListTop[index + 1].picUrl;
  1091. this.showTopIndex = index + 1;
  1092. },
  1093. getDescriptionTime() {
  1094. var date = this.activityDate;
  1095. var dateMonth1 = new Date().getMonth() + 1;
  1096. var dateDay1 = new Date().getDate();
  1097. var dateMonth2 = parseInt(date.slice(5, 7));
  1098. var dateDay2 = parseInt(date.slice(8, 10));
  1099. if (dateMonth1 < dateMonth2) {
  1100. var days = new Date(new Date().getFullYear(), dateMonth1, 0).getDate();
  1101. dateDay2 = dateDay2 + days;
  1102. console.log(dateDay2)
  1103. }
  1104. if (dateDay1 < dateDay2 - 2) {
  1105. this.description = dateDay2 - dateDay1 + '天'
  1106. } else {
  1107. var dateTime2 = new Date(date).getTime()
  1108. var c = hourDistanceArr(new Date(), new Date(dateTime2))
  1109. if (c[0] < 10) {
  1110. c[0] = '0' + c[0];
  1111. }
  1112. if (c[1] < 10) {
  1113. c[1] = '0' + c[1];
  1114. }
  1115. if (c[2] < 10) {
  1116. c[2] = '0' + c[2];
  1117. }
  1118. this.description = c[0] + ':' + c[1] + ':' + c[2];
  1119. if (this.description == '00:00:00') {
  1120. this.activityListShow = false;
  1121. }
  1122. setTimeout(() => {
  1123. this.getDescriptionTime();
  1124. }, 1000)
  1125. }
  1126. },
  1127. getUserInfo() {
  1128. uni.showLoading({
  1129. title: "加载中",
  1130. mask: true,
  1131. })
  1132. loginApi.findByOpenId({
  1133. openId: this.carhelp.getOpenId(),
  1134. noerror: true,
  1135. }).then((res) => {
  1136. uni.hideLoading();
  1137. if (res.code == 200 && res.result) {
  1138. this.personInfo = res.data.regUser;
  1139. var token = res ? res.data.token : '';
  1140. this.carhelp.setPersonInfo(res.data.regUser);
  1141. this.carhelp.setToken(token);
  1142. this.carhelp.setPersonInfoPlus(res.data);
  1143. }
  1144. console.log("--------------")
  1145. if (res.data && res.data.regUser) {
  1146. // if (res.data.regUser.fontMode == null) {
  1147. // this.show = true;
  1148. // } else {
  1149. // this.show = false;
  1150. // this.fontMode = res.data.regUser.fontMode;
  1151. // if (this.fontMode == '1') {
  1152. // this.carhelp.set("getElderModeClass", "长辈模式");
  1153. // } else {
  1154. // this.carhelp.set("getElderModeClass", "标准模式");
  1155. // }
  1156. // }
  1157. this.userId = res.data.regUser.id;
  1158. this.getFindChargeData();
  1159. if(res.data.regUser.fontMode=="1"){
  1160. this.checked = true;
  1161. this.carhelp.set("getElderModeClass","长辈模式")
  1162. }
  1163. if (this.carhelp.get("getElderModeClass")) {
  1164. if (this.carhelp.get("getElderModeClass") == "长辈模式") {
  1165. this.elderStatus = true;
  1166. } else {
  1167. this.elderStatus = false;
  1168. }
  1169. }else{
  1170. this.carhelp.set("getElderModeClass", "标准模式");
  1171. this.elderStatus = false;
  1172. }
  1173. } else {
  1174. if (!this.carhelp.get("getElderModeClass")) {
  1175. this.carhelp.set("getElderModeClass", "标准模式");
  1176. }
  1177. this.elderStatus = true;
  1178. var obj = this.carhelp.get("friends_invitation")
  1179. // this.carhelp.set("friends_invitation",{
  1180. // op:op,
  1181. // date:new Date().getTime()
  1182. // })
  1183. if (obj && false) {
  1184. if (obj.date + 1000 * 60 * 60 * 24 > new Date().getTime()) {
  1185. this.friendsInvitation(obj)
  1186. }
  1187. }
  1188. }
  1189. }).catch(error => {
  1190. uni.showToast({
  1191. title: error,
  1192. icon: "none"
  1193. })
  1194. })
  1195. },
  1196. friendsInvitation(obj) {
  1197. uni.showLoading({
  1198. title: "加载中",
  1199. mask: true,
  1200. })
  1201. API.findActivity({
  1202. id: obj.op.id,
  1203. code: obj.op.icode
  1204. }).then((res) => {
  1205. uni.hideLoading()
  1206. obj.activityInfo = res.data.activityInfo;
  1207. var name = res.data.activityInfo.name;
  1208. var title = "参与活动"
  1209. var okbtn = "前往注册"
  1210. var endTime = res.data.activityInfo.endTime;
  1211. if (endTime && secondsDistance(newDate(endTime)) > 0) {
  1212. name = "活动已结束"
  1213. okbtn = "继续注册"
  1214. title = "提示"
  1215. obj = null
  1216. }
  1217. this.carhelp.set("friends_invitation", obj)
  1218. uni.showModal({
  1219. title: title,
  1220. content: name,
  1221. confirmText: okbtn,
  1222. success: res1 => {
  1223. if (res1.confirm) {
  1224. uni.navigateTo({
  1225. url: '/pages/login/login'
  1226. })
  1227. } else if (res1.cancel) {
  1228. //('用户点击取消');
  1229. }
  1230. }
  1231. })
  1232. }).catch(error => {
  1233. uni.showToast({
  1234. title: error,
  1235. icon: "none"
  1236. })
  1237. })
  1238. },
  1239. clickBannerTopI(i) {
  1240. var mod = this.bannerListTop[i];
  1241. //this.showTop = false;
  1242. this.clickBanner(0, true, mod)
  1243. },
  1244. clickBannerTop() {
  1245. var mod = this.bannerListTop[this.showTopIndex];
  1246. this.showTop = false;
  1247. this.clickBanner(0, true, mod)
  1248. },
  1249. clickBanner(index, bl, modout) {
  1250. var uurl = "";
  1251. var mod = this.bannerList[index]
  1252. if (modout) {
  1253. mod = modout;
  1254. }
  1255. mod.clickUrl = mod.linkUrl
  1256. if (mod.linkPicUrl && !bl) {
  1257. this.showOss = true;
  1258. this.showOssImg = mod.linkPicUrl;
  1259. this.showOssIndex = index;
  1260. } else if (mod.clickUrl == null) {
  1261. } else if (mod.clickUrl.indexOf('http') == 0) {
  1262. window.location = mod.clickUrl + uurl;
  1263. } else if (mod.clickUrl.slice(-5) == 'login' && this.userId) {
  1264. } else if (mod.clickUrl.indexOf('#/') == 0) {
  1265. if (mod.clickUrl.indexOf("?") == -1) {
  1266. mod.clickUrl += '?';
  1267. }
  1268. var url = mod.clickUrl.split("#")[1]
  1269. //window.location = mod.clickUrl;
  1270. uni.navigateTo({
  1271. url: url + uurl
  1272. })
  1273. } else if (mod.clickUrl == '#' || mod.clickUrl == '') {
  1274. } else {
  1275. uni.navigateTo({
  1276. url: mod.clickUrl + uurl
  1277. })
  1278. }
  1279. },
  1280. getBannerInfoTop(code) {
  1281. var nowtime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d}')
  1282. var time = this.carhelp.get("bannerListTop");
  1283. if ((time && nowtime == time)) {
  1284. this.getBannerInfoTopBl=false;
  1285. }
  1286. // uni.showLoading({
  1287. // title: "加载中",
  1288. // mask: true,
  1289. // })
  1290. newsApi.getBannerInfo(code).then((res) => {
  1291. this.bannerListTop = res.data;
  1292. if (this.bannerListTop.length) {
  1293. this.showTop = true;
  1294. this.showTopImg = this.bannerListTop[0].picUrl;
  1295. this.showTopIndex = 0;
  1296. }
  1297. this.carhelp.set("bannerListTop", nowtime);
  1298. //this.test()
  1299. var userInfo = this.carhelp.getPersonInfo();
  1300. if (userInfo && userInfo.id) {
  1301. this.getf5surprised()
  1302. } else {
  1303. }
  1304. //uni.hideLoading()
  1305. //document.getElementsByClassName("uni-swiper-wrapper")[0].parentNode.style="background-color: rgb(255, 255, 255); height: 120px;"
  1306. }).catch(error => {
  1307. uni.showToast({
  1308. title: error,
  1309. icon: "none"
  1310. })
  1311. })
  1312. },
  1313. getBannerInfo(code,list) {
  1314. newsApi.getBannerInfo(code).then((res) => {
  1315. if(list){
  1316. this[list] = res.data;
  1317. }else{
  1318. this.bannerList = res.data;
  1319. }
  1320. //uni.hideLoading()
  1321. //document.getElementsByClassName("uni-swiper-wrapper")[0].parentNode.style="background-color: rgb(255, 255, 255); height: 120px;"
  1322. }).catch(error => {
  1323. uni.showToast({
  1324. title: error,
  1325. icon: "none"
  1326. })
  1327. })
  1328. },
  1329. elderClick() {
  1330. if (this.value == "长辈模式") {
  1331. this.elderStatus = true;
  1332. this.carhelp.set("getElderModeClass", "长辈模式");
  1333. this.fontMode = '1';
  1334. } else {
  1335. this.elderStatus = false;
  1336. this.carhelp.set("getElderModeClass", "标准模式");
  1337. this.fontMode = '0';
  1338. }
  1339. API.changeFont({
  1340. fontMode: this.fontMode
  1341. }).then((res) => {
  1342. this.show = false;
  1343. }).catch(error => {
  1344. uni.showToast({
  1345. title: error,
  1346. icon: "none"
  1347. })
  1348. })
  1349. },
  1350. bhz(){
  1351. uni.showToast({
  1352. title: "备货中,敬请期待",
  1353. icon: "none"
  1354. })
  1355. // uni.navigateTo({
  1356. // url:"/pages/store/51store"
  1357. // })
  1358. },
  1359. getPointTimeOut() {
  1360. setTimeout(() => {
  1361. if (this.pointTimeOut) {
  1362. this.getPoint();
  1363. }
  1364. }, 1000)
  1365. },
  1366. getFindChargeData() {
  1367. API.findChargeData().then((res) => {
  1368. //this.onPageScrollMethod()
  1369. this.chargeList = res.data.chargingRecordList;
  1370. var list = res.data.chargingRecordList;
  1371. for (var i = 0; i < list.length; i++) {
  1372. if (list[i].status == '1' || list[i].status == '4') {
  1373. this.timeOut = true;
  1374. }
  1375. }
  1376. if (this.timeOut && this.pointTimeOut) {
  1377. setTimeout(() => {
  1378. this.getFindChargeData();
  1379. }, 5000)
  1380. }
  1381. }).catch(error => {
  1382. uni.showToast({
  1383. title: error,
  1384. icon: "none"
  1385. })
  1386. })
  1387. },
  1388. toAll() {
  1389. uni.navigateTo({
  1390. url: '/pages/index/all'
  1391. })
  1392. },
  1393. toSearchPile() {
  1394. uni.navigateTo({
  1395. url: '/pages/searchPile/searchPile'
  1396. })
  1397. },
  1398. toLogin() {
  1399. uni.navigateTo({
  1400. url: '/pages/login/login'
  1401. })
  1402. },
  1403. toNewsNotice() {
  1404. // uni.navigateTo({
  1405. // url: '/pages/article/newsNotice'
  1406. // })
  1407. uni.navigateTo({
  1408. url: '/pages/index/activity'
  1409. })
  1410. },
  1411. toNewsArticleDetails(e) {
  1412. // uni.navigateTo({
  1413. // url: '/pages/article/newsNotice'
  1414. // })
  1415. if(e==undefined){
  1416. console.log("toNewsArticleDetails1",e)
  1417. }else{
  1418. console.log("toNewsArticleDetails1",e)
  1419. var item=this.newsListData[e]
  1420. this.gotoArticleDetails(item)
  1421. }
  1422. // console.log("toNewsArticleDetails2",e)
  1423. //var item=this.newsListData[e]
  1424. //this.gotoArticleDetails(item)
  1425. },
  1426. //微信扫二维码
  1427. getScanCode() {
  1428. if (this.userId) {
  1429. WxJsApi.scanQRCode(1).then(res => {
  1430. //("scanQRCode------" + res)
  1431. if (res) {
  1432. API.scanCode(res).then((response) => {
  1433. }).catch(error => {
  1434. uni.showToast({
  1435. title: error,
  1436. icon: "none"
  1437. })
  1438. })
  1439. }
  1440. }).catch(error => {
  1441. })
  1442. } else {
  1443. uni.navigateTo({
  1444. url: '/pages/login/login'
  1445. })
  1446. }
  1447. },
  1448. fastRecharge() {
  1449. if (this.userId) {
  1450. if(this.personInfo.userType==1){
  1451. uni.showToast({
  1452. title:"游客模式只支持“先付后退”"
  1453. })
  1454. }else{
  1455. uni.navigateTo({
  1456. url: '/pages/user/finance/recharge'
  1457. })
  1458. }
  1459. } else {
  1460. uni.navigateTo({
  1461. url: '/pages/login/login'
  1462. })
  1463. }
  1464. },
  1465. chargingRecord() {
  1466. if (this.userId) {
  1467. uni.navigateTo({
  1468. url: '/pages/record/index'
  1469. })
  1470. } else {
  1471. uni.navigateTo({
  1472. url: '/pages/login/login'
  1473. })
  1474. }
  1475. },
  1476. rechargeActivity(item) {
  1477. if (this.userId) {
  1478. var uurl = "&uid=" + this.userId;
  1479. var mod = item
  1480. if (mod.clickUrl == null) {
  1481. } else if (mod.clickUrl.indexOf('http') == 0) {
  1482. window.location = mod.clickUrl + uurl;
  1483. } else if (mod.clickUrl.indexOf('#/') == 0) {
  1484. if (mod.clickUrl.indexOf("?") == -1) {
  1485. mod.clickUrl += '?';
  1486. }
  1487. var url = mod.clickUrl.split("#")[1]
  1488. //window.location = mod.clickUrl;
  1489. uni.navigateTo({
  1490. url: url + uurl
  1491. })
  1492. } else if (mod.clickUrl == '#' || mod.clickUrl == '') {
  1493. } else {
  1494. uni.navigateTo({
  1495. url: mod.clickUrl + uurl
  1496. })
  1497. }
  1498. } else {
  1499. uni.navigateTo({
  1500. url: '/pages/login/login'
  1501. })
  1502. }
  1503. },
  1504. getActivityInfoList() {
  1505. uni.showLoading({
  1506. title: "加载中",
  1507. mask: true,
  1508. })
  1509. API.activityInfoList({
  1510. pageIndex: 1,
  1511. pageSize: 10
  1512. }).then((res) => {
  1513. uni.hideLoading()
  1514. var list = res.data.data;
  1515. for (let i = 0; i < list.length; i++) {
  1516. if (list[i].type == 2 && list[i].endTime != null) {
  1517. this.activityListShow = true;
  1518. var reg = new RegExp('-', 'gi');
  1519. this.activityDate = list[i].endTime.replace(reg, '/');
  1520. console.log(this.activityDate)
  1521. this.activityDateList = list[i];
  1522. list.splice(i, 1);
  1523. this.getDescriptionTime();
  1524. }
  1525. }
  1526. this.activityList = list;
  1527. }).catch(error => {
  1528. uni.showToast({
  1529. title: error,
  1530. icon: "none"
  1531. })
  1532. })
  1533. },
  1534. searchStationData(bl) {
  1535. if (bl) {
  1536. this.pageIndex2++;
  1537. }
  1538. var data = {
  1539. longitude: this.longitude,
  1540. latitude: this.latitude,
  1541. pageIndex: this.pageIndex2,
  1542. pageSize: 3
  1543. }
  1544. if (this.carhelp.getPersonInfo()) {
  1545. data.openId = this.carhelp.getOpenId()
  1546. }
  1547. this.loading = false
  1548. siteApi.searchStationData(data).then((response) => {
  1549. //this.onPageScrollMethod()
  1550. if (this.pageIndex2 == 1) {
  1551. this.stationList = response.data.data;
  1552. // this.listForm.totalPage = response.data.totalPage;
  1553. } else {
  1554. this.stationList = [
  1555. ...this.stationList,
  1556. ...response.data.data
  1557. ];
  1558. }
  1559. this.recordsTotal2 = response.data.recordsTotal;
  1560. this.loading = true
  1561. console.log(this.loading)
  1562. if (false&&response.data.data.length&&false) {
  1563. var stationDataList = response.data.data;
  1564. MapLoader().then(AMap1 => {
  1565. for (var i in stationDataList) {
  1566. var item = stationDataList[i]
  1567. var lnglat = new AMap.LngLat(this.longitude, this.latitude);
  1568. var myDistance = lnglat.distance([item.longitude, item.latitude]);
  1569. item.distance = myDistance / 1000;
  1570. console.log(item.distance)
  1571. }
  1572. })
  1573. //this.stationData = stationDataList;
  1574. }
  1575. }).catch(error => {
  1576. console.log(error,"123")
  1577. uni.showToast({
  1578. title: error,
  1579. icon: "none"
  1580. })
  1581. })
  1582. },
  1583. getPoint() {
  1584. if (this.stationList.length != 0) {
  1585. return
  1586. }
  1587. WxJsApi.getLocation().then((res) => {
  1588. this.latitude = parseFloat(res.latitude);
  1589. this.longitude = parseFloat(res.longitude);
  1590. this.message = res.errMsg;
  1591. if (res.errMsg != 'getLocation:ok') {
  1592. uni.showToast({
  1593. title: res
  1594. })
  1595. } else {
  1596. this.searchStationData()
  1597. }
  1598. }).catch(error => {
  1599. uni.showToast({
  1600. title: error,
  1601. icon: "none"
  1602. })
  1603. })
  1604. },
  1605. getNewsList(bl) {
  1606. uni.showLoading({
  1607. title: "加载中",
  1608. mask: true,
  1609. })
  1610. newsApi.newsInfoList({
  1611. pageIndex: 1,
  1612. pageSize: 5,
  1613. shortName:'GDXW',
  1614. //shortName:'TZGG'
  1615. }).then((res) => {
  1616. uni.hideLoading()
  1617. var data1=res.data.data;
  1618. var data2=[];
  1619. if(data1.length==1){
  1620. data2=[
  1621. ...data1,
  1622. ...data1
  1623. ]
  1624. }else{
  1625. data2=[
  1626. ...data1
  1627. ]
  1628. }
  1629. this.newsListData= data2
  1630. this.newsList = data2.map(item=>{
  1631. return item.title
  1632. })
  1633. }).catch(error => {
  1634. uni.showToast({
  1635. title: error,
  1636. icon: "none"
  1637. })
  1638. })
  1639. },
  1640. myLoadmore() {
  1641. //this.pageIndex += 1;
  1642. //this.getNewsList()
  1643. },
  1644. }
  1645. }
  1646. </script>
  1647. <style lang="scss" scoped>
  1648. .swiper{
  1649. height: 700rpx;
  1650. .swiperitem{
  1651. height: 700rpx;
  1652. }
  1653. }
  1654. .couponmain {
  1655. .main {
  1656. margin: 100px auto 0;
  1657. position: relative;
  1658. .content {
  1659. padding: 24px;
  1660. padding-top: 50px;
  1661. background-color: #fff;
  1662. box-shadow: 0px 0px 0px 1px rgba(254, 229, 147, 100);
  1663. border: 2px solid rgba(253, 217, 141, 100);
  1664. border-radius: 8px;
  1665. .img {
  1666. width: 44vw;
  1667. height: 134px;
  1668. position: absolute;
  1669. top: -88px;
  1670. right: 0px;
  1671. img {
  1672. width: 100%;
  1673. height: 100%;
  1674. }
  1675. }
  1676. .title {
  1677. font-size: 16px;
  1678. color: rgba(84, 45, 45, 100);
  1679. margin-bottom: 13px;
  1680. }
  1681. .text {
  1682. line-height: 24px;
  1683. color: rgba(84, 45, 45, 100);
  1684. font-size: 16px;
  1685. text-align: justify;
  1686. text-decoration: underline;
  1687. text-decoration-color: #ECE3BA;
  1688. text-indent: 32px;
  1689. }
  1690. .sign {
  1691. text-align: right;
  1692. margin-top: 8px;
  1693. font-size: 16px;
  1694. }
  1695. }
  1696. // 专享优惠券
  1697. .exclusive {
  1698. background-color: #F5E4C8;
  1699. margin-top: 20px;
  1700. padding: 32rpx 32rpx 32rpx 32rpx;
  1701. box-shadow: 0px 0px 0px 1px rgba(254, 229, 147, 100);
  1702. border: 2px solid rgba(253, 217, 141, 100);
  1703. border-radius: 8px;
  1704. .exclusive1 {
  1705. font-size: 48rpx;
  1706. color: rgba(51, 51, 51, 1);
  1707. font-family: SourceHanSerif-bold;
  1708. }
  1709. .exclusive2 {
  1710. font-family: PingFangSC-regular;
  1711. color: rgba(51, 51, 51, 1);
  1712. font-size: 36rpx;
  1713. }
  1714. p {
  1715. width: 100%;
  1716. text-align: center;
  1717. //color: rgba(255, 73, 75, 100);
  1718. //font-size: 20px;
  1719. }
  1720. .img {
  1721. // width: 74.4vw;
  1722. // height: 84px;
  1723. margin-top: 16px;
  1724. position: relative;
  1725. img {
  1726. width: 100%;
  1727. height: 100%;
  1728. }
  1729. }
  1730. .num {
  1731. font-size: 54rpx;
  1732. color: rgba(252, 237, 179, 100);
  1733. position: absolute;
  1734. top: 10px;
  1735. left: 8vw;
  1736. font-weight: 600;
  1737. .unit {
  1738. font-size: 24rpx;
  1739. color: rgba(252, 237, 179, 100);
  1740. }
  1741. }
  1742. .unit2 {
  1743. font-size: 12px;
  1744. color: #FFF;
  1745. position: absolute;
  1746. top: 90rpx;
  1747. left: 24rpx;
  1748. }
  1749. .exclusive-text {
  1750. color: #333333;
  1751. font-size: 16rpx;
  1752. }
  1753. .exclusive-btn {
  1754. width: 80%;
  1755. margin-top: 48rpx;
  1756. border-radius: 50px;
  1757. background: linear-gradient(90.58deg, rgba(225, 208, 165, 1) 0.05%, rgba(228, 190, 132, 1) 98.67%);
  1758. color: rgba(51, 51, 51, 1);
  1759. font-size: 36rpx;
  1760. text-align: center;
  1761. box-shadow: 0px 8rpx 20rpx 0px rgba(184, 155, 103, 40);
  1762. font-family: -apple-system;
  1763. // width: 87.4%;
  1764. // margin-top: 20px;
  1765. // background-image: linear-gradient(#ffff00, #ff9600);
  1766. // color: #521e00;
  1767. // font-size: 20px;
  1768. // border-radius: 50px;
  1769. }
  1770. .ticket-info {
  1771. width: 40vw;
  1772. text-align: center;
  1773. position: absolute;
  1774. top: 18px;
  1775. right: 16rpx;
  1776. .ticket-name {
  1777. line-height: 40rpx;
  1778. color: rgba(16, 16, 16, 100);
  1779. font-size: 16rpx;
  1780. }
  1781. .condition {
  1782. line-height: 22px;
  1783. color: #8a6f6f;
  1784. font-size: 12px;
  1785. }
  1786. }
  1787. }
  1788. }
  1789. }
  1790. .oldTextClassF {
  1791. .text-2 {
  1792. font-size: 36rpx !important;
  1793. }
  1794. .text-3 {
  1795. font-size: 34rpx !important;
  1796. }
  1797. .station .price-free .price-1 .num {
  1798. font-size: 48rpx !important;
  1799. line-height: 40rpx;
  1800. font-weight: bold;
  1801. }
  1802. }
  1803. /deep/.u-image__loading {
  1804. background: #ff000000;
  1805. }
  1806. // 头部图片
  1807. img {
  1808. width: 100%;
  1809. // height: 100%;
  1810. }
  1811. .background {
  1812. background: linear-gradient(#D6EEDC, #F3F4F4);
  1813. padding-top: 16px;
  1814. }
  1815. .banner {
  1816. width: 91.4%;
  1817. margin: 0 auto;
  1818. border-radius: 12px;
  1819. height: 100px;
  1820. overflow: hidden;
  1821. /deep/uni-swiper{
  1822. height: 100px !important;
  1823. }
  1824. }
  1825. // 选项列表
  1826. .option-list {
  1827. padding-top: 15px;
  1828. line-height: 20px;
  1829. border-radius: 8px;
  1830. text-align: center;
  1831. margin: auto;
  1832. display: flex;
  1833. justify-content: space-around;
  1834. .list-item {
  1835. // 图标
  1836. .icon {
  1837. width: 40px;
  1838. height: 40px;
  1839. border-radius: 99px;
  1840. line-height: 40px;
  1841. font-size: 24px;
  1842. text-align: center;
  1843. margin: auto;
  1844. color: #ffffff;
  1845. }
  1846. .text {
  1847. margin-top: 4px;
  1848. }
  1849. }
  1850. }
  1851. .flex {
  1852. display: flex;
  1853. }
  1854. // 站点
  1855. .pack-up {
  1856. float: right;
  1857. font-size: 16px;
  1858. color: rgba(119, 119, 119, 100);
  1859. }
  1860. .station,
  1861. .location,
  1862. .state1 {
  1863. box-shadow: 0px 4rpx 12rpx 0px #008c4a33;
  1864. }
  1865. // 附近站点改版
  1866. .station {
  1867. width: 91.4%;
  1868. border-radius: 8px;
  1869. padding: 12px 12px 12px 11px;
  1870. background-color: #fff;
  1871. margin: 8px auto 0;
  1872. .head {
  1873. display: flex;
  1874. justify-content: space-between;
  1875. align-items: center;
  1876. .title {
  1877. color: rgba(16, 16, 16, 100);
  1878. font-size: 32rpx;
  1879. font-weight: 550;
  1880. width: 440rpx;
  1881. text-overflow: ellipsis;
  1882. overflow: hidden;
  1883. white-space: nowrap;
  1884. }
  1885. .distance {
  1886. width: 180rpx;
  1887. color: rgba(102, 102, 102, 100);
  1888. font-size: 32rpx;
  1889. text-align: end;
  1890. .iconfont {
  1891. font-size: 24rpx;
  1892. margin-right: 4rpx;
  1893. }
  1894. }
  1895. }
  1896. .sign {
  1897. display: flex;
  1898. flex-wrap: wrap;
  1899. margin-top: 16rpx;
  1900. height: 46rpx;
  1901. overflow: hidden;
  1902. .sign-tag {
  1903. line-height: 40rpx;
  1904. border-radius: 8rpx;
  1905. //background-color: rgba(255, 255, 255, 100);
  1906. //color: rgba(255, 139, 0, 100);
  1907. font-size: 24rpx;
  1908. text-align: center;
  1909. //border: 1px solid rgba(255, 139, 0, 100);
  1910. padding: 0 8rpx 14rpx 8rpx;
  1911. margin-right: 16rpx;
  1912. margin-bottom: 8rpx;
  1913. }
  1914. .sign-0 {
  1915. background: linear-gradient(89.4deg, rgba(129,97,255,1) 2.8%,rgba(169,147,255,1) 98.02%);
  1916. color: rgba(255, 255, 255, 1);
  1917. padding: 0 10rpx;
  1918. //border: 1px solid rgba(255, 139, 0, 100);
  1919. }
  1920. .sign-5 {
  1921. background: linear-gradient(89.4deg, rgba(255,61,0,1) 2.8%,rgba(255,134,0,1) 98.02%);
  1922. color: rgba(255, 255, 255, 1);
  1923. padding: 0 10rpx;
  1924. }
  1925. .sign-6 {
  1926. //background: linear-gradient(89.4deg, rgba(255,61,0,1) 2.8%,rgba(255,134,0,1) 98.02%);
  1927. background: linear-gradient(89.4deg, rgba(0,164,87,1) 2.8%,rgba(0,206,141,1) 98.02%);
  1928. color: rgba(255, 255, 255, 1);
  1929. padding: 0 10rpx;
  1930. }
  1931. .sign-1 {
  1932. line-height: 40rpx;
  1933. border-radius: 8rpx;
  1934. background-color: rgba(255, 255, 255, 100);
  1935. color: rgba(255, 139, 0, 100);
  1936. font-size: 24rpx;
  1937. text-align: center;
  1938. border: 1px solid rgba(255, 139, 0, 100);
  1939. padding: 0 8rpx;
  1940. margin-right: 16rpx;
  1941. margin-bottom: 8rpx;
  1942. }
  1943. .sign-2 {
  1944. line-height: 40rpx;
  1945. border-radius: 8rpx;
  1946. background-color: rgba(255, 255, 255, 100);
  1947. color: rgba(153, 153, 153, 100);
  1948. font-size: 24rpx;
  1949. text-align: center;
  1950. border: 1px solid rgba(204, 204, 204, 100);
  1951. padding: 0 8rpx;
  1952. margin-right: 16rpx;
  1953. margin-bottom: 8rpx;
  1954. }
  1955. .sign-3 {
  1956. line-height: 40rpx;
  1957. border-radius: 8rpx;
  1958. background-color: rgba(255, 255, 255, 100);
  1959. color: #8161FF;
  1960. font-size: 24rpx;
  1961. text-align: center;
  1962. border: 1px solid #8161FF;
  1963. padding: 0 8rpx;
  1964. margin-right: 16rpx;
  1965. margin-bottom: 8rpx;
  1966. }
  1967. .sign-4 {
  1968. line-height: 40rpx;
  1969. border-radius: 8rpx;
  1970. background-color: rgba(255, 255, 255, 100);
  1971. color: #00B962;
  1972. font-size: 24rpx;
  1973. text-align: center;
  1974. border: 1px solid #00B962;
  1975. padding: 0 8rpx;
  1976. margin-right: 16rpx;
  1977. margin-bottom: 8rpx;
  1978. }
  1979. }
  1980. .price-free {
  1981. display: flex;
  1982. justify-content: space-between;
  1983. margin-top: 8rpx;
  1984. .price {
  1985. display: flex;
  1986. align-items: baseline;
  1987. }
  1988. .price-1 {
  1989. .num {
  1990. color: rgba(255, 98, 0, 100);
  1991. font-size: 44rpx;
  1992. }
  1993. .unit {
  1994. font-size: 12px;
  1995. color: rgba(153, 153, 153, 100);
  1996. }
  1997. }
  1998. .price-2 {
  1999. font-size: 24rpx;
  2000. margin-left: 8rpx;
  2001. color: #999999;
  2002. text-decoration: line-through;
  2003. }
  2004. .price-3 {
  2005. font-size: 24rpx;
  2006. color: #fff;
  2007. margin-left: 8rpx;
  2008. padding-right: 9rpx;
  2009. background:#00B962 ;
  2010. border-radius: 8rpx;
  2011. .num1{
  2012. padding-left: 12rpx;
  2013. border-radius: 8rpx 0 8rpx 8rpx;
  2014. padding-right: 18rpx;
  2015. background: #121212;
  2016. -webkit-clip-path: polygon(0 0, 93% 0, 84% 100%, 0% 100%);
  2017. clip-path: polygon(0 0, 93% 0, 84% 100%, 0% 100%);
  2018. }
  2019. }
  2020. }
  2021. .free {
  2022. display: flex;
  2023. align-items: center;
  2024. .slow,
  2025. .fast {
  2026. display: flex;
  2027. .sp-font {
  2028. width: 40rpx;
  2029. height: 40rpx;
  2030. line-height: 40rpx;
  2031. border-radius: 4px;
  2032. background-color: #7a68f6;
  2033. color: #fff;
  2034. font-size: 28rpx;
  2035. text-align: center;
  2036. margin-right: 2rpx;
  2037. }
  2038. .fast-font {
  2039. width: 40rpx;
  2040. height: 40rpx;
  2041. line-height: 40rpx;
  2042. border-radius: 8rpx;
  2043. // background-color: rgba(186, 240, 215, 100);
  2044. // color: rgba(0, 130, 69, 100);
  2045. background-color: #1677FF;
  2046. color: rgba(255, 255, 255, 1);
  2047. font-size: 28rpx;
  2048. text-align: center;
  2049. margin-right: 8rpx;
  2050. }
  2051. .slow-font {
  2052. width: 40rpx;
  2053. height: 40rpx;
  2054. line-height: 40rpx;
  2055. border-radius: 8rpx;
  2056. // background-color: rgba(226, 226, 226, 100);
  2057. // color: rgba(128, 128, 128, 100);
  2058. background-color: #00B962;
  2059. color: rgba(255, 255, 255, 1);
  2060. font-size: 28rpx;
  2061. text-align: center;
  2062. margin-right: 8rpx;
  2063. }
  2064. .num {
  2065. font-size: 32rpx;
  2066. color: #666;
  2067. line-height: 40rpx;
  2068. }
  2069. .num1 {
  2070. font-size: 32rpx;
  2071. color: #bbb;
  2072. line-height: 40rpx;
  2073. }
  2074. }
  2075. .slow {
  2076. margin-left: 24rpx;
  2077. }
  2078. }
  2079. }
  2080. //定位
  2081. .location {
  2082. width: 91.4%;
  2083. background-color: #ffffff;
  2084. height: 120px;
  2085. display: flex;
  2086. justify-content: space-between;
  2087. margin: 20px auto 0;
  2088. border-radius: 8px;
  2089. border: #F2F4F4 1px;
  2090. .location-text {
  2091. padding: 24px 0 0 28px;
  2092. .text-1 {
  2093. height: 16px;
  2094. line-height: 16px;
  2095. color: rgba(16, 16, 16, 100);
  2096. font-size: 16px;
  2097. text-align: left;
  2098. }
  2099. .text-2 {
  2100. height: 17px;
  2101. line-height: 17px;
  2102. color: rgba(102, 102, 102, 100);
  2103. font-size: 12px;
  2104. text-align: left;
  2105. margin-top: 4px;
  2106. white-space: nowrap; //强制不换行
  2107. text-overflow: ellipsis; //文本超出出现省略号
  2108. overflow: hidden;
  2109. }
  2110. .text-3 {
  2111. width: 80px;
  2112. height: 24px;
  2113. line-height: 22px;
  2114. border-radius: 50px;
  2115. color: rgba(0, 185, 98, 100);
  2116. font-size: 12px;
  2117. text-align: center;
  2118. border: 1px solid rgba(0, 185, 98, 100);
  2119. margin-top: 11px;
  2120. }
  2121. }
  2122. .img-box {
  2123. width: 120px;
  2124. height: 120px;
  2125. margin-right: 20px;
  2126. }
  2127. }
  2128. .img-box4 {
  2129. padding-top: 5px;
  2130. height: 260rpx;
  2131. img {
  2132. max-width: 100px;
  2133. }
  2134. .img-view {
  2135. color: #0293f0;
  2136. float: right;
  2137. font-size: 10px;
  2138. margin-top: 3px;
  2139. position: relative;
  2140. bottom: 30rpx;
  2141. left: -15px;
  2142. .iconfont {
  2143. font-size: 14px;
  2144. }
  2145. }
  2146. }
  2147. .state {
  2148. width: 91.4%;
  2149. background-color: #ffffff;
  2150. height: 260rpx;
  2151. min-height: 120px;
  2152. max-height: 130px;
  2153. display: flex;
  2154. margin: 20rpx auto 0;
  2155. border-radius: 8px;
  2156. border: #F2F4F4 1px;
  2157. .state-text {
  2158. min-width: 70%;
  2159. padding: 48rpx 0 0 24rpx;
  2160. Z-INDEX: 99;
  2161. .text-1 {
  2162. height: 16px;
  2163. line-height: 16px;
  2164. color: rgba(0, 185, 98, 1);
  2165. font-size: 16px;
  2166. text-align: left;
  2167. font-weight: bold;
  2168. span {
  2169. color: rgba(16, 16, 16, 1);
  2170. margin-right: 12rpx;
  2171. }
  2172. }
  2173. .text-2 {
  2174. width: 160%;
  2175. height: 17px;
  2176. line-height: 17px;
  2177. color: #101010;
  2178. text-align: left;
  2179. margin-top: 12px;
  2180. span {
  2181. font-weight: bold;
  2182. margin-right: 6rpx;
  2183. margin-left: 6rpx;
  2184. }
  2185. .text-21 {
  2186. color: rgba(0, 185, 98, 1);
  2187. }
  2188. .text-22 {
  2189. color: #ed7847;
  2190. }
  2191. }
  2192. .text-3 {
  2193. font-size: 14px;
  2194. line-height: 20px;
  2195. margin-top: 6px;
  2196. color: #999999;
  2197. }
  2198. }
  2199. .img-box {
  2200. width: 120px;
  2201. height: 120px;
  2202. margin-right: 20px;
  2203. }
  2204. }
  2205. //充值
  2206. .top-up {
  2207. width: 91.4%;
  2208. margin: 12px auto 0;
  2209. .top-up-title {
  2210. color: rgba(16, 16, 16, 100);
  2211. font-size: 16px;
  2212. }
  2213. .card-box {
  2214. display: flex;
  2215. justify-content: space-between;
  2216. //padding: 0 0 16px 0;
  2217. .card {
  2218. width: 48.3%;
  2219. height: 65px;
  2220. img {
  2221. width: 100%;
  2222. height: 100%;
  2223. }
  2224. }
  2225. }
  2226. .img-box2 {
  2227. margin-top: 12px;
  2228. display: flex;
  2229. justify-content: space-between;
  2230. img {
  2231. width: 100%;
  2232. height: 100%;
  2233. }
  2234. .left-image {
  2235. width: 48.3%;
  2236. height: 166px;
  2237. padding: 8px 0 0 12px;
  2238. // background: url(@/assets/img/topup1.png);
  2239. background-repeat: no-repeat;
  2240. background-position: 30% 10%;
  2241. background-size: cover;
  2242. p {
  2243. color: rgba(56, 47, 33, 100);
  2244. font-size: 24px;
  2245. line-height: 28px;
  2246. font-weight: 600;
  2247. }
  2248. .time-activities {
  2249. color: rgba(56, 39, 14, 100);
  2250. font-size: 16px;
  2251. line-height: 22px;
  2252. margin-top: 4px;
  2253. .time {
  2254. margin-left: 4px;
  2255. color: #fa3534;
  2256. font-weight: bold;
  2257. }
  2258. }
  2259. }
  2260. .right-image {
  2261. width: 48.3%;
  2262. display: flex;
  2263. flex-direction: column;
  2264. justify-content: space-between;
  2265. .margin-top {
  2266. margin-top: 12px;
  2267. }
  2268. img {
  2269. height: 77px;
  2270. }
  2271. }
  2272. ;
  2273. }
  2274. }
  2275. .lineBox {
  2276. background-color: rgba(0, 145, 67, 100);
  2277. padding: 0px 3px;
  2278. background-color: rgba(0, 185, 98, 1);
  2279. color: rgba(255, 255, 255, 1);
  2280. margin-left: 6px;
  2281. border-radius: 3px;
  2282. }
  2283. // 小竖线
  2284. .line {
  2285. display: inline-block;
  2286. width: 3px;
  2287. height: 12px;
  2288. margin-right: 7px;
  2289. background-color: rgba(0, 145, 67, 100);
  2290. }
  2291. // 新闻公告
  2292. .news-title {
  2293. padding: 0 16px;
  2294. margin-top: 12px;
  2295. color: rgba(16, 16, 16, 100);
  2296. font-size: 16px;
  2297. //display: flex;
  2298. justify-content: space-between;
  2299. background-color: #F2F4F4;
  2300. .news-title-left {
  2301. display: flex;
  2302. }
  2303. .more {
  2304. font-size: 14px;
  2305. color: #777777;
  2306. display: flex;
  2307. line-height: 20px;
  2308. .more-icon {
  2309. font-size: 24px
  2310. }
  2311. }
  2312. }
  2313. .news {
  2314. background-color: #fff;
  2315. width: 91.4%;
  2316. margin: 12px auto 0;
  2317. border-radius: 8px;
  2318. .news-content {
  2319. display: flex;
  2320. justify-content: space-between;
  2321. padding: 12px;
  2322. .content-text {
  2323. width: 56.2%;
  2324. height: 100%;
  2325. line-height: 21px;
  2326. color: #101010;
  2327. text-align: left;
  2328. font-size: 14px;
  2329. }
  2330. .content-title {
  2331. width: 100%;
  2332. overflow: hidden;
  2333. text-overflow: ellipsis;
  2334. display: -webkit-box;
  2335. -webkit-box-orient: vertical;
  2336. -webkit-line-clamp: 3;
  2337. }
  2338. .content-img {
  2339. width: 40.57%;
  2340. height: 100%;
  2341. border-radius: 4px;
  2342. overflow: hidden;
  2343. img {
  2344. width: 100%;
  2345. height: 80%;
  2346. }
  2347. }
  2348. .news-time {
  2349. margin-top: 5%;
  2350. color: #999999;
  2351. width: 80px;
  2352. height: 20px;
  2353. font-size: 14px;
  2354. }
  2355. }
  2356. }
  2357. .bottom {
  2358. width: 100%;
  2359. height: 60px;
  2360. .bot {
  2361. width: 100%;
  2362. margin: 0 auto;
  2363. padding: 0 17.3%;
  2364. justify-content: space-between;
  2365. display: flex;
  2366. .bot-line {
  2367. margin-top: 20px;
  2368. width: 21.3%;
  2369. height: 0px;
  2370. border: 1px solid rgba(207, 210, 213, 100);
  2371. }
  2372. .bot-text {
  2373. white-space: nowrap;
  2374. height: 17px;
  2375. margin-top: 13px;
  2376. margin-left: 12px;
  2377. margin-right: 12px;
  2378. font-size: 12px;
  2379. text-align: center;
  2380. color: rgba(182, 189, 195, 100);
  2381. }
  2382. }
  2383. }
  2384. // 导航栏
  2385. .navigation {
  2386. width: 100%;
  2387. // height: 40px;
  2388. padding: 10px 0;
  2389. background-color: #fff;
  2390. position: fixed;
  2391. bottom: 0;
  2392. left: 0;
  2393. display: flex;
  2394. justify-content: space-around;
  2395. text-align: center;
  2396. color: #999999;
  2397. .nav-icon {
  2398. width: 54px;
  2399. font-size: 24px
  2400. }
  2401. .nav-text {
  2402. font-size: 14px;
  2403. }
  2404. }
  2405. .shema {
  2406. width: 70%;
  2407. padding-bottom: 20px;
  2408. border-radius: 16px;
  2409. background-color: #fff;
  2410. position: fixed;
  2411. top: 100px;
  2412. left: 0;
  2413. right: 0;
  2414. margin: 0 auto;
  2415. z-index: 9999;
  2416. .title {
  2417. height: 33px;
  2418. color: rgba(16, 16, 16, 100);
  2419. font-size: 24px;
  2420. text-align: center;
  2421. padding: 16px 0;
  2422. }
  2423. .u-radio-group {
  2424. margin: 16px 5vw;
  2425. }
  2426. /deep/.u-radio {
  2427. width: 60vw !important;
  2428. padding: 24px 24px 40px;
  2429. line-height: 20px;
  2430. border-radius: 16px;
  2431. text-align: center;
  2432. border: #101010 1px solid;
  2433. margin-top: 12px;
  2434. }
  2435. /deep/ .u-radio__label {
  2436. text-align: left;
  2437. height: 24px;
  2438. // color: rgba(0, 185, 98, 100);
  2439. font-size: 24px;
  2440. }
  2441. p {
  2442. height: 22px;
  2443. color: rgba(102, 102, 102, 100);
  2444. font-size: 14px;
  2445. margin-top: 12px;
  2446. white-space: nowrap
  2447. }
  2448. .hint {
  2449. text-align: center;
  2450. }
  2451. .btn-box {
  2452. margin-top: 20px;
  2453. .choice-btn {
  2454. width: 80%;
  2455. }
  2456. }
  2457. }
  2458. .wrap {
  2459. display: flex;
  2460. align-items: center;
  2461. justify-content: center;
  2462. height: 100%;
  2463. }
  2464. // 登录提示
  2465. .login-prompt {
  2466. width: 91.4%;
  2467. height: 40px;
  2468. line-height: 40px;
  2469. border-radius: 50px;
  2470. text-align: left;
  2471. padding-left: 16px;
  2472. padding-right: 4px;
  2473. background-color: rgba(0, 0, 0, 0.6);
  2474. position: fixed;
  2475. bottom: 75px;
  2476. color: #ffffff;
  2477. .button {
  2478. width: 88px;
  2479. height: 32px;
  2480. line-height: 32px;
  2481. border-radius: 50px;
  2482. background-color: rgba(0, 185, 98, 100);
  2483. text-align: center;
  2484. float: right;
  2485. margin-top: 4px;
  2486. }
  2487. }
  2488. .showOss {
  2489. /deep/.u-model,
  2490. /deep/.u-mode-center-box {
  2491. background-color: transparent;
  2492. }
  2493. }
  2494. .carNone {
  2495. display: flex;
  2496. flex-direction: column;
  2497. justify-content: center;
  2498. align-items: center;
  2499. img {
  2500. width: 100%;
  2501. height: 100%;
  2502. }
  2503. p {
  2504. margin-top: -60px;
  2505. }
  2506. }
  2507. .shopItemName{
  2508. min-height: 30px;
  2509. }
  2510. .shopItemPrice2{
  2511. border-radius: 25px;
  2512. width: 64rpx;
  2513. height: 64rpx;
  2514. display: flex;
  2515. justify-content: center;
  2516. /* text-decoration: underline; */
  2517. color: #fff;
  2518. text-align: center;
  2519. background: linear-gradient(180deg, rgba(255,98,0,1) 0%,rgba(255,40,0,1) 100%);
  2520. }
  2521. .slogan-4 {
  2522. margin-top: 10px;
  2523. display: flex;
  2524. justify-content: center;
  2525. /* text-decoration: underline; */
  2526. text-align: center;
  2527. position: fixed;
  2528. /* top: 40px; */
  2529. bottom: 180px;
  2530. right: 20px;
  2531. height: 80rpx;
  2532. width: 80rpx;
  2533. line-height: 20px;
  2534. font-size: 16px;
  2535. background: linear-gradient(95deg, #FF9800, #FF5722);
  2536. box-shadow: 0 4rpx 24rpx 0 #FF5722;
  2537. //padding-top: 8px;
  2538. color: #fff;
  2539. border-radius: 25px;
  2540. }
  2541. .imageshake {
  2542. position: relative;
  2543. animation: shake 0.5s ease-in-out infinite;
  2544. }
  2545. @keyframes shake {
  2546. 0% { transform: rotate(0deg); }
  2547. 25% { transform: rotate(8deg); }
  2548. 50% { transform: rotate(0deg); }
  2549. 75% { transform: rotate(-8deg); }
  2550. 100% { transform: rotate(0deg); }
  2551. }
  2552. .shopList{
  2553. width: 91.4%;
  2554. margin: 8px auto 0;
  2555. border-radius: 8px;
  2556. padding: 12px 12px 12px 11px;
  2557. background-color: #fff;
  2558. display: flex;
  2559. justify-content: space-around;
  2560. flex-wrap: wrap;
  2561. .shopItem{
  2562. width: 45%;
  2563. margin: 3px;
  2564. margin-bottom: 32rpx;
  2565. .shopItemPrice{
  2566. display: flex;
  2567. justify-content: space-between;
  2568. align-items: flex-end;
  2569. .shopItemPrice1{
  2570. color: rgba(255, 40, 0, 1);
  2571. font-size: 40rpx;
  2572. text{
  2573. font-size: 24rpx
  2574. }
  2575. }
  2576. }
  2577. }
  2578. }
  2579. .options-item{
  2580. width: 100%;
  2581. // display: flex;
  2582. // justify-content: center;
  2583. background: rgb(255, 255, 255);
  2584. position: relative;
  2585. position: fixed;
  2586. left: 0;
  2587. right: 0;
  2588. top: 0;
  2589. z-index: 991;
  2590. }
  2591. .news-text {
  2592. width: 100%;
  2593. white-space: nowrap;
  2594. overflow: hidden;
  2595. text-overflow: ellipsis;
  2596. }
  2597. .rotate-animation {
  2598. animation: rotate 3s linear infinite;
  2599. }
  2600. @keyframes rotate {
  2601. from {
  2602. transform: rotate(0deg);
  2603. }
  2604. to {
  2605. transform: rotate(360deg);
  2606. }
  2607. }
  2608. </style>