index.vue 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415
  1. <template>
  2. <view style="padding-bottom: 50upx;">
  3. <view v-if="shangxian=='是'">
  4. <view class="top_view">
  5. <!-- <view class="flex justify-between padding-left-xl">
  6. <image src="../../static/upload/hometoplefttitle.png" style="width: 312rpx;height: 102rpx;"></image>
  7. <image src="../../static/upload/hometopimage.png" style="width: 329rpx;height: 151rpx;"></image>
  8. </view> -->
  9. <view>
  10. <image v-if="globalImages" :src="globalImages + 'imgs/banner.jpg'" style="width: 100%;height: 320rpx;" mode=""></image>
  11. </view>
  12. <view style="margin: 0 auto; text-align: center;" class="padding">
  13. <view style="font-size: 40rpx; font-weight: bold;">千万车主的新选择</view>
  14. <view class="flex padding" style="margin-top: 30rpx;">
  15. <view style="margin: 0 auto;">
  16. <image v-if="globalImages" :src="globalImages + 'imgs/dingdan.png'" style="width: 56rpx;height: 56rpx;" mode=""></image>
  17. <view style="font-size: 24rpx;">海量订单</view>
  18. </view>
  19. <view style="margin: 0 auto;">
  20. <image v-if="globalImages" :src="globalImages + 'imgs/hegui.png'" style="width: 56rpx;height: 56rpx;" mode=""></image>
  21. <view style="font-size: 24rpx;">合法合规</view>
  22. </view>
  23. <view style="margin: 0 auto;">
  24. <image v-if="globalImages" :src="globalImages + 'imgs/tixian (2).png'" style="width: 56rpx;height: 56rpx;" mode=""></image>
  25. <view style="font-size: 24rpx;">快速提现</view>
  26. </view>
  27. </view>
  28. </view>
  29. <view class="top_centerView">
  30. <view style="margin: 0 10rpx 20rpx;">
  31. 出发地
  32. </view>
  33. <view class="addboxs bg" style="padding: 0 30rpx;" @click="goCFAddress(1)">
  34. <view class="add_cont">
  35. <view class="green"></view>
  36. <view class="" v-if="addlist.address === ''">请选择出发地...</view>
  37. <view class="add_tit" v-else>
  38. <view class="flex align-center">
  39. 从<view class="text-cut" style="color: #346EF6;max-width: 420rpx;">
  40. {{addlist.address}}
  41. </view>出发
  42. </view>
  43. <!-- <view class="text-sm" style="color: #999999;font-weight: 500;margin-top: 5rpx;"
  44. v-if="riderNumber">
  45. 附近有{{riderNumber}}个司机
  46. </view> -->
  47. </view>
  48. </view>
  49. <view>
  50. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/go.png'" style="width: 16rpx;height: 25rpx;">
  51. </image>
  52. </view>
  53. </view>
  54. <view style="margin: 0 10rpx 20rpx;">
  55. 目的地
  56. </view>
  57. <view class="addboxs bg" style="padding: 0 30rpx;" @click="goCFAddress(2)">
  58. <view class="add_cont">
  59. <view class="orgin"></view>
  60. <view class="add_tit" v-if="addlists.address === ''">输入目的地</view>
  61. <view class="add_tit" v-else>{{addlists.address}}</view>
  62. </view>
  63. <view>
  64. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/go.png'" style="width: 16rpx;height: 25rpx;">
  65. </image>
  66. </view>
  67. </view>
  68. <view style="margin: 0 10rpx 20rpx;">
  69. 出发时间
  70. </view>
  71. <view class="flex align-center addboxs bg" style="padding: 0 30rpx;" @click="openTime()">
  72. <view class="flex align-center">
  73. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/time.png'" style="width: 34rpx;height: 34rpx;"></image>
  74. <view class="add_tit margin-left-xs" v-if="!yuyueTime">选择预约时间</view>
  75. <view class="add_tit margin-left-xs" v-else>{{yuyueTime}}</view>
  76. </view>
  77. <view class="margin-left-xs">
  78. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/right.png'" style="width: 12rpx;height: 20rpx;">
  79. </image>
  80. </view>
  81. </view>
  82. <view class="fb_btn" @tap="goSave">发布行程</view>
  83. </view>
  84. </view>
  85. <view>
  86. <view v-if="orderList && orderList.length > 0">
  87. <view class="myOrder_view">
  88. <view>您有{{orderCounts}}个正在进行中的行程</view>
  89. <view @tap="goMore('')">查看全部</view>
  90. </view>
  91. <view class="myOrder_itemView">
  92. <view class="" v-for="(item,index) in orderList" @tap="goItemDetail(item)">
  93. <view class="flex justify-between align-center">
  94. <view class="item_title">正在寻找乘客</view>
  95. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/right.png'" style="width: 16rpx;height: 25rpx;"></image>
  96. </view>
  97. <view class="flex align-center add_name" style="margin: 30rpx 0rpx 4rpx;">
  98. <view class="green"></view>{{item.shipCity}} {{item.shipAddress}}
  99. </view>
  100. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/up.png'" class="order_up"></image>
  101. <view class="flex align-center add_name">
  102. <view class="orgin"></view>{{item.deliveryCity}} {{item.deliveryAddress}}
  103. </view>
  104. <view class="item_title" style="margin-top: 26rpx;">{{item.startTime}}出发</view>
  105. <view v-if="index != orderList.length - 1" class="margin-tb-sm"
  106. style="width: 100%;height:1rpx;background: #F2F2F2;"></view>
  107. </view>
  108. </view>
  109. </view>
  110. <!-- #ifdef H5 -->
  111. <u-sticky :h5-nav-height="0" @fixed="xdCheck" @unfixed="noXDCheck">
  112. <!-- #endif -->
  113. <!-- #ifndef H5 -->
  114. <u-sticky @fixed="xdCheck" @unfixed="noXDCheck">
  115. <!-- #endif -->
  116. <view class="tab_view" id="tabSelView"
  117. :style="scrollTop == 1 ? '' : 'margin-top: 40rpx;height: 100rpx;'">
  118. <view :class="tabSel == 1 ? 'tab_items' : 'tab_item'" @tap="tabSelClick(1)">市内订单</view>
  119. <view :class="tabSel == 2 ? 'tab_items' : 'tab_item'" @tap="tabSelClick(2)">跨城订单</view>
  120. </view>
  121. <view style="background: #FFFFFF;">
  122. <u-dropdown :menu-icon='menuicon' ref="uDropdown" @open="open" @close="close"
  123. menu-icon-size="18">
  124. <u-dropdown-item v-model="value1" :title="mrtitle">
  125. <view class="slot-content">
  126. <view class=" flex flex-wrap padding">
  127. <view class="listpp" v-for="(item,index) in mrlist" :key="index"
  128. :class="mrIndex==index?'listppAct':''" @click="changeTj(item,index)">
  129. {{item.label}}
  130. </view>
  131. </view>
  132. </view>
  133. </u-dropdown-item>
  134. <u-dropdown-item v-model="value2" :title="carname">
  135. <view class="slot-content">
  136. <view class="padding">
  137. <!-- <view class="text-df text-bold">订单类型</view> -->
  138. <view class="text-df text-bold">订单类型</view>
  139. <view class="flex">
  140. <view :class="appointmentType == 0 ? 'bz_item_sel' : 'bz_item'"
  141. @tap="checkBZ(0)">
  142. 全部
  143. </view>
  144. <view :class="appointmentType == 1 ? 'bz_item_sel' : 'bz_item'"
  145. @tap="checkBZ(1)">
  146. 独享
  147. </view>
  148. <view :class="appointmentType == 2 ? 'bz_item_sel' : 'bz_item'"
  149. @tap="checkBZ(2)">
  150. 愿拼
  151. </view>
  152. </view>
  153. <view class="text-df text-bold margin-top">乘车人数</view>
  154. <view class="flex">
  155. <view :class="appointmentNum == 0 ? 'bz_item_sel' : 'bz_item'"
  156. @tap="checkBZNum(0)">
  157. 全部
  158. </view>
  159. <view :class="appointmentNum == 1 ? 'bz_item_sel' : 'bz_item'"
  160. @tap="checkBZNum(1)">
  161. 1位乘客
  162. </view>
  163. <view :class="appointmentNum == 2 ? 'bz_item_sel' : 'bz_item'"
  164. @tap="checkBZNum(2)">
  165. 2位乘客
  166. </view>
  167. <view :class="appointmentNum == 3 ? 'bz_item_sel' : 'bz_item'"
  168. @tap="checkBZNum(3)">
  169. 3位及以上乘客
  170. </view>
  171. </view>
  172. </view>
  173. </view>
  174. </u-dropdown-item>
  175. </u-dropdown>
  176. </view>
  177. </u-sticky>
  178. <view class="boxa" @click="goOrder(item)" v-for="(item,index) in list" :key="index">
  179. <view class="flex align-center justify-between" style="padding: 30rpx 30rpx 0rpx;">
  180. <view class="item_time">{{item.appointmentStartTime}}</view>
  181. <!-- <view class="item_shunlu">{{item.similarity ? item.similarity : '0'}}% <text
  182. style="font-size: 24rpx;">顺路</text> </view> -->
  183. </view>
  184. <view class="padding margin-top-xs">
  185. <view class="flex align-center justify-between" style="margin-bottom: 4rpx;">
  186. <view class="flex align-center">
  187. <view class="green"></view>
  188. <view class="item_addName">{{item.shipAddress}}</view>
  189. </view>
  190. <!-- <view class="item_juli">{{item.startDistance}}km</view> -->
  191. </view>
  192. <view class="flex align-center margin-top justify-between">
  193. <view class="flex align-center">
  194. <view class="orgin"></view>
  195. <view class="item_addName">{{item.deliveryAddress}}</view>
  196. </view>
  197. <!-- <view class="item_juli">{{item.endDistance}}km</view> -->
  198. </view>
  199. <view class="margin-top flex align-center justify-between">
  200. <view class="flex align-center">
  201. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/person.png'" style="width: 30rpx;height: 31rpx;"></image>
  202. <view style="margin-left: 16rpx;width: fit-content;" class="item_addName">
  203. {{item.appointmentNum}}人乘坐·{{item.appointmentType == 1 ? '独享' : '拼车'}}
  204. </view>
  205. </view>
  206. <!-- <view class="item_juli">订单里程{{item.kmDistance}}km</view> -->
  207. </view>
  208. </view>
  209. <view class="margin-tb-sm" style="width: 100%;height:1rpx;background: #F2F2F2;"></view>
  210. <view class="flex align-center justify-between padding-lr ">
  211. <view style="color: #FF2020;font-size: 32rpx;font-weight: bold;">
  212. <text>¥</text><text style="font-size: 42rpx;">{{item.driveMoney}}</text>
  213. </view>
  214. <view class="item_btn" @tap.stop="goOrder(item)">立即同行</view>
  215. </view>
  216. </view>
  217. <view class="empty" v-if="list.length == 0">
  218. <view style="width: 100%;margin: 0 auto;text-align: center;">
  219. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/empty.png'" style="width: 300rpx;height: 300rpx;"></image>
  220. <view style="color: #CCCCCC;" v-if="driverRouteId != ''">暂无订单内容</view>
  221. <view style="color: #CCCCCC;" v-else>请发布行程后再来查看订单信息</view>
  222. </view>
  223. </view>
  224. </view>
  225. <u-popup v-model="remkShow" mode="bottom" border-radius="40" :closeable="true">
  226. <view style="padding: 50rpx 30rpx 50rpx 30rpx;">
  227. <view class="text-lg text-bold padding-bottom-sm">出行车辆与座位数</view>
  228. <view class="bz_item_sel">
  229. {{driverPlate}}
  230. </view>
  231. <view class="text-df text-bold margin-top">乘车人数</view>
  232. <view class="flex">
  233. <view :class="personNum == 1 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZFB(1)">
  234. 1座
  235. </view>
  236. <view :class="personNum == 2 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZFB(2)">
  237. 2座
  238. </view>
  239. <view :class="personNum == 3 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZFB(3)">
  240. 3座
  241. </view>
  242. <view :class="personNum == 4 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZFB(4)">
  243. 4座
  244. </view>
  245. </view>
  246. <view class="text-df text-bold margin-top">是否有同行亲友</view>
  247. <view class="flex">
  248. <view :class="friendsType == 1 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZQY(1)">
  249. </view>
  250. <view :class="friendsType == 2 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZQY(2)">
  251. </view>
  252. </view>
  253. <view class="text-df text-bold margin-top">高速费用</view>
  254. <view class="flex">
  255. <view :class="isHighSpeedPrice == 1 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZGS(1)">
  256. 司机承担
  257. </view>
  258. <view :class="isHighSpeedPrice == 2 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZGS(2)">
  259. 乘客承担
  260. </view>
  261. <view :class="isHighSpeedPrice == 3 ? 'bz_item_sel' : 'bz_item'" @tap="checkBZGS(3)">
  262. 费用AA
  263. </view>
  264. </view>
  265. <view class="remkbtn" @click="remarkSave()">确定</view>
  266. </view>
  267. </u-popup>
  268. <u-picker :start-year="dqYear" v-model="Timeshow" mode="time" :params="params"
  269. @confirm="timeConfirm"></u-picker>
  270. <view class="soss" @click="goJinji()">
  271. <image v-if="globalImages" :src="globalImages + 'imgs/static/my/jjqz.png'" mode=""></image>
  272. </view>
  273. <view class="sosTD" v-if="orderCounts && orderCounts > 0 && scrollShow" @tap="showTD">
  274. <image v-if="globalImages && tdShow && globalImages" :src="globalImages + 'imgs/static/upload/manual.png'"></image>
  275. <image v-if="globalImages && !tdShow && globalImages" :src="globalImages + 'imgs/static/upload/auto.png'"></image>
  276. </view>
  277. <view class="sosT" v-if="orderCounts && orderCounts > 0 && !scrollShow">
  278. <image v-if="!tdShow && globalImages" :src="globalImages + 'imgs/static/upload/automaticOrder.png'" @click="goTingDan()"
  279. style="width: 149rpx;height: 65rpx;">
  280. </image>
  281. <image v-if="tdShow && globalImages" :src="globalImages + 'imgs/static/upload/manualOrder.png'" @click="goTingDan()"
  282. style="width: 149rpx;height: 65rpx;">
  283. </image>
  284. <u-line direction="col" color="#FFFFFF" length="30" />
  285. <view class="flex align-center" @click="goEditTD()">
  286. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/tdset.png'" style="width: 28rpx;height: 26rpx;"></image>
  287. <view class="sosT_text">设置</view>
  288. </view>
  289. </view>
  290. <view class="sos" @click="goTop()">
  291. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/goTop.png'" mode=""></image>
  292. </view>
  293. <view class="sos" @click="goRefers()" style="bottom: 160rpx;">
  294. <image v-if="globalImages" :src="globalImages + 'imgs/static/upload/refers.png'" mode=""></image>
  295. </view>
  296. </view>
  297. <view v-if="shangxian=='否'">
  298. <view class="flex align-center padding-lr padding-top" style="padding-top: 100rpx;">
  299. <view class="u-m-r-10">
  300. <image :src="avatar" style="width: 100rpx;height: 100rpx;border-radius: 100rpx;"
  301. @click="goNav('/pages/login/login')"></image>
  302. </view>
  303. <view class="u-flex-1 u-m-l-10 text-white r" v-if="!isLogin">
  304. <view class="" @click="goNav('/pages/login/login')">{{userName}}</view>
  305. </view>
  306. <view v-else class="text-xl u-p-l-20 text-bold" @click="goNav('/pages/login/login')">
  307. 登录
  308. </view>
  309. </view>
  310. <view class="flex align-center padding-left">
  311. <image v-if="globalImages" :src="globalImages + 'imgs/static/image/data.png'" style="width: 26upx;height: 26upx;"></image>
  312. <view class="margin-left-xs flex align-center" style="color: #999999;">
  313. <view>开始时间</view>
  314. <view>结束时间</view>
  315. </view>
  316. </view>
  317. <view class="flex align-center box text-center">
  318. <view class="">
  319. ¥<text class="text-bold text-xl">0</text>
  320. <view>总收益</view>
  321. </view>
  322. <view class="" style="margin-left:180upx">
  323. <text class="text-bold text-xl">0</text>
  324. <view>用户评分</view>
  325. </view>
  326. </view>
  327. <view style="padding: 30upx 30upx;">
  328. <view class="text-bold text-lg margin-bottom-sm flex justify-between">
  329. <view>接单管理</view>
  330. <view>
  331. <text style="color: #666666;font-size: 26upx;margin-right: 10upx;">查看全部</text>
  332. </view>
  333. </view>
  334. <view class="orderbox ">
  335. <view class="">
  336. <text class="text-bold text-xl">0</text>
  337. <view class="margin-top-xs">待完成</view>
  338. </view>
  339. <view class="">
  340. <text class="text-bold text-xl">0</text>
  341. <view class="margin-top-xs">已完成</view>
  342. </view>
  343. <view class="">
  344. <text class="text-bold text-xl">0</text>
  345. <view class="margin-top-xs">已评价</view>
  346. </view>
  347. </view>
  348. </view>
  349. <view style="padding: 30upx 30upx;">
  350. <view class="text-bold text-lg margin-bottom-sm flex justify-between">
  351. <view>今日订单</view>
  352. <view>
  353. <text style="color: #666666;font-size: 26upx;margin-right: 10upx;">查看全部</text>
  354. </view>
  355. </view>
  356. <view class="orderbox ">
  357. <view class="">
  358. <text class="text-bold text-xl">0</text>
  359. <view class="margin-top-xs">待完成</view>
  360. </view>
  361. <view class="">
  362. <text class="text-bold text-xl">0</text>
  363. <view class="margin-top-xs">已完成</view>
  364. </view>
  365. <view class="">
  366. <text class="text-bold text-xl">0</text>
  367. <view class="margin-top-xs">已评价</view>
  368. </view>
  369. </view>
  370. </view>
  371. </view>
  372. </view>
  373. </template>
  374. <script>
  375. import empty from '@/components/empty'
  376. import { waitForGlobalImages } from '@/utils/globalImageLoader'
  377. export default {
  378. components: {
  379. empty
  380. },
  381. onShareAppMessage(res) { //发送给朋友
  382. return {
  383. title: this.tuiguang,
  384. path: '/pages/index/index',
  385. imageUrl: this.tuiguangImg,
  386. }
  387. },
  388. onShareTimeline(res) { //分享到朋友圈
  389. return {
  390. title: this.tuiguang,
  391. path: '/pages/index/index',
  392. imageUrl: this.tuiguangImg,
  393. }
  394. },
  395. data() {
  396. return {
  397. avatar:'/static/logo.png',
  398. isLogin: true,
  399. userName: '匿名',
  400. isHighSpeedPrice: 0,
  401. tdShow: false,
  402. dqYear: '',
  403. orderCounts: 0,
  404. orderList: [],
  405. friendsType: 0,
  406. remkShow: false,
  407. personNum: 0,
  408. appointmentNum: 0,
  409. appointmentType: '',
  410. shangxian: '',
  411. pricetit: '全部目的地',
  412. carname: '高级筛选',
  413. value1: 1,
  414. value2: 2,
  415. value3: 1,
  416. value4: 2,
  417. menuicon: 'arrow-down-fill',
  418. mrtitle: '智能筛选',
  419. mrlist: [{
  420. label: '智能排序',
  421. value: 0,
  422. }, {
  423. label: '最早出发',
  424. value: 1,
  425. }, {
  426. label: '价格最高',
  427. value: 2,
  428. }, {
  429. label: '起点最近',
  430. value: 3,
  431. }],
  432. mrIndex: 0,
  433. driverRouteId: '',
  434. params: {
  435. year: true,
  436. month: true,
  437. day: true,
  438. hour: true,
  439. minute: true,
  440. second: false
  441. },
  442. Timeshow: false,
  443. tabSel: 1,
  444. addlist: {
  445. address: ''
  446. }, //出发地址
  447. addressId: '',
  448. addlists: {
  449. address: ''
  450. }, //目的地
  451. addressIds: "",
  452. yuyueTime: '',
  453. tuiguang: '',
  454. tuiguangImg: '',
  455. time: '',
  456. indent: {},
  457. latitude: '',
  458. longitude: '',
  459. province: '',
  460. city: '',
  461. district: '',
  462. list: [],
  463. page: 1,
  464. driverPlate: '',
  465. checkCertification: 0, //是否实名 状态 1待审核 2已通过 3已拒绝
  466. cashDeposit: 0, //缴纳保证金
  467. onLineFlag: 1, //1上线 2下线
  468. arr: [],
  469. showModal1: true,
  470. riderLine: 0,
  471. tabList: [{
  472. name: '即时代驾',
  473. id: 1
  474. },
  475. {
  476. name: '包时代驾',
  477. id: 1
  478. },
  479. {
  480. name: '朋友代叫',
  481. id: 2
  482. },
  483. {
  484. name: '预约代驾',
  485. id: 3
  486. }
  487. ],
  488. bfShow: false,
  489. userId: '',
  490. current: 0,
  491. isDrop: false, //是否打开下拉筛选
  492. isVip: false, //是否是会员
  493. scrollTop: 0,
  494. scrollShow: false,
  495. globalImages: ''
  496. }
  497. },
  498. onHide() {
  499. // clearInterval(this.time)
  500. },
  501. onLoad(e) {
  502. waitForGlobalImages().then((path) => {
  503. console.log('✅ 全局图片路径:', path)
  504. this.globalImages = path
  505. })
  506. let that = this
  507. // #ifdef MP-WEIXIN
  508. if (e.scene) {
  509. const scene = decodeURIComponent(e.scene);
  510. if (scene.split('=')[0].indexOf('userId') != -1) {
  511. let riderUserId = scene.split('=')[1]
  512. that.$queue.setData('riderUserId', riderUserId);
  513. } else {
  514. that.$queue.setData('inviterCode', scene.split(',')[0]);
  515. }
  516. }
  517. // #endif
  518. // 获取邀请码保存到本地
  519. if (e.invitation) {
  520. that.$queue.setData('inviterCode', e.invitation);
  521. }
  522. this.$Request.getT('/app/common/type/284').then(res => {
  523. if (res.code === 0) {
  524. // #ifdef MP-WEIXIN
  525. uni.setStorageSync('shangxian', res.data.value)
  526. // #endif
  527. // #ifndef MP-WEIXIN
  528. uni.setStorageSync('shangxian', '否')
  529. // #endif
  530. this.shangxian = uni.getStorageSync('shangxian')
  531. }
  532. });
  533. let timeNow = new Date();
  534. timeNow.setMinutes(timeNow.getMinutes() + 30);
  535. this.dqYear = timeNow.getFullYear()
  536. this.yuyueTime =
  537. `${this.padZero(timeNow.getMonth() + 1)}月${this.padZero(timeNow.getDate())}日${this.padZero(timeNow.getHours())}:${this.padZero(timeNow.getMinutes())}`;
  538. // this.yuyueTime = e.month + '月' + e.day + '日' + ' ' + e.hour + ':' + e.minute
  539. let sysInfo = uni.getSystemInfoSync()
  540. let tabbarHeight = sysInfo.screenHeight - sysInfo.safeArea.bottom
  541. console.log(tabbarHeight, '2222222')
  542. that.userId = uni.getStorageSync('userId')
  543. // that.shouru()
  544. // that.getNewOrder()
  545. uni.getLocation({
  546. // #ifdef APP
  547. type: 'wgs84',
  548. // #endif
  549. // #ifndef APP
  550. type: 'gcj02', //wgs84 gcj02
  551. // #endif
  552. success: function(res) {
  553. console.log(res, '获取经纬度')
  554. that.latitude = res.latitude
  555. that.longitude = res.longitude
  556. that.addlist.lng = res.longitude
  557. that.addlist.lat = res.latitude
  558. uni.setStorageSync('latitude', res.latitude)
  559. uni.setStorageSync('longitude', res.longitude)
  560. let data = {
  561. lat: res.latitude,
  562. lng: res.longitude
  563. }
  564. that.$Request.getT('/app/Login/selectCity', data).then(res => {
  565. if (res.code === 0) {
  566. that.province = res.data.province
  567. that.city = res.data.city
  568. that.district = res.data.district
  569. uni.setStorageSync('cityName', res.data.city)
  570. that.addlist.address = res.data.address
  571. that.addlist.province = res.data.province
  572. that.addlist.city = res.data.city
  573. that.addlist.district = res.data.district
  574. that.taskData()
  575. that.getLocation()
  576. }
  577. });
  578. that.getUserInfo()
  579. },
  580. fail: function(ree) {
  581. console.log(ree, '获取地址失败')
  582. if (uni.getStorageSync('latitude') && uni.getStorageSync('longitude')) {
  583. that.latitude = uni.getStorageSync('latitude')
  584. that.longitude = uni.getStorageSync('longitude')
  585. that.getUserInfo()
  586. that.getLocation()
  587. }
  588. // else {
  589. // uni.startLocationUpdate({
  590. // type: 'gcj02', //gcj02 wgs84
  591. // isHighAccuracy: true, //开启高精度定位(!!!必需)
  592. // geocode: true,
  593. // success: res => {
  594. // uni.onLocationChange(function(res2) {
  595. // console.log('实时纬度:' + res2.latitude);
  596. // console.log('实时经度:' + res2.longitude);
  597. // that.latitude = res2.latitude
  598. // that.longitude = res2.longitude
  599. // uni.setStorageSync('latitude', that.latitude)
  600. // uni.setStorageSync('longitude', that.longitude)
  601. // let data = {
  602. // lat: res.latitude,
  603. // lng: res.longitude
  604. // }
  605. // that.$Request.getT('/app/Login/selectCity', data)
  606. // .then(
  607. // res => {
  608. // if (res.code === 0) {
  609. // that.province = res.data.province
  610. // that.city = res.data.city
  611. // that.district = res.data.district
  612. // that.getLocation()
  613. // }
  614. // });
  615. // that.getUserInfo()
  616. // });
  617. // },
  618. // fail: err => {
  619. // // clearInterval(this.ordertimer)
  620. // console.error('开启小程序接收位置消息失败:', err)
  621. // },
  622. // complete: msg => {
  623. // // clearInterval(this.ordertimer)
  624. // console.log('调用开启小程序接收位置消息 API 完成')
  625. // }
  626. // });
  627. // }
  628. }
  629. });
  630. if (that.userId) {
  631. that.time = setInterval(function() {
  632. // that.getNewOrder()
  633. uni.getLocation({
  634. // #ifdef APP
  635. type: 'wgs84',
  636. // #endif
  637. // #ifndef APP
  638. type: 'gcj02', //wgs84 gcj02
  639. // #endif
  640. success: function(res) {
  641. console.log(res, '获取经纬度')
  642. that.latitude = res.latitude
  643. that.longitude = res.longitude
  644. uni.setStorageSync('latitude', res.latitude)
  645. uni.setStorageSync('longitude', res.longitude)
  646. let data = {
  647. lat: res.latitude,
  648. lng: res.longitude
  649. }
  650. that.$Request.getT('/app/Login/selectCity', data).then(res => {
  651. if (res.code === 0) {
  652. that.province = res.data.province
  653. that.city = res.data.city
  654. uni.setStorageSync('cityName', res.data.city)
  655. that.district = res.data.district
  656. that.getLocation()
  657. }
  658. });
  659. // that.getUserInfo()
  660. },
  661. fail: function() {
  662. console.log('获取地址失败')
  663. if (uni.getStorageSync('latitude') && uni.getStorageSync('longitude')) {
  664. that.latitude = uni.getStorageSync('latitude')
  665. that.longitude = uni.getStorageSync('longitude')
  666. // that.getUserInfo()
  667. that.getLocation()
  668. } else {
  669. // that.getUserInfo()
  670. // that.getLocation()
  671. uni.startLocationUpdate({
  672. // #ifdef APP
  673. type: 'wgs84',
  674. // #endif
  675. // #ifndef APP
  676. type: 'gcj02', //wgs84 gcj02
  677. // #endif
  678. isHighAccuracy: true, //开启高精度定位(!!!必需)
  679. geocode: true,
  680. success: res => {
  681. uni.onLocationChange(function(res2) {
  682. console.log('实时纬度:' + res2.latitude);
  683. console.log('实时经度:' + res2.longitude);
  684. that.latitude = res2.latitude
  685. that.longitude = res2.longitude
  686. uni.setStorageSync('latitude', that
  687. .latitude)
  688. uni.setStorageSync('longitude', that
  689. .longitude)
  690. let data = {
  691. lat: res.latitude,
  692. lng: res.longitude
  693. }
  694. that.$Request.getT(
  695. '/app/Login/selectCity',
  696. data).then(res => {
  697. if (res.code === 0) {
  698. that.province = res
  699. .data
  700. .province
  701. that.city = res.data
  702. .city
  703. that.district = res
  704. .data
  705. .district
  706. that.getLocation()
  707. }
  708. });
  709. // that.getUserInfo()
  710. });
  711. },
  712. fail: err => {
  713. // clearInterval(this.ordertimer)
  714. console.error('开启小程序接收位置消息失败:', err)
  715. },
  716. complete: msg => {
  717. // clearInterval(this.ordertimer)
  718. console.log('调用开启小程序接收位置消息 API 完成')
  719. }
  720. });
  721. }
  722. }
  723. });
  724. }, 10000)
  725. }
  726. },
  727. onShow() {
  728. this.$Request.getT('/app/common/type/358').then(res => {
  729. if (res.code === 0) {
  730. uni.setStorageSync('tuiguang', res.data.value)
  731. this.tuiguang = res.data.value;
  732. }
  733. });
  734. this.$Request.getT('/app/common/type/357').then(res => {
  735. if (res.code === 0) {
  736. uni.setStorageSync('tuiguangImg', res.data.value)
  737. this.tuiguangImg = res.data.value;
  738. }
  739. });
  740. let that = this
  741. that.$Request.getT('/app/common/type/428').then(res => { //师傅端小程序订单状态通知 428
  742. if (res.code == 0) {
  743. if (res.data && res.data.value) {
  744. that.arr.push(res.data.value)
  745. }
  746. }
  747. })
  748. that.$Request.getT('/app/common/type/429').then(res => { //师傅端小程序新订单通知 429
  749. if (res.code == 0) {
  750. if (res.data && res.data.value) {
  751. that.arr.push(res.data.value)
  752. }
  753. }
  754. })
  755. that.userId = uni.getStorageSync('userId')
  756. if (that.userId) {
  757. that.getMyOrderList();
  758. that.getUserInfo()
  759. // that.shouru()
  760. if (that.showModal1) {
  761. // #ifdef MP-WEIXIN
  762. that.openMsg()
  763. // #endif
  764. }
  765. } else {
  766. this.userId = ''
  767. this.orderCounts = 0;
  768. this.orderList = []
  769. this.list = []
  770. this.isVip = false
  771. clearInterval(that.time)
  772. clearInterval(that.timeTD)
  773. this.tdShow = false
  774. this.indent = {}
  775. }
  776. },
  777. onPageScroll(e) {
  778. // e.scrollTop 是页面在垂直方向已滚动的距离(单位px)
  779. this.scrollShow = true;
  780. },
  781. methods: {
  782. showTD() {
  783. this.scrollShow = false;
  784. },
  785. getMassgeList() {
  786. let that = this;
  787. this.$Request.getT('/app/message/selectMessageByUserId?state=13&isSee=0&page=1&limit=1').then(res => {
  788. if (res.code == 0 && res.data) {
  789. if (res.data.records && res.data.records.length > 0) {
  790. if (res.data.records[0].content) {
  791. clearInterval(that.timeTD)
  792. const innerAudioContext = uni.createInnerAudioContext();
  793. innerAudioContext.autoplay = true;
  794. innerAudioContext.src = res.data.records[0].content;
  795. innerAudioContext.onPlay(() => {
  796. console.log('开始播放');
  797. });
  798. innerAudioContext.onEnded(() => {
  799. that.timeTD = setInterval(function() {
  800. that.getMassgeList();
  801. }, 3000);
  802. });
  803. that.page = 1;
  804. that.getMyOrderList();
  805. that.getUserInfo()
  806. }
  807. }
  808. }
  809. });
  810. },
  811. goTingDan() {
  812. let that = this;
  813. if (!this.tdShow) {
  814. that.tdShow = true
  815. let driverId = this.$queue.getData('driverId');
  816. let city = that.city ? that.city : ''
  817. let data = {
  818. isListeningOrders: 1,
  819. driverId: driverId,
  820. city: city,
  821. latitude: that.latitude,
  822. longitude: that.longitude
  823. }
  824. that.$queue.showLoading('设置中...')
  825. that.$Request.postJson('/app/driver/updateDriver', data).then(res => {
  826. uni.hideLoading();
  827. if (res.code == 0) {
  828. that.$queue.showToast('开始听单!')
  829. setTimeout(d => {
  830. that.timeTD = setInterval(function() {
  831. console.log(that.bfShow, "13456")
  832. that.getMassgeList();
  833. }, 5000);
  834. }, 1500)
  835. } else {
  836. that.$queue.showToast(res.msg)
  837. }
  838. });
  839. } else {
  840. let driverId = this.$queue.getData('driverId');
  841. let city = that.city ? that.city : ''
  842. let data = {
  843. isListeningOrders: 1,
  844. driverId: driverId,
  845. city: city,
  846. latitude: that.latitude,
  847. longitude: that.longitude
  848. }
  849. that.$queue.showLoading('设置中...')
  850. that.$Request.postJson('/app/driver/updateDriver', data).then(res => {
  851. uni.hideLoading();
  852. if (res.code == 0) {
  853. that.tdShow = false
  854. that.$queue.showToast('已结束听单!')
  855. clearInterval(that.timeTD)
  856. } else {
  857. that.$queue.showToast(res.msg)
  858. }
  859. });
  860. }
  861. },
  862. goEditTD() {
  863. if (!this.userId) {
  864. uni.navigateTo({
  865. url: '/pages/login/login'
  866. })
  867. return;
  868. }
  869. uni.navigateTo({
  870. url: '/my/order/tdSet'
  871. });
  872. },
  873. goTop() {
  874. uni.pageScrollTo({
  875. scrollTop: 0,
  876. duration: 300
  877. });
  878. },
  879. goRefers() {
  880. if (this.userId) {
  881. this.$queue.showLoading('刷新中...')
  882. this.page = 1;
  883. this.getMyOrderList();
  884. this.getUserInfo()
  885. } else {
  886. this.orderCounts = 0;
  887. this.orderList = []
  888. this.list = []
  889. this.isVip = false
  890. clearInterval(that.time)
  891. this.indent = {}
  892. }
  893. },
  894. getMyOrderList() {
  895. this.$Request.getT('/app/driverRoute/selectDriverRouteListByUserId?page=1&limit=2').then(red => {
  896. if (red.code == 0 && red.data) {
  897. this.orderList = red.data.records;
  898. this.orderCounts = red.data.total;
  899. if (red.data.records && red.data.records.length > 0) {
  900. this.driverRouteId = red.data.records[0].driverRouteId;
  901. // this.addlist.province = red.data.records[0].shipProvince;
  902. // this.addlist.city = red.data.records[0].shipCity;
  903. // this.addlist.district = red.data.records[0].shipDistrict;
  904. // this.addlist.lng = red.data.records[0].shipAddressLongitude;
  905. // this.addlist.lat = red.data.records[0].shipAddressLatitude;
  906. // this.addlist.address = red.data.records[0].shipAddress;
  907. // this.addlists.province = red.data.records[0].deliveryProvince;
  908. // this.addlists.city = red.data.records[0].deliveryCity;
  909. // this.addlists.district = red.data.records[0].deliveryDistrict;
  910. // this.addlists.lng = red.data.records[0].deliveryAddressLongitude;
  911. // this.addlists.lat = red.data.records[0].deliveryAddressLatitude;
  912. // this.addlists.address = red.data.records[0].deliveryAddress;
  913. // this.yuyueTime = red.data.records[0].startTime;
  914. this.$queue.setData('driverRouteId', red.data.records[0].driverRouteId)
  915. this.taskData();
  916. }
  917. }
  918. uni.hideLoading();
  919. });
  920. },
  921. remarkSave() {
  922. this.remkShow = false;
  923. if (this.friendsType < 1 || this.personNum < 1) {
  924. this.$queue.showToast('请选择乘车人数和是否有亲友同行!')
  925. return;
  926. }
  927. if (this.isHighSpeedPrice < 1) {
  928. this.$queue.showToast('请选择是否承担高速费用!')
  929. return;
  930. }
  931. this.$queue.showLoading('提交中...')
  932. let driverId = this.$queue.getData('driverId');
  933. let userId = this.$queue.getData('userId');
  934. let data = {
  935. driverId: driverId,
  936. shipProvince: this.addlist.province,
  937. shipCity: this.addlist.city,
  938. shipDistrict: this.addlist.district,
  939. shipAddressLongitude: this.addlist.lng,
  940. shipAddressLatitude: this.addlist.lat,
  941. shipAddress: this.addlist.address,
  942. deliveryProvince: this.addlists.province,
  943. deliveryCity: this.addlists.city,
  944. isHighSpeedPrice: this.isHighSpeedPrice,
  945. seatNum: this.personNum,
  946. isFriends: this.friendsType,
  947. deliveryDistrict: this.addlists.district,
  948. deliveryAddressLongitude: this.addlists.lng,
  949. deliveryAddressLatitude: this.addlists.lat,
  950. deliveryAddress: this.addlists.address,
  951. startTime: this.yuyueTime,
  952. userId: userId
  953. }
  954. this.$Request.postJson('/app/driverRoute/insertDriverRoute', data).then(
  955. res => {
  956. uni.hideLoading();
  957. if (res.code == 0) {
  958. this.addlists.address = '';
  959. let timeNow = new Date();
  960. timeNow.setMinutes(timeNow.getMinutes() + 30);
  961. this.dqYear = timeNow.getFullYear()
  962. this.yuyueTime =
  963. `${this.padZero(timeNow.getMonth() + 1)}月${this.padZero(timeNow.getDate())}日${this.padZero(timeNow.getHours())}:${this.padZero(timeNow.getMinutes())}`;
  964. this.$queue.showToast('发布成功!');
  965. this.getUserInfo();
  966. this.getMyOrderList();
  967. } else {
  968. this.$queue.showToast(res.msg);
  969. }
  970. })
  971. },
  972. //获取正在进行的订单数量
  973. getMasterHaveOrder() {
  974. // this.$Request.getT('/app/orders/getMasterHaveOrder').then(res=>{
  975. // if(res.code == 0){
  976. // }
  977. // })
  978. return new Promise((resolve, reject) => {
  979. this.$Request.getT('/app/orders/getMasterHaveOrder').then(res => {
  980. if (res.code == 0) {
  981. resolve(res.data); // 假设你要获取的数据在res.data中,这里根据实际情况修改
  982. } else {
  983. reject(res);
  984. }
  985. }).catch(error => {
  986. reject(error);
  987. });
  988. });
  989. },
  990. goJinji() {
  991. uni.navigateTo({
  992. url: '/my/setting/jinji'
  993. })
  994. },
  995. open(index) {
  996. console.log('open', index)
  997. this.$refs.uDropdown.highlight();
  998. this.isDrop = true
  999. },
  1000. close(index) {
  1001. console.log('close', index)
  1002. // 关闭的时候,给当前项加上高亮
  1003. // 当然,您也可以通过监听dropdown-item的@change事件进行处理
  1004. this.$refs.uDropdown.highlight(index);
  1005. this.isDrop = false
  1006. },
  1007. timeConfirm(e) {
  1008. this.yuyueTime = e.month + '月' + e.day + '日' + '' + e.hour + ':' + e.minute
  1009. },
  1010. openTime() {
  1011. this.Timeshow = true
  1012. },
  1013. goCFAddress(index) {
  1014. let that = this
  1015. uni.chooseLocation({
  1016. success: function(res) {
  1017. console.log('位置名称:' + res.name);
  1018. console.log('详细地址:' + res.address);
  1019. console.log('纬度:' + res.latitude);
  1020. console.log('经度:' + res.longitude);
  1021. if (index == 1) {
  1022. that.addlist.address = res.name
  1023. that.addlist.lng = res.longitude
  1024. that.addlist.lat = res.latitude
  1025. let data = {
  1026. lat: res.latitude,
  1027. lng: res.longitude
  1028. }
  1029. that.$Request.getT('/app/Login/selectCity', data).then(res => {
  1030. if (res.code === 0) {
  1031. that.addlist.province = res.data.province
  1032. that.addlist.city = res.data.city
  1033. that.addlist.district = res.data.district
  1034. }
  1035. });
  1036. } else if (index == 2) {
  1037. that.addlists.address = res.name
  1038. that.addlists.lng = res.longitude
  1039. that.addlists.lat = res.latitude
  1040. let data = {
  1041. lat: res.latitude,
  1042. lng: res.longitude
  1043. }
  1044. that.$Request.getT('/app/Login/selectCity', data).then(res => {
  1045. if (res.code === 0) {
  1046. that.addlists.province = res.data.province
  1047. that.addlists.city = res.data.city
  1048. that.addlists.district = res.data.district
  1049. }
  1050. });
  1051. }
  1052. }
  1053. });
  1054. },
  1055. //时间格式转换
  1056. padZero(num) {
  1057. return num < 10 ? `0${num}` : num;
  1058. },
  1059. change(index) {
  1060. if (uni.getStorageSync('token')) {
  1061. this.current = index
  1062. this.taskData()
  1063. }
  1064. },
  1065. // 今日收入、订单量
  1066. shouru() {
  1067. // this.$Request.getT('/app/orders/findIncome').then(res => {
  1068. // if (res.code == 0) {
  1069. // this.indent = res.data
  1070. // }
  1071. // console.log('res', res)
  1072. // });
  1073. },
  1074. getNewOrder() {
  1075. this.$Request.getT('/app/message/getOrderMessage').then(res => {
  1076. if (res.code == 0) {
  1077. if (res.data > 0) {
  1078. // this.aplayAudio()
  1079. }
  1080. }
  1081. });
  1082. },
  1083. //接单池刷新
  1084. aplayAudio() {
  1085. // console.log('语音提示')
  1086. // const innerAudioContext = uni.createInnerAudioContext();
  1087. // innerAudioContext.autoplay = true;
  1088. // // innerAudioContext.src ='../../static/mpc/order.mp3';
  1089. // innerAudioContext.src =
  1090. // 'https://pw.xianmxkj.com/file/uploadPath/2022/01/19/0753211f78d718d44ee6372e33eae9ee.mp3';
  1091. // innerAudioContext.onPlay(() => {
  1092. // console.log('开始播放');
  1093. // });
  1094. // innerAudioContext.onError((res) => {
  1095. // console.log(res.errMsg);
  1096. // console.log(res.errCode);
  1097. // });
  1098. },
  1099. // 获取个人信息
  1100. getUserInfo() {
  1101. let userId = this.$queue.getData('userId');
  1102. if (!userId) {
  1103. return;
  1104. }
  1105. this.$Request.getT("/app/user/selectUserDetails?userId=" + userId).then(res => {
  1106. if (res.code == 0) {
  1107. this.$nextTick(function() {
  1108. // this.checkCertification = res.data.checkCertification
  1109. this.cashDeposit = res.data.cashDeposit
  1110. this.onLineFlag = res.data.onLineFlag
  1111. this.riderLine = res.data.riderLine
  1112. if (res.data.isVip && res.data.isVip == 1) {
  1113. this.isVip = true
  1114. } else {
  1115. this.isVip = false
  1116. }
  1117. })
  1118. } else {
  1119. this.$queue.logout();
  1120. uni.showModal({
  1121. showCancel: false,
  1122. title: '登录失败',
  1123. content: res.msg,
  1124. });
  1125. }
  1126. });
  1127. this.$Request.getT('/app/driver/selectDriverByUserId?userId=' + userId).then(res => {
  1128. if (res.code == 0 && res.data) {
  1129. this.checkCertification = res.data.status
  1130. this.driverPlate = res.data.driverPlate
  1131. if (this.checkCertification && this.checkCertification == 2) {
  1132. // this.$Request.getT('/app/driverRoute/selectDriverRouteByUserId?userId=' + userId).then(
  1133. // red => {
  1134. // if (red.code == 0 && red.data) {
  1135. // this.driverRouteId = red.data.driverRouteId;
  1136. // this.addlist.province = red.data.shipProvince;
  1137. // this.addlist.city = red.data.shipCity;
  1138. // this.addlist.district = red.data.shipDistrict;
  1139. // this.addlist.lng = red.data.shipAddressLongitude;
  1140. // this.addlist.lat = red.data.shipAddressLatitude;
  1141. // this.addlist.address = red.data.shipAddress;
  1142. // this.addlists.province = red.data.deliveryProvince;
  1143. // this.addlists.city = red.data.deliveryCity;
  1144. // this.addlists.district = red.data.deliveryDistrict;
  1145. // this.addlists.lng = red.data.deliveryAddressLongitude;
  1146. // this.addlists.lat = red.data.deliveryAddressLatitude;
  1147. // this.addlists.address = red.data.deliveryAddress;
  1148. // this.yuyueTime = red.data.startTime;
  1149. // this.$queue.setData('driverRouteId', red.data.driverRouteId)
  1150. // this.taskData();
  1151. // }
  1152. // })
  1153. }
  1154. uni.setStorageSync('checkCertification', res.data.status)
  1155. uni.setStorageSync('driverId', res.data.driverId)
  1156. }
  1157. })
  1158. },
  1159. async goCloseSave() {
  1160. let data = await this.getMasterHaveOrder()
  1161. console.log(data, '22222222222222')
  1162. if (data > 0) {
  1163. uni.showModal({
  1164. title: '提示',
  1165. content: '有订单正在进行中,无法取消当前行程',
  1166. showCancel: false
  1167. })
  1168. return
  1169. }
  1170. if (this.isDrop) {
  1171. this.$refs.uDropdown.close();
  1172. }
  1173. let that = this;
  1174. uni.showModal({
  1175. title: '提示',
  1176. content: '确认取消发布行程吗?',
  1177. cancelText: '取消',
  1178. confirmText: '确认',
  1179. complete: function(ret) {
  1180. if (ret.confirm) {
  1181. let data = {
  1182. driverRouteId: that.driverRouteId
  1183. }
  1184. that.$Request.postT('/app/driverRoute/deleteDriverRoute', data).then(res => {
  1185. if (res.code == 0) {
  1186. that.addlist.address = ''
  1187. that.addlists.address = ''
  1188. that.driverRouteId = ''
  1189. that.$queue.removeItem('driverRouteId')
  1190. that.list = []
  1191. that.page = 1;
  1192. that.$queue.showToast('取消成功!');
  1193. let timeNow = new Date();
  1194. that.yuyueTime =
  1195. `${that.padZero(timeNow.getMonth() + 1)}月${that.padZero(timeNow.getDate())}日${that.padZero(timeNow.getHours())}:${that.padZero(timeNow.getMinutes())}`;
  1196. } else {
  1197. that.$queue.showToast(res.msg);
  1198. }
  1199. });
  1200. }
  1201. }
  1202. })
  1203. },
  1204. goItemDetail(item) {
  1205. if (!this.userId) {
  1206. uni.navigateTo({
  1207. url: '/pages/login/login'
  1208. })
  1209. return;
  1210. }
  1211. uni.navigateTo({
  1212. url: '/my/order/myOrderDetail?driverRouteId=' + item.driverRouteId
  1213. });
  1214. },
  1215. goMore(indentNumber) {
  1216. if (!this.userId) {
  1217. uni.navigateTo({
  1218. url: '/pages/login/login'
  1219. })
  1220. return;
  1221. }
  1222. if (this.orderCounts < 1) {
  1223. this.$queue.showToast('请发布行程后再来查看吧!')
  1224. return;
  1225. }
  1226. uni.navigateTo({
  1227. url: '/my/order/myOrderList?indentNumber=' + indentNumber
  1228. });
  1229. },
  1230. goSave() {
  1231. // this.$refs.uDropdown.close();
  1232. if (this.userId) {
  1233. if (this.addlist.address === '') {
  1234. this.$queue.showToast('请选择出发地址!')
  1235. return;
  1236. }
  1237. if (this.addlists.address === '') {
  1238. this.$queue.showToast('请选择目的地!')
  1239. return;
  1240. }
  1241. if (this.yuyueTime === '') {
  1242. this.$queue.showToast('请选择预约时间!')
  1243. return;
  1244. }
  1245. if (this.checkCertification == 2) {
  1246. this.$Request.getT('/app/common/type/261').then(res => {
  1247. if (res.code === 0) {
  1248. let baozhengjin = res.data.value;
  1249. if (uni.getStorageSync('isBindung') == '是') {
  1250. if ((Number(this.cashDeposit) < Number(baozhengjin))) {
  1251. uni.showModal({
  1252. title: '提示',
  1253. content: '保证金不足,请先缴纳保证金后再发单',
  1254. success: function(res) {
  1255. if (res.confirm) {
  1256. console.log('用户点击确定');
  1257. uni.navigateTo({
  1258. url: '/my/wallet/baozhengjin'
  1259. })
  1260. } else if (res.cancel) {
  1261. console.log('用户点击取消');
  1262. }
  1263. }
  1264. });
  1265. return
  1266. }
  1267. }
  1268. this.remkShow = true;
  1269. }
  1270. });
  1271. } else if (this.checkCertification == 1) {
  1272. uni.showToast({
  1273. title: '实名认证审核中,请稍等...',
  1274. icon: 'none'
  1275. })
  1276. return
  1277. } else {
  1278. uni.showModal({
  1279. title: '提示',
  1280. content: '请先实名认证后再发单',
  1281. success: function(res) {
  1282. if (res.confirm) {
  1283. console.log('用户点击确定');
  1284. uni.navigateTo({
  1285. url: '/my/renzheng/index'
  1286. })
  1287. } else if (res.cancel) {
  1288. console.log('用户点击取消');
  1289. }
  1290. }
  1291. });
  1292. return;
  1293. }
  1294. } else {
  1295. uni.navigateTo({
  1296. url: '/pages/login/login'
  1297. })
  1298. }
  1299. },
  1300. goOrder(e) {
  1301. if (this.userId) {
  1302. if (this.checkCertification == 2) {
  1303. this.$Request.getT('/app/common/type/261').then(res => {
  1304. if (res.code === 0) {
  1305. let baozhengjin = res.data.value;
  1306. // console.log((Number(this.cashDeposit) - Number(baozhengjin))>0)
  1307. // return
  1308. if (uni.getStorageSync('isBindung') == '是') {
  1309. if ((Number(this.cashDeposit) >= Number(baozhengjin))) {
  1310. // uni.navigateTo({
  1311. // url: '/pages/index/orderDet?indentNumber=' + e.ordersId
  1312. // })
  1313. this.goMore(e.ordersId);
  1314. } else {
  1315. uni.showModal({
  1316. title: '提示',
  1317. content: '保证金不足,请先缴纳保证金后再接单',
  1318. success: function(res) {
  1319. if (res.confirm) {
  1320. console.log('用户点击确定');
  1321. uni.navigateTo({
  1322. url: '/my/wallet/baozhengjin'
  1323. })
  1324. } else if (res.cancel) {
  1325. console.log('用户点击取消');
  1326. }
  1327. }
  1328. });
  1329. }
  1330. } else {
  1331. this.goMore(e.ordersId);
  1332. // uni.navigateTo({
  1333. // url: '/pages/index/orderDet?indentNumber=' + e.ordersId
  1334. // })
  1335. }
  1336. }
  1337. });
  1338. } else if (this.checkCertification == 1) {
  1339. uni.showToast({
  1340. title: '实名认证审核中,请稍等...',
  1341. icon: 'none'
  1342. })
  1343. return
  1344. } else if (this.checkCertification == '' || this.checkCertification == null) {
  1345. uni.showModal({
  1346. title: '提示',
  1347. content: '请先实名认证后再接单',
  1348. success: function(res) {
  1349. if (res.confirm) {
  1350. console.log('用户点击确定');
  1351. uni.navigateTo({
  1352. url: '/my/renzheng/index'
  1353. })
  1354. } else if (res.cancel) {
  1355. console.log('用户点击取消');
  1356. }
  1357. }
  1358. });
  1359. return;
  1360. }
  1361. } else {
  1362. uni.navigateTo({
  1363. url: '/pages/login/login'
  1364. })
  1365. }
  1366. },
  1367. checkBZGS(index) {
  1368. this.isHighSpeedPrice = index;
  1369. },
  1370. checkBZQY(index) {
  1371. this.friendsType = index;
  1372. },
  1373. checkBZFB(index) {
  1374. this.personNum = index;
  1375. },
  1376. checkBZNum(index) {
  1377. this.appointmentNum = index
  1378. this.page = 1;
  1379. this.taskData()
  1380. },
  1381. checkBZ(index) {
  1382. this.appointmentType = index
  1383. this.page = 1;
  1384. this.taskData()
  1385. },
  1386. changeTj(item, index) {
  1387. this.$refs.uDropdown.close();
  1388. this.mrIndex = index
  1389. this.page = 1;
  1390. this.taskData()
  1391. },
  1392. xdCheck(e) {
  1393. this.scrollTop = 1;
  1394. console.log('吸顶')
  1395. },
  1396. noXDCheck(e) {
  1397. this.scrollTop = 0;
  1398. console.log('no吸顶')
  1399. },
  1400. tabSelClick(index) {
  1401. this.tabSel = index;
  1402. this.page = 1;
  1403. this.taskData()
  1404. },
  1405. // 获取新任务数据
  1406. taskData() {
  1407. // if (this.orderCounts < 1) {
  1408. // uni.hideLoading();
  1409. // uni.stopPullDownRefresh();
  1410. // return;
  1411. // }
  1412. let shipProvince = this.province
  1413. let shipCity = this.city
  1414. let orderType = 1;
  1415. if (this.tabSel == 2) { //跨市
  1416. shipProvince = '';
  1417. shipCity = '';
  1418. orderType = 2;
  1419. }
  1420. let sort = this.mrIndex ? this.mrIndex : '';
  1421. let userId = this.$queue.getData('userId');
  1422. let data = {
  1423. page: this.page,
  1424. limit: 10,
  1425. od: this.latitude,
  1426. ol: this.longitude,
  1427. appointmentType: this.appointmentType ? this.appointmentType : '',
  1428. appointmentNum: this.appointmentNum ? this.appointmentNum : '',
  1429. shipProvince: shipProvince,
  1430. driverUserId: userId,
  1431. shipCity: shipCity,
  1432. orderType: orderType,
  1433. status: 2,
  1434. sort: sort
  1435. }
  1436. this.$Request.getT('/app/orders/selectOrdersList', data).then(res => {
  1437. uni.hideLoading()
  1438. if (res.code == 0) {
  1439. if (this.page == 1) {
  1440. this.list = res.data.list
  1441. } else {
  1442. this.list = [...this.list, ...res.data.list]
  1443. }
  1444. }
  1445. uni.stopPullDownRefresh();
  1446. });
  1447. },
  1448. // 接单成功语音播放
  1449. // aplayAudios() {
  1450. // // console.log('语音提示')
  1451. // const innerAudioContext = uni.createInnerAudioContext();
  1452. // innerAudioContext.autoplay = true;
  1453. // innerAudioContext.src =
  1454. // 'https://pw.xianmxkj.com/file/uploadPath/2022/03/15/c096db4257ecc2547814d4f51c6518bd.mp3';
  1455. // innerAudioContext.onPlay(() => {
  1456. // console.log('开始播放');
  1457. // });
  1458. // innerAudioContext.onError((res) => {
  1459. // console.log(res.errMsg);
  1460. // console.log(res.errCode);
  1461. // });
  1462. // },
  1463. // 上传师傅位置
  1464. getLocation() {
  1465. if (!this.userId) {
  1466. return;
  1467. }
  1468. if (this.orderCounts < 1) {
  1469. return;
  1470. }
  1471. let data = {
  1472. lng: this.longitude,
  1473. lat: this.latitude,
  1474. userId: this.userId,
  1475. province: this.province,
  1476. city: this.city,
  1477. district: this.district,
  1478. }
  1479. this.$Request.getT('/timedtask/riderLocation', data).then(res => {
  1480. if (res.code == 0) {
  1481. console.log('上传师傅位置')
  1482. }
  1483. });
  1484. },
  1485. //接单
  1486. jiedan(item) {
  1487. // #ifdef MP-WEIXIN
  1488. if (uni.getStorageSync('sendMsg')) {
  1489. uni.requestSubscribeMessage({
  1490. tmplIds: this.arr,
  1491. success(re) {
  1492. // console.log(re,'**********')
  1493. var datas = JSON.stringify(re);
  1494. if (datas.indexOf("accept") != -1) {
  1495. console.log(re)
  1496. }
  1497. },
  1498. fail: (res) => {
  1499. console.log(res)
  1500. }
  1501. })
  1502. }
  1503. // #endif
  1504. if (this.isDrop) {
  1505. this.$refs.uDropdown.close();
  1506. }
  1507. if (this.userId) {
  1508. if (uni.getStorageSync('isOpenVip') == '是') {
  1509. if (this.isVip == false) {
  1510. uni.showModal({
  1511. title: '提示',
  1512. content: '开通会员后可接单',
  1513. confirmText: '开通会员',
  1514. complete(ret) {
  1515. if (ret.confirm) {
  1516. uni.navigateTo({
  1517. url: '/my/vip/vip'
  1518. })
  1519. }
  1520. }
  1521. })
  1522. return
  1523. }
  1524. }
  1525. if (this.checkCertification == 2) {
  1526. this.$Request.getT('/app/common/type/261').then(res => {
  1527. if (res.code === 0) {
  1528. let baozhengjin = res.data.value;
  1529. let that = this
  1530. console.log((Number(this.cashDeposit) >= Number(baozhengjin)))
  1531. // return
  1532. if (uni.getStorageSync('isBindung') == '是') {
  1533. if ((Number(this.cashDeposit) >= Number(baozhengjin))) {
  1534. uni.showModal({
  1535. title: '提示',
  1536. content: '确定抢单吗?',
  1537. success: function(res) {
  1538. if (res.confirm) {
  1539. // console.log('用户点击确定');
  1540. that.$Request.postT(
  1541. '/app/orders/takingOrders?ordersId=' +
  1542. item.ordersId + '&userId=' + that.userId +
  1543. '&driverRouteId=' + that.driverRouteId)
  1544. .then(res => {
  1545. if (res.code == 0) {
  1546. that.taskData()
  1547. uni.showToast({
  1548. title: '接单成功',
  1549. icon: 'none'
  1550. })
  1551. setTimeout(function() {
  1552. uni.switchTab({
  1553. url: '/pages/order/order'
  1554. })
  1555. }, 1000)
  1556. } else {
  1557. that.taskData()
  1558. uni.showToast({
  1559. title: res.msg,
  1560. icon: 'none',
  1561. duration: 1500
  1562. })
  1563. }
  1564. });
  1565. } else if (res.cancel) {
  1566. // console.log('用户点击取消');
  1567. }
  1568. }
  1569. });
  1570. } else {
  1571. uni.showModal({
  1572. title: '提示',
  1573. content: '还未缴纳保证金,请先去缴纳保证金',
  1574. success: function(res) {
  1575. if (res.confirm) {
  1576. console.log('用户点击确定');
  1577. uni.navigateTo({
  1578. url: '/my/wallet/baozhengjin'
  1579. })
  1580. } else if (res.cancel) {
  1581. console.log('用户点击取消');
  1582. }
  1583. }
  1584. });
  1585. }
  1586. } else {
  1587. uni.showModal({
  1588. title: '提示',
  1589. content: '确定抢单吗?',
  1590. success: function(res) {
  1591. if (res.confirm) {
  1592. // console.log('用户点击确定');
  1593. that.$Request.postT(
  1594. '/app/orders/takingOrders?ordersId=' +
  1595. item.ordersId + '&userId=' + that.userId +
  1596. '&driverRouteId=' + that.driverRouteId)
  1597. .then(res => {
  1598. if (res.code == 0) {
  1599. that.taskData()
  1600. uni.showToast({
  1601. title: '接单成功',
  1602. icon: 'none'
  1603. })
  1604. setTimeout(function() {
  1605. uni.switchTab({
  1606. url: '/pages/order/order'
  1607. })
  1608. }, 1000)
  1609. } else {
  1610. that.taskData()
  1611. uni.showToast({
  1612. title: res.msg,
  1613. icon: 'none',
  1614. duration: 1500
  1615. })
  1616. }
  1617. });
  1618. } else if (res.cancel) {
  1619. // console.log('用户点击取消');
  1620. }
  1621. }
  1622. });
  1623. }
  1624. }
  1625. });
  1626. } else if (this.checkCertification == 1) {
  1627. uni.showToast({
  1628. title: '实名认证审核中,请稍等...',
  1629. icon: 'none'
  1630. })
  1631. return
  1632. } else if (this.checkCertification == '' || this.checkCertification == null) {
  1633. uni.showModal({
  1634. title: '提示',
  1635. content: '请先实名认证后再接单',
  1636. success: function(res) {
  1637. if (res.confirm) {
  1638. console.log('用户点击确定');
  1639. uni.navigateTo({
  1640. url: '/my/renzheng/index'
  1641. })
  1642. } else if (res.cancel) {
  1643. console.log('用户点击取消');
  1644. }
  1645. }
  1646. });
  1647. return;
  1648. }
  1649. } else {
  1650. uni.navigateTo({
  1651. url: '/pages/login/login'
  1652. })
  1653. }
  1654. },
  1655. goNav(e,) {
  1656. console.log(e)
  1657. if (this.userId) {
  1658. uni.navigateTo({
  1659. url: e
  1660. })
  1661. } else {
  1662. uni.showModal({
  1663. title: '提示',
  1664. content: '您还未登录,请先登录',
  1665. success: function(res) {
  1666. if (res.confirm) {
  1667. uni.navigateTo({
  1668. url: '/pages/login/login'
  1669. })
  1670. } else if (res.cancel) {
  1671. console.log('用户点击取消');
  1672. }
  1673. }
  1674. })
  1675. }
  1676. },
  1677. // 开启订阅消息
  1678. openMsg() {
  1679. console.log('订阅消息')
  1680. var that = this
  1681. uni.getSetting({
  1682. withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
  1683. success(ret) {
  1684. console.log(ret.subscriptionsSetting, '------------------')
  1685. // if (ret.subscriptionsSetting.itemSettings && Object.keys(ret.subscriptionsSetting.itemSettings).length == 2) {
  1686. if (ret.subscriptionsSetting.itemSettings) {
  1687. uni.setStorageSync('sendMsg', true)
  1688. uni.openSetting({ // 打开设置页
  1689. success(rea) {
  1690. console.log(rea.authSetting)
  1691. }
  1692. });
  1693. } else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
  1694. console.log(99999)
  1695. uni.setStorageSync('sendMsg', false)
  1696. uni.showModal({
  1697. title: '提示',
  1698. content: '为了更好的体验,请绑定消息推送',
  1699. confirmText: '确定',
  1700. cancelText: '取消',
  1701. success: function(res) {
  1702. if (res.confirm) {
  1703. console.log(that.arr)
  1704. wx.requestSubscribeMessage({
  1705. tmplIds: that.arr,
  1706. success(re) {
  1707. console.log(JSON.stringify(re),
  1708. '++++++++++++++')
  1709. var datas = JSON.stringify(re);
  1710. if (datas.indexOf("accept") != -1) {
  1711. console.log(re)
  1712. // uni.setStorageSync('sendMsg', true)
  1713. }
  1714. },
  1715. fail: (res) => {
  1716. console.log(res)
  1717. }
  1718. })
  1719. // uni.setStorageSync('sendMsg', true)
  1720. console.log('确认')
  1721. that.showModal1 = false
  1722. } else if (res.cancel) {
  1723. console.log('取消')
  1724. // uni.setStorageSync('sendMsg', false)
  1725. that.showModal1 = true
  1726. }
  1727. }
  1728. })
  1729. }
  1730. }
  1731. })
  1732. }
  1733. },
  1734. // 上拉加载
  1735. onReachBottom: function() {
  1736. if (this.userId) {
  1737. this.page = this.page + 1;
  1738. this.taskData();
  1739. }
  1740. },
  1741. onPullDownRefresh: function() {
  1742. // #ifdef MP-WEIXIN
  1743. if (uni.getStorageSync('sendMsg')) {
  1744. uni.requestSubscribeMessage({
  1745. tmplIds: this.arr,
  1746. success(re) {
  1747. // console.log(re,'**********')
  1748. var datas = JSON.stringify(re);
  1749. if (datas.indexOf("accept") != -1) {
  1750. console.log(re)
  1751. }
  1752. },
  1753. fail: (res) => {
  1754. console.log(res)
  1755. }
  1756. })
  1757. }
  1758. // #endif
  1759. if (this.userId) {
  1760. this.page = 1;
  1761. this.taskData();
  1762. } else {
  1763. uni.hideLoading();
  1764. uni.stopPullDownRefresh();
  1765. }
  1766. },
  1767. }
  1768. </script>
  1769. <style lang="less">
  1770. page {
  1771. background: #F5F5F5;
  1772. }
  1773. ::v-deep .u-sticky {
  1774. background-color: #F5F5F5;
  1775. }
  1776. .sosTD {
  1777. width: 140rpx;
  1778. height: 80rpx;
  1779. position: fixed;
  1780. bottom: 160rpx;
  1781. left: 32rpx;
  1782. z-index: 99;
  1783. image {
  1784. width: 80rpx;
  1785. height: 80rpx;
  1786. }
  1787. }
  1788. .sosT {
  1789. width: 390rpx;
  1790. position: fixed;
  1791. bottom: 160rpx;
  1792. left: 25%;
  1793. background: #25262A;
  1794. padding: 20rpx;
  1795. z-index: 99;
  1796. font-family: Source Han Sans CN;
  1797. font-weight: 500;
  1798. font-size: 26rpx;
  1799. color: #FFFFFF;
  1800. border-radius: 45px;
  1801. display: flex;
  1802. justify-content: space-between;
  1803. padding: 15rpx 30rpx;
  1804. align-items: center;
  1805. .sosT_text {
  1806. font-family: Source Han Sans CN;
  1807. font-weight: 500;
  1808. font-size: 26rpx;
  1809. color: #FFFFFF;
  1810. margin-left: 10rpx;
  1811. }
  1812. }
  1813. .soss {
  1814. width: 70rpx;
  1815. height: 70rpx;
  1816. position: fixed;
  1817. bottom: 290rpx;
  1818. left: 32rpx;
  1819. z-index: 99;
  1820. image {
  1821. width: 70rpx;
  1822. height: 70rpx;
  1823. }
  1824. }
  1825. .sos {
  1826. width: 100rpx;
  1827. height: 100rpx;
  1828. position: fixed;
  1829. bottom: 290rpx;
  1830. right: 32rpx;
  1831. z-index: 99;
  1832. image {
  1833. width: 100rpx;
  1834. height: 100rpx;
  1835. border-radius: 50%;
  1836. }
  1837. }
  1838. .labelsx {
  1839. padding: 0 30rpx;
  1840. .scroll-view_H {
  1841. white-space: nowrap;
  1842. width: 100%;
  1843. }
  1844. .scroll-view-item_labe {
  1845. display: inline-block;
  1846. // width: 20%;
  1847. padding: 0 35rpx;
  1848. // width: 121rpx;
  1849. height: 60rpx;
  1850. background: #FFFFFF;
  1851. border-radius: 8rpx;
  1852. text-align: center;
  1853. font-size: 24rpx;
  1854. font-family: PingFang SC;
  1855. font-weight: 500;
  1856. color: #333333;
  1857. // line-height: 60rpx;
  1858. margin-right: 20rpx;
  1859. display: inline-flex;
  1860. align-items: center;
  1861. justify-content: center;
  1862. }
  1863. .scroll-view-item_labeAct {
  1864. background: #EAF9FF;
  1865. color: #00c18a;
  1866. }
  1867. }
  1868. // 价格 车龄筛选
  1869. .slot-content {
  1870. border-radius: 0rpx 0rpx 32rpx 32rpx;
  1871. padding-bottom: 30rpx;
  1872. background: #FFFFFF;
  1873. .listpp {
  1874. // text-align: center;
  1875. padding: 0rpx 20rpx;
  1876. // width: 150rpx;
  1877. height: 60rpx;
  1878. background: #F7F8FC;
  1879. border-radius: 8rpx;
  1880. display: flex;
  1881. align-items: center;
  1882. justify-content: center;
  1883. margin-right: 20rpx;
  1884. margin-bottom: 20rpx;
  1885. font-size: 24rpx;
  1886. font-family: PingFang SC;
  1887. font-weight: 500;
  1888. color: #171717;
  1889. }
  1890. .listppAct {
  1891. padding: 0rpx 20rpx;
  1892. height: 60rpx;
  1893. display: flex;
  1894. align-items: center;
  1895. justify-content: center;
  1896. background: #e8fbf6;
  1897. border: 1px solid #00c18a;
  1898. border-radius: 8rpx;
  1899. font-size: 24rpx;
  1900. font-family: PingFang SC;
  1901. font-weight: 500;
  1902. color: #00c18a;
  1903. }
  1904. .btn {
  1905. background: #00c18a;
  1906. color: #FFF;
  1907. padding: 20rpx 0;
  1908. text-align: center;
  1909. }
  1910. }
  1911. .empty {
  1912. width: 100%;
  1913. background: #ffffff;
  1914. height: 600rpx;
  1915. // margin-top: 20rpx;
  1916. padding-top: 60rpx;
  1917. }
  1918. .item_addName {
  1919. font-family: PingFang SC;
  1920. font-weight: 600;
  1921. font-size: 28rpx;
  1922. color: #1A1A1A;
  1923. width: 520rpx;
  1924. white-space: nowrap;
  1925. text-overflow: ellipsis;
  1926. overflow: hidden;
  1927. }
  1928. .item_juli {
  1929. font-family: PingFang SC;
  1930. font-weight: 500;
  1931. font-size: 26rpx;
  1932. color: #999999;
  1933. }
  1934. .item_btn {
  1935. width: 150rpx;
  1936. height: 58rpx;
  1937. background: #00c18a;
  1938. border-radius: 29rpx;
  1939. text-align: center;
  1940. line-height: 58rpx;
  1941. font-family: PingFang SC;
  1942. font-weight: 500;
  1943. font-size: 24rpx;
  1944. color: #FFFFFF;
  1945. }
  1946. .tab_view {
  1947. width: 750rpx;
  1948. background: #F3F5F9;
  1949. display: flex;
  1950. // margin-top: 40rpx;
  1951. .tab_item {
  1952. width: 375rpx;
  1953. height: 100rpx;
  1954. background: #F3F5F9;
  1955. border-radius: 24rpx 24rpx 0px 0px;
  1956. text-align: center;
  1957. line-height: 100rpx;
  1958. font-family: Source Han Sans CN;
  1959. font-weight: bold;
  1960. font-size: 28rpx;
  1961. color: #999999;
  1962. }
  1963. .tab_items {
  1964. width: 375rpx;
  1965. height: 100rpx;
  1966. background: #FFFFFF;
  1967. border-radius: 24rpx 24rpx 0px 0px;
  1968. text-align: center;
  1969. line-height: 100rpx;
  1970. font-family: Source Han Sans CN;
  1971. font-weight: bold;
  1972. font-size: 28rpx;
  1973. color: #333333;
  1974. }
  1975. }
  1976. .addboxs {
  1977. display: flex;
  1978. align-items: center;
  1979. justify-content: space-between;
  1980. margin: 0 10rpx 30rpx;
  1981. height: 80rpx;
  1982. border-radius: 16rpx;
  1983. .add_cont {
  1984. display: flex;
  1985. align-items: center;
  1986. }
  1987. .add_tit {
  1988. font-size: 30rpx;
  1989. font-family: PingFang SC;
  1990. font-weight: bold;
  1991. color: #333333;
  1992. margin-left: 10rpx;
  1993. }
  1994. }
  1995. .bg {
  1996. // background: #FFFFFF;
  1997. background: #f5f5f5;
  1998. border-radius: 16rpx;
  1999. border: 1px solid #f5f5f5;
  2000. }
  2001. .bgc {
  2002. // background: #FFFFFF;
  2003. }
  2004. .myOrder_view {
  2005. width: 686rpx;
  2006. height: 120rpx;
  2007. background: #e8fbf6;
  2008. border-radius: 32rpx 32rpx 0px 0px;
  2009. margin: 0 auto;
  2010. margin-top: 30rpx;
  2011. display: flex;
  2012. justify-content: space-between;
  2013. font-family: Source Han Sans CN;
  2014. font-weight: 500;
  2015. font-size: 26rpx;
  2016. color: #00c18a;
  2017. padding: 30rpx;
  2018. }
  2019. .myOrder_itemView {
  2020. width: 686rpx;
  2021. // height: 549rpx;
  2022. background: #FFFFFF;
  2023. border-radius: 32rpx;
  2024. margin: 0 auto;
  2025. margin-top: -30rpx;
  2026. padding: 30rpx 40rpx;
  2027. .item_title {
  2028. font-family: Source Han Sans CN;
  2029. font-weight: 600;
  2030. font-size: 32rpx;
  2031. color: #242424;
  2032. }
  2033. }
  2034. .order_up {
  2035. width: 6rpx;
  2036. height: 24rpx;
  2037. margin-left: 6rpx;
  2038. }
  2039. .green {
  2040. width: 16rpx;
  2041. height: 16rpx;
  2042. background: #1FC657;
  2043. border-radius: 50%;
  2044. margin-right: 20rpx;
  2045. }
  2046. .orgin {
  2047. width: 16rpx;
  2048. height: 16rpx;
  2049. background: #FBAC04;
  2050. border-radius: 50%;
  2051. margin-right: 20rpx;
  2052. }
  2053. .fb_btn {
  2054. width: 592rpx;
  2055. height: 80rpx;
  2056. background: #00c18a;
  2057. border-radius: 16rpx;
  2058. margin: 0 auto;
  2059. margin-top: 40rpx;
  2060. font-family: PingFang SC;
  2061. font-weight: 800;
  2062. font-size: 28rpx;
  2063. color: #FFFFFF;
  2064. text-align: center;
  2065. line-height: 80rpx;
  2066. }
  2067. .bz_item {
  2068. width: fit-content;
  2069. padding: 18rpx 30rpx;
  2070. // height: 71rpx;
  2071. background: #FFFFFF;
  2072. border-radius: 24rpx;
  2073. border: 1px solid #CCCCCC;
  2074. font-family: PingFang SC;
  2075. font-weight: 500;
  2076. font-size: 24rpx;
  2077. color: #030303;
  2078. margin-top: 20rpx;
  2079. margin-right: 20rpx;
  2080. }
  2081. .bz_item_sel {
  2082. width: fit-content;
  2083. padding: 18rpx 30rpx;
  2084. // height: 71rpx;
  2085. background: #FFFFFF;
  2086. border-radius: 24rpx;
  2087. border: 1px solid #00c18a;
  2088. font-family: PingFang SC;
  2089. font-weight: 500;
  2090. font-size: 24rpx;
  2091. color: #00c18a;
  2092. margin-top: 20rpx;
  2093. margin-right: 20rpx;
  2094. }
  2095. .remkbtn {
  2096. width: 100%;
  2097. height: 98rpx;
  2098. background: #346EF6;
  2099. border-radius: 16rpx;
  2100. font-size: 28rpx;
  2101. font-family: PingFang SC;
  2102. font-weight: bold;
  2103. color: #FFFFFF;
  2104. display: flex;
  2105. align-items: center;
  2106. justify-content: center;
  2107. line-height: 98rpx;
  2108. margin-top: 40rpx;
  2109. }
  2110. .top_view {
  2111. width: 750rpx;
  2112. // height: 681rpx;
  2113. // background: linear-gradient(80deg, #3670F6 0%, #8EB0FF 100%);
  2114. // background: linear-gradient(to bottom, #3670F6 0%, #8EB0FF 70%, #F5F5F5 90%);
  2115. // padding-top: 100rpx;
  2116. .top_centerView {
  2117. width: 686rpx;
  2118. // height: 409rpx;
  2119. background: #FFFFFF;
  2120. border-radius: 20rpx;
  2121. margin: 0 auto;
  2122. // margin-top: 40rpx;
  2123. padding: 20rpx 20rpx 40rpx;
  2124. }
  2125. }
  2126. .maps {
  2127. width: 100%;
  2128. height: 100vh;
  2129. position: fixed;
  2130. top: 0;
  2131. z-index: 1;
  2132. }
  2133. .bottomBtn {
  2134. position: fixed;
  2135. bottom: 88rpx;
  2136. right: 20rpx;
  2137. z-index: 10;
  2138. .bottomBtn-img {
  2139. width: 100rpx;
  2140. height: 100rpx;
  2141. border-radius: 50%;
  2142. }
  2143. }
  2144. .orderInfoNum {
  2145. width: 100%;
  2146. height: auto;
  2147. background-color: #F5F5F5;
  2148. padding: 30rpx 0;
  2149. .orderInfoNum-box {
  2150. width: 686rpx;
  2151. height: 100%;
  2152. background-color: #FFFFFF;
  2153. border-radius: 24rpx;
  2154. padding: 20rpx;
  2155. }
  2156. .orderInfoNum-box-title {
  2157. width: 100%;
  2158. text-align: center;
  2159. font-weight: bold;
  2160. font-size: 30rpx;
  2161. }
  2162. .orderInfoNum-box-num {
  2163. margin-top: 20rpx;
  2164. text-align: center;
  2165. }
  2166. .orderInfoNum-box-num-item-top {
  2167. font-size: 26rpx;
  2168. font-weight: bold;
  2169. }
  2170. .orderInfoNum-box-num-item-txt {
  2171. color: #999999;
  2172. font-size: 24rpx;
  2173. }
  2174. }
  2175. .boxa {
  2176. background: #FFFFFF;
  2177. border-radius: 24rpx;
  2178. margin: 0 30rpx;
  2179. // padding: 30rpx 0;
  2180. margin-top: 30rpx;
  2181. padding-bottom: 20rpx;
  2182. // margin-bottom: 30rpx;
  2183. .item_time {
  2184. font-family: Source Han Sans CN;
  2185. font-weight: bold;
  2186. font-size: 28rpx;
  2187. color: #242424;
  2188. }
  2189. .item_shunlu {
  2190. width: 210rpx;
  2191. height: 80rpx;
  2192. background: #EFF4FF;
  2193. border-radius: 0px 24rpx 0px 50rpx;
  2194. text-align: center;
  2195. line-height: 80rpx;
  2196. font-family: Source Han Sans CN;
  2197. font-weight: bold;
  2198. font-size: 32rpx;
  2199. color: #346EF6;
  2200. }
  2201. .addbox {
  2202. display: flex;
  2203. align-items: center;
  2204. justify-content: space-between;
  2205. padding: 0 30rpx;
  2206. height: 110rpx;
  2207. border-radius: 16rpx;
  2208. }
  2209. .add_cont {
  2210. display: flex;
  2211. align-items: center;
  2212. }
  2213. .add_tit {
  2214. font-size: 30rpx;
  2215. font-family: PingFang SC;
  2216. font-weight: bold;
  2217. color: #333333;
  2218. }
  2219. .bg {
  2220. background: #F5F5F5;
  2221. }
  2222. .bgs {
  2223. background: #F5F8FF;
  2224. }
  2225. .green {
  2226. width: 16rpx;
  2227. height: 16rpx;
  2228. background: #1FC657;
  2229. border-radius: 50%;
  2230. margin-right: 20rpx;
  2231. }
  2232. .orgin {
  2233. width: 16rpx;
  2234. height: 16rpx;
  2235. background: #FBAC04;
  2236. border-radius: 50%;
  2237. margin-right: 20rpx;
  2238. }
  2239. .btn {
  2240. height: 78rpx;
  2241. background: linear-gradient(87deg, #346EF6 0%, #7BA2FF 100%);
  2242. border-radius: 4rpx;
  2243. font-size: 28rpx;
  2244. font-family: PingFang SC;
  2245. font-weight: bold;
  2246. color: #FFFFFF;
  2247. margin: 30rpx 30rpx 0;
  2248. display: flex;
  2249. align-items: center;
  2250. justify-content: center;
  2251. }
  2252. }
  2253. .box {
  2254. width: 690upx;
  2255. margin: 0 auto;
  2256. height: 120rpx;
  2257. background: #557EFD;
  2258. border-radius: 16upx 16upx 0px 0px;
  2259. color: #FFFFFF;
  2260. padding: 0upx 30upx;
  2261. margin-top: 20upx;
  2262. }
  2263. .orderbox {
  2264. width: 690upx;
  2265. margin: 0 auto;
  2266. height: 153upx;
  2267. background: #FAFAFA;
  2268. border-radius: 16upx;
  2269. display: flex;
  2270. align-items: center;
  2271. justify-content: space-between;
  2272. text-align: center;
  2273. padding: 0upx 30upx;
  2274. }
  2275. </style>