index.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587
  1. <template>
  2. <view class="pages" style="position: relative">
  3. <view style="position: fixed; top: 0; left: 0; right: 0; z-index: 99; width: 100%" class="bg">
  4. <view class="flex bg justify-between padding-lr-xl">
  5. <view @click="switchTab(2)" :class="orderType == 2 ? 'select' : ''" class="tabBtn" v-if="XCXIsSelect == '是'">
  6. <view class="title">外卖配送</view>
  7. <view :class="orderType == 2 ? 'active' : ''"></view>
  8. </view>
  9. <view @click="switchTab(1)" :class="orderType == 1 ? 'select' : ''" class="tabBtn" v-if="XCXIsSelect == '是'">
  10. <view class="title">到店取餐</view>
  11. <view :class="orderType == 1 ? 'active' : ''"></view>
  12. </view>
  13. <view @click="switchTab(3)" :class="orderType == 3 ? 'select' : ''" class="tabBtn" v-if="XCXIsSelect == '是'">
  14. <view class="title">跑腿订单</view>
  15. <view :class="orderType == 3 ? 'active' : ''"></view>
  16. </view>
  17. </view>
  18. <view>
  19. <u-tabs v-if="orderType == 1" active-color="#FCD202" :list="qucanList" :is-scroll="true" :current="current" @change="change"></u-tabs>
  20. <u-tabs v-if="orderType == 2" active-color="#FCD202" :list="waimaiList" :is-scroll="true" :current="current1" @change="change1"></u-tabs>
  21. <u-tabs v-if="orderType == 3" :list="paotuiList" :is-scroll="true" active-color="#FCD202" :current="current2" @change="change2"></u-tabs>
  22. </view>
  23. </view>
  24. <!-- 全部订单 -->
  25. <view class="cont_one" v-if="orderType != 3 && XCXIsSelect == '是'">
  26. <view v-for="(item, index) in orderList" :key="index" @click="goNav('/pages/order/takefood?orderId=' + item.orderId + '&shopId=' + item.shopId)">
  27. <view class="cont" v-if="item.orderType == 1">
  28. <view class="order_title" v-if="item.expectDeliveryTime">预约订单:{{ item.expectDeliveryTime }}送达</view>
  29. <view class="order_success">
  30. <view class="order_name" v-if="item.status == 6">制作中</view>
  31. <view class="order_name" v-if="item.status == 3">待取餐</view>
  32. <view class="order_name" v-if="item.status == 4">已完成</view>
  33. <view class="order_name" v-if="item.status == 5">已取消</view>
  34. <view class="order_name" v-if="item.status == 7">待接单</view>
  35. <view class="order_name" v-if="item.status == 8">已取消</view>
  36. <view class="order_data">{{ item.payTime }}</view>
  37. </view>
  38. <u-line color="#E6E6E6" />
  39. <view class="cont_two_top">
  40. <view class="text-lg text-bold text-black flex align-center">
  41. <image :src="item.shopCover" style="width: 80rpx; height: 80rpx; border-radius: 80rpx" mode=""></image>
  42. <view class="margin-left-xs">{{ item.shopName }}</view>
  43. </view>
  44. </view>
  45. <view style="padding: 0 30rpx; font-size: 20px" v-if="item.orderSequence">#{{ item.orderSequence }}</view>
  46. <view class="cont_two_text">{{ item.orderCode }}</view>
  47. <view class="cont_two_text2" v-if="item.status == 6">
  48. 前面还有
  49. <text>{{ item.countOrder }}</text>
  50. 个人排队
  51. </view>
  52. <!-- <view class="cont_two_bottom">
  53. <view class="cont_two_bottom_le">点餐详情</view>
  54. <view class="cont_two_bottom_ri">
  55. <image src="../../static/images/order/right1.png" mode=""></image>
  56. </view>
  57. </view> -->
  58. <u-line color="#E6E6E6" />
  59. <view class="flex justify-between align-center padding-lr-sm padding-tb-sm">
  60. <view class="text-sm text-gray">
  61. 实收
  62. <text class="text-lg text-bold text-black margin-left-xs">¥{{ item.payMoney }}</text>
  63. </view>
  64. <view class="flex padding-tb-sm">
  65. <view v-if="item.status == 7" class="btn" @click.stop="cancel(item)">取消订单</view>
  66. </view>
  67. <view v-if="item.status == 4 && item.commentFlag != 1" class="btn" @click.stop="pingjia(item)">评价订单</view>
  68. </view>
  69. </view>
  70. <view class="cont" v-if="item.orderType == 2">
  71. <view class="order_title" v-if="item.expectDeliveryTime">预约订单:{{ item.expectDeliveryTime }}送达</view>
  72. <view class="order_success">
  73. <view class="order_name" v-if="item.status == 3">
  74. 配送中
  75. <text style="color: #666666; margin-left: 10upx">{{ item.autoSendOrder == 1 ? '商家配送' : '平台配送' }}</text>
  76. </view>
  77. <view class="order_name" v-if="item.status == 4">已完成</view>
  78. <view class="order_name" v-if="item.status == 5">已取消</view>
  79. <view class="order_name" v-if="item.status == 6">制作中</view>
  80. <view class="order_name" v-if="item.status == 7">待接单</view>
  81. <view class="order_name" v-if="item.status == 8">已取消</view>
  82. <view class="order_name" v-if="item.status == 13">待骑手接单</view>
  83. <view class="order_data">{{ item.payTime }}</view>
  84. </view>
  85. <u-line color="#E6E6E6" />
  86. <view class="flex justify-between padding align-center">
  87. <view class="text-lg text-bold text-black flex align-center">
  88. <image :src="item.shopCover" style="width: 80rpx; height: 80rpx; border-radius: 80rpx" mode=""></image>
  89. <view class="margin-left-xs">{{ item.shopName }}</view>
  90. <view class="margin-left-xs" @click.stop="bindphone(item.shopPhone)">{{ item.shopPhone }}</view>
  91. </view>
  92. </view>
  93. <view style="padding: 0 30rpx; font-size: 20px" v-if="item.orderSequence">#{{ item.orderSequence }}</view>
  94. <view style="padding: 0 30rpx; font-size: 20px">
  95. {{ item.orderTypeExtra == 1 ? '到店取餐' : item.orderTypeExtra == 2 ? '骑手配送' : item.orderTypeExtra == 3 ? '商家配送' : '' }}
  96. </view>
  97. <view v-if="item.riderNickName" style="padding: 0 30rpx; font-size: 20px">骑手姓名:{{ item.riderNickName }}</view>
  98. <view v-if="item.riderPhone" style="padding: 0 30rpx; font-size: 20px" @click.stop="bindphone(item.riderPhone)">骑手电话:{{ item.riderPhone }}</view>
  99. <view class="">
  100. <view class="padding-lr margin-tb-sm" v-for="(ite, ind) in item.orderGoodsList" :key="ind">
  101. <view class="flex">
  102. <image :src="ite.goodsPicture[0]" mode="" style="width: 120rpx; height: 120rpx; border-radius: 10rpx"></image>
  103. <view class="margin-left-sm flex flex-direction justify-between">
  104. <view class="text-black text-bold text-lg">{{ ite.goodsName }}</view>
  105. <view class="text-gray text-sm" v-if="ite.skuMessage">{{ ite.skuMessage }}</view>
  106. </view>
  107. </view>
  108. </view>
  109. </view>
  110. <u-line color="#E6E6E6" />
  111. <view class="flex justify-between align-center padding-lr-sm">
  112. <view class="text-sm text-gray">
  113. 实收
  114. <text class="text-lg text-bold text-black margin-left-xs">¥{{ item.payMoney }}</text>
  115. </view>
  116. <view class="flex padding-tb-sm">
  117. <view v-if="item.status == 3" class="btn" @click.stop="finish(item)">确认收货</view>
  118. <!-- item.status == 6|| -->
  119. <view v-if="item.status == 7" class="btn" @click.stop="cancel(item)">取消订单</view>
  120. <view v-if="item.status == 4 && item.commentFlag != 1" class="btn" @click.stop="pingjia(item)">评价订单</view>
  121. <view class="btn_" @click.stop="goShop(item.shopId)">再来一单</view>
  122. </view>
  123. </view>
  124. </view>
  125. </view>
  126. <empty v-if="!orderList.length" style="z-index: 0"></empty>
  127. </view>
  128. <view v-if="orderType == 3" style="margin-top: 160rpx">
  129. <view>
  130. <view class="order_box" v-for="(item, index) in order" :key="index" @click="bindorderDetail(item.indentNumber)">
  131. <view class="order_success">
  132. <view class="order_name" v-if="item.indentState == 0">待付款</view>
  133. <view class="order_name" v-if="item.indentState == 1 || item.indentState == 8 || item.indentState == 9 || item.indentState == 10">已取消</view>
  134. <view class="order_name" v-if="item.indentState == 2">待接单</view>
  135. <view class="order_name" v-if="item.indentState == 5">待确认</view>
  136. <view class="order_name" v-if="item.indentState == 3">已接单</view>
  137. <view class="order_name" v-if="item.indentState == 4">派送中</view>
  138. <view class="order_name" v-if="item.indentState == 6 || item.indentState == 7">已完成</view>
  139. <view class="order_name" v-if="item.indentState == 10">已取消</view>
  140. <view class="order_data">{{ item.createTime }}</view>
  141. </view>
  142. <u-line color="#E6E6E6" />
  143. <view class="order_city">
  144. <view class="city_type">
  145. <view class="type_name" v-if="item.indentType == 1">帮我送</view>
  146. <view class="type_name" v-if="item.indentType == 2">帮我取</view>
  147. <view class="type_name" v-if="item.indentType == 3">同城帮买</view>
  148. <view class="type_name" v-if="item.indentType == 4">同城服务</view>
  149. <view class="type_name" v-if="item.indentType == 5">同城外卖</view>
  150. <view class="city_text" v-if="item.indentType == 1 || item.indentType == 2">
  151. {{ item.itemType }}
  152. </view>
  153. <view class="city_text" v-if="item.indentType == 3 && item.buyType == 0">骑手购买</view>
  154. <view class="city_text" v-if="item.indentType == 3 && item.buyType == 1">指定购买</view>
  155. <view class="city_text" v-if="item.indentType == 4 && item.serviceType">{{ item.serviceType }}</view>
  156. </view>
  157. <view class="city_address">
  158. <view class="fh_box" v-if="item.indentType == 1 || item.indentType == 2 || item.indentType == 3">
  159. <view class="fh_image">
  160. <image src="../../static/images/order/mai.png" v-if="item.indentType == 3"></image>
  161. <image src="../../static/images/order/icon_f.png" v-else></image>
  162. </view>
  163. <view class="box">
  164. <view class="fh_name">{{ item.shopAddressDetail }}</view>
  165. <view class="fh_type" v-if="item.indentType != 3">
  166. {{ item.shopName }}
  167. <text>{{ item.shopPhone }}</text>
  168. </view>
  169. </view>
  170. </view>
  171. <view style="padding: 0 30rpx; font-size: 20px" v-if="item.orderSequence">#{{ item.orderSequence }}</view>
  172. <view class="sh_box">
  173. <view class="sh_image">
  174. <image src="../../static/images/order/icon_s.png"></image>
  175. </view>
  176. <view class="box">
  177. <view class="sh_name">{{ item.userAddressDetail }}</view>
  178. <view class="sh_type">
  179. {{ item.userName }}
  180. <text>{{ item.userPhone }}</text>
  181. </view>
  182. </view>
  183. </view>
  184. </view>
  185. </view>
  186. <u-line color="#E6E6E6" />
  187. <view class="order_btn">
  188. <!-- item.indentState == 7||item.indentState == 6 &&!item.evaluateMessage -->
  189. <view
  190. class="btn"
  191. v-if="item.indentState == 7 || (item.indentState == 6 && (!item.evaluateMessage || item.evaluateMessage == 0))"
  192. @tap.stop="pingjias(item)"
  193. >
  194. 点赞骑手
  195. </view>
  196. <view class="btn" v-if="item.indentState == 0 || item.indentState == 2" @tap.stop="bindorderOff(item)">取消订单</view>
  197. <view class="btn" @tap.stop="bindconfirm(item)" v-if="item.indentState == 5">确认订单</view>
  198. <view
  199. class="btn_"
  200. @tap.stop="bindorder(item)"
  201. v-if="
  202. item.indentState == 1 ||
  203. item.indentState == 3 ||
  204. item.indentState == 8 ||
  205. item.indentState == 9 ||
  206. item.indentState == 10 ||
  207. item.indentState == 4 ||
  208. item.indentState == 6
  209. "
  210. >
  211. 再来一单
  212. </view>
  213. <view class="btn_" v-if="item.indentState == 0" @tap.stop="bindorderpay(item)">立即付款</view>
  214. </view>
  215. </view>
  216. </view>
  217. <empty v-if="!order.length" style="z-index: 0"></empty>
  218. </view>
  219. <!-- 联系客服悬浮按钮区域 -->
  220. <view class="serviceBtn" @click="goChat">
  221. <img src="../../static/images/my/13.png" style="width: 60rpx; height: 60rpx" mode="scaleToFill" />
  222. <view class="serviceBtn_text">联系客服</view>
  223. </view>
  224. </view>
  225. </template>
  226. <script>
  227. import empty from '@/components/empty.vue'
  228. export default {
  229. components: {
  230. empty
  231. },
  232. data() {
  233. return {
  234. show: false,
  235. page: 1,
  236. limit: 10,
  237. orderType: 2,
  238. orderList: [],
  239. status: '',
  240. current: 0,
  241. current1: 0,
  242. current2: 0,
  243. qucanList: [
  244. {
  245. name: '全部'
  246. },
  247. {
  248. name: '待接单'
  249. },
  250. {
  251. name: '制作中'
  252. },
  253. {
  254. name: '待取餐'
  255. },
  256. {
  257. name: '已完成'
  258. },
  259. {
  260. name: '已取消'
  261. }
  262. ],
  263. waimaiList: [
  264. {
  265. name: '全部'
  266. },
  267. {
  268. name: '待接单'
  269. },
  270. {
  271. name: '制作中'
  272. },
  273. {
  274. name: '配送中'
  275. },
  276. {
  277. name: '已完成'
  278. },
  279. {
  280. name: '已取消'
  281. }
  282. ],
  283. paotuiList: [
  284. {
  285. name: '全部',
  286. id: 1
  287. },
  288. {
  289. name: '待付款',
  290. id: 2
  291. },
  292. {
  293. name: '待接单',
  294. id: 3
  295. },
  296. {
  297. name: '已接单',
  298. id: 4
  299. },
  300. {
  301. name: '派送中',
  302. id: 5
  303. },
  304. {
  305. name: '已完成',
  306. id: 6
  307. },
  308. {
  309. name: '已取消',
  310. id: 7
  311. }
  312. ],
  313. userId: '',
  314. currentIndex: 1,
  315. order: [],
  316. waimaiCount: 0,
  317. paotuiCount: 0,
  318. XCXIsSelect: '是',
  319. arr: [],
  320. token: ''
  321. }
  322. },
  323. onLoad(option) {
  324. let that = this
  325. that.token = that.$queue.getData('token')
  326. this.XCXIsSelect = this.$queue.getData('XCXIsSelect') ? this.$queue.getData('XCXIsSelect') : '是'
  327. this.userId = uni.getStorageSync('userId')
  328. if (option.orderType) {
  329. this.orderType = option.orderType
  330. }
  331. uni.showLoading({
  332. title: '加载中...',
  333. mask: true // 是否显示透明蒙层,防止触摸穿透
  334. })
  335. this.$Request.getT('/app/common/type/266').then((res) => {
  336. //订单取消通知
  337. if (res.code == 0) {
  338. if (res.data && res.data.value) {
  339. this.arr.push(res.data.value)
  340. }
  341. }
  342. })
  343. this.$Request.getT('/app/common/type/269').then((res) => {
  344. //订单状态通知
  345. if (res.code == 0) {
  346. if (res.data && res.data.value) {
  347. this.arr.push(res.data.value)
  348. }
  349. }
  350. })
  351. },
  352. onShow() {
  353. let that = this
  354. that.token = that.$queue.getData('token')
  355. this.userId = uni.getStorageSync('userId')
  356. if (uni.getStorageSync('current') && this.userId) {
  357. this.current1 = uni.getStorageSync('current')
  358. this.status = uni.getStorageSync('current')
  359. this.page = 1
  360. this.orderType = 2
  361. uni.removeStorageSync('current')
  362. this.getOrderList()
  363. }
  364. if (this.userId) {
  365. if (this.orderType == 3) {
  366. this.orderList_()
  367. } else {
  368. this.getOrderList()
  369. }
  370. } else {
  371. this.order = []
  372. this.orderList = []
  373. }
  374. uni.hideLoading()
  375. },
  376. methods: {
  377. goChat() {
  378. if (this.token) {
  379. uni.navigateTo({
  380. url: '/my/setting/chat'
  381. })
  382. } else {
  383. this.bindlogin()
  384. }
  385. },
  386. bindlogin() {
  387. uni.navigateTo({
  388. url: '/pages/public/login'
  389. })
  390. },
  391. bindopen() {
  392. this.show = true
  393. },
  394. bindx() {
  395. this.show = false
  396. },
  397. // 取消跑腿订单
  398. bindorderOff(e) {
  399. // #ifdef MP-WEIXIN
  400. if (uni.getStorageSync('sendMsg')) {
  401. console.log('授权+1')
  402. wx.requestSubscribeMessage({
  403. tmplIds: this.arr,
  404. success(re) {
  405. console.log(JSON.stringify(re), 111111111111)
  406. var datas = JSON.stringify(re)
  407. if (datas.indexOf('accept') != -1) {
  408. // console.log(re)
  409. }
  410. },
  411. fail: (res) => {
  412. // console.log(res)
  413. }
  414. })
  415. }
  416. // #endif
  417. console.log(e)
  418. let indentNumber = e.indentNumber
  419. console.log(indentNumber)
  420. uni.showModal({
  421. title: '温馨提示',
  422. // content: '取消订单平台将扣除您'+e.userFine+'元?',
  423. content: '确定取消订单?',
  424. showCancel: true,
  425. cancelText: '取消',
  426. confirmText: '确认',
  427. success: (res) => {
  428. if (res.confirm) {
  429. this.$Request.postT('/app/tbindent/userCancleIndent?indentNumber=' + indentNumber).then((res) => {
  430. // console.log(res)
  431. if (res.code == 0) {
  432. uni.showToast({
  433. title: '订单取消成功'
  434. })
  435. this.page = 1
  436. this.orderList_()
  437. } else {
  438. uni.hideLoading()
  439. uni.showModal({
  440. showCancel: false,
  441. title: '订单失败',
  442. content: res.msg
  443. })
  444. }
  445. })
  446. }
  447. }
  448. })
  449. },
  450. // 取消外卖订单
  451. cancel(e) {
  452. // #ifdef MP-WEIXIN
  453. if (uni.getStorageSync('sendMsg')) {
  454. console.log('授权+1')
  455. wx.requestSubscribeMessage({
  456. tmplIds: this.arr,
  457. success(re) {
  458. console.log(JSON.stringify(re), 111111111111)
  459. var datas = JSON.stringify(re)
  460. if (datas.indexOf('accept') != -1) {
  461. // console.log(re)
  462. }
  463. },
  464. fail: (res) => {
  465. // console.log(res)
  466. }
  467. })
  468. }
  469. // #endif
  470. let that = this
  471. console.log(e)
  472. uni.showModal({
  473. title: '提示',
  474. content: '确认取消订单吗?',
  475. success: function (res) {
  476. if (res.confirm) {
  477. console.log('用户点击确定')
  478. let data = {
  479. orderId: e.orderId
  480. }
  481. that.$Request.get('/app/order/userCancelOrder', data).then((res) => {
  482. if (res.code == 0) {
  483. uni.showToast({
  484. title: '订单取消成功',
  485. icon: 'none'
  486. })
  487. that.page = 1
  488. that.getOrderList()
  489. } else {
  490. uni.showToast({
  491. title: res.msg,
  492. icon: 'none'
  493. })
  494. }
  495. })
  496. } else if (res.cancel) {
  497. console.log('用户点击取消')
  498. }
  499. }
  500. })
  501. },
  502. // 评价订单
  503. pingjia(e) {
  504. // #ifdef MP-WEIXIN
  505. if (uni.getStorageSync('sendMsg')) {
  506. console.log('授权+1')
  507. wx.requestSubscribeMessage({
  508. tmplIds: this.arr,
  509. success(re) {
  510. console.log(JSON.stringify(re), 111111111111)
  511. var datas = JSON.stringify(re)
  512. if (datas.indexOf('accept') != -1) {
  513. // console.log(re)
  514. }
  515. },
  516. fail: (res) => {
  517. // console.log(res)
  518. }
  519. })
  520. }
  521. // #endif
  522. console.log(e)
  523. let ordersId = e.orderId
  524. let orderNumber = e.orderNumber
  525. let goodsId = []
  526. if (e.orderGoodsList) {
  527. e.orderGoodsList.forEach((res) => {
  528. goodsId.push(res.goodsId)
  529. })
  530. }
  531. uni.navigateTo({
  532. url: '/pages/order/feedback?ordersId=' + ordersId + '&orderNumber=' + orderNumber + '&goodsId=' + goodsId.toString() + '&shopId=' + e.shopId
  533. })
  534. },
  535. pingjias(e) {
  536. // #ifdef MP-WEIXIN
  537. if (uni.getStorageSync('sendMsg')) {
  538. console.log('授权+1')
  539. wx.requestSubscribeMessage({
  540. tmplIds: this.arr,
  541. success(re) {
  542. console.log(JSON.stringify(re), 111111111111)
  543. var datas = JSON.stringify(re)
  544. if (datas.indexOf('accept') != -1) {
  545. // console.log(re)
  546. }
  547. },
  548. fail: (res) => {
  549. // console.log(res)
  550. }
  551. })
  552. }
  553. // #endif
  554. uni.navigateTo({
  555. url: '/pages/order/feedbacks?indentNumber=' + e.indentNumber
  556. })
  557. },
  558. goShop(e) {
  559. // #ifdef MP-WEIXIN
  560. if (uni.getStorageSync('sendMsg')) {
  561. console.log('授权+1')
  562. wx.requestSubscribeMessage({
  563. tmplIds: this.arr,
  564. success(re) {
  565. console.log(JSON.stringify(re), 111111111111)
  566. var datas = JSON.stringify(re)
  567. if (datas.indexOf('accept') != -1) {
  568. // console.log(re)
  569. }
  570. },
  571. fail: (res) => {
  572. // console.log(res)
  573. }
  574. })
  575. }
  576. // #endif
  577. uni.navigateTo({
  578. url: '/pages/index/shop/index?shopId=' + e
  579. })
  580. },
  581. // 完成订单
  582. finish(e) {
  583. // #ifdef MP-WEIXIN
  584. if (uni.getStorageSync('sendMsg')) {
  585. console.log('授权+1')
  586. wx.requestSubscribeMessage({
  587. tmplIds: this.arr,
  588. success(re) {
  589. console.log(JSON.stringify(re), 111111111111)
  590. var datas = JSON.stringify(re)
  591. if (datas.indexOf('accept') != -1) {
  592. // console.log(re)
  593. }
  594. },
  595. fail: (res) => {
  596. // console.log(res)
  597. }
  598. })
  599. }
  600. // #endif
  601. let that = this
  602. console.log(e)
  603. uni.showModal({
  604. title: '提示',
  605. content: '确认订单完成吗?',
  606. success: function (res) {
  607. if (res.confirm) {
  608. console.log('用户点击确定')
  609. let data = {
  610. orderId: e.orderId
  611. }
  612. that.$Request.post('/app/order/accomplishOrder', data).then((res) => {
  613. if (res.code == 0) {
  614. uni.showToast({
  615. title: '订单完成',
  616. icon: 'none'
  617. })
  618. that.getOrderList()
  619. } else {
  620. uni.showToast({
  621. title: res.msg,
  622. icon: 'none'
  623. })
  624. }
  625. })
  626. } else if (res.cancel) {
  627. console.log('用户点击取消')
  628. }
  629. }
  630. })
  631. },
  632. switchTab(e) {
  633. // #ifdef MP-WEIXIN
  634. if (uni.getStorageSync('sendMsg')) {
  635. console.log('授权+1')
  636. wx.requestSubscribeMessage({
  637. tmplIds: this.arr,
  638. success(re) {
  639. console.log(JSON.stringify(re), 111111111111)
  640. var datas = JSON.stringify(re)
  641. if (datas.indexOf('accept') != -1) {
  642. // console.log(re)
  643. }
  644. },
  645. fail: (res) => {
  646. // console.log(res)
  647. }
  648. })
  649. }
  650. // #endif
  651. this.page = 1
  652. this.status = ''
  653. this.orderType = e
  654. this.current = 0
  655. this.current1 = 0
  656. this.order = []
  657. this.orderList = []
  658. console.log(e)
  659. if (this.orderType == 3) {
  660. this.orderList_()
  661. } else {
  662. this.getOrderList()
  663. }
  664. },
  665. change(index) {
  666. // #ifdef MP-WEIXIN
  667. if (uni.getStorageSync('sendMsg')) {
  668. console.log('授权+1')
  669. wx.requestSubscribeMessage({
  670. tmplIds: this.arr,
  671. success(re) {
  672. console.log(JSON.stringify(re), 111111111111)
  673. var datas = JSON.stringify(re)
  674. if (datas.indexOf('accept') != -1) {
  675. // console.log(re)
  676. }
  677. },
  678. fail: (res) => {
  679. // console.log(res)
  680. }
  681. })
  682. }
  683. // #endif
  684. this.page = 1
  685. this.current = index
  686. switch (index) {
  687. case 0:
  688. this.status = '' //全部
  689. break
  690. case 1:
  691. this.status = 7 //待接单
  692. break
  693. case 2:
  694. this.status = 6 //制作中
  695. break
  696. case 3:
  697. this.status = 3 //待取餐
  698. break
  699. case 4:
  700. this.status = 4 //已完成
  701. break
  702. case 5:
  703. this.status = 5 //已取消
  704. break
  705. }
  706. this.getOrderList()
  707. },
  708. change1(index) {
  709. // #ifdef MP-WEIXIN
  710. if (uni.getStorageSync('sendMsg')) {
  711. console.log('授权+1')
  712. wx.requestSubscribeMessage({
  713. tmplIds: this.arr,
  714. success(re) {
  715. console.log(JSON.stringify(re), 111111111111)
  716. var datas = JSON.stringify(re)
  717. if (datas.indexOf('accept') != -1) {
  718. // console.log(re)
  719. }
  720. },
  721. fail: (res) => {
  722. // console.log(res)
  723. }
  724. })
  725. }
  726. // #endif
  727. this.page = 1
  728. this.current1 = index
  729. switch (index) {
  730. case 0:
  731. this.status = '' //全部
  732. break
  733. case 1:
  734. this.status = 7 //待接单
  735. break
  736. case 2:
  737. this.status = 6 //制作中
  738. break
  739. case 3:
  740. this.status = 3 //配送中
  741. break
  742. case 4:
  743. this.status = 4 //已完成
  744. break
  745. case 5:
  746. this.status = 5 //已取消
  747. break
  748. }
  749. this.getOrderList()
  750. },
  751. change2(index) {
  752. // #ifdef MP-WEIXIN
  753. if (uni.getStorageSync('sendMsg')) {
  754. console.log('授权+1')
  755. wx.requestSubscribeMessage({
  756. tmplIds: this.arr,
  757. success(re) {
  758. console.log(JSON.stringify(re), 111111111111)
  759. var datas = JSON.stringify(re)
  760. if (datas.indexOf('accept') != -1) {
  761. // console.log(re)
  762. }
  763. },
  764. fail: (res) => {
  765. // console.log(res)
  766. }
  767. })
  768. }
  769. // #endif
  770. this.current2 = index
  771. this.currentIndex = this.paotuiList[index].id
  772. this.page = 1
  773. this.orderList_()
  774. },
  775. goNav(url) {
  776. // #ifdef MP-WEIXIN
  777. if (uni.getStorageSync('sendMsg')) {
  778. console.log('授权+1')
  779. wx.requestSubscribeMessage({
  780. tmplIds: this.arr,
  781. success(re) {
  782. console.log(JSON.stringify(re), 111111111111)
  783. var datas = JSON.stringify(re)
  784. if (datas.indexOf('accept') != -1) {
  785. // console.log(re)
  786. }
  787. },
  788. fail: (res) => {
  789. // console.log(res)
  790. }
  791. })
  792. }
  793. // #endif
  794. uni.navigateTo({
  795. url
  796. })
  797. },
  798. // 跑腿订单获取
  799. orderList_() {
  800. let data = {
  801. page: this.page,
  802. limit: this.limit,
  803. indentState: this.currentIndex
  804. }
  805. this.$Request.getT('/app/tbindent/findUserIndent', data).then((res) => {
  806. // console.log(res)
  807. var that = this
  808. if (res.code === 0) {
  809. this.paotuiCount = res.data.totalCount
  810. if (that.page == 1) {
  811. that.order = res.data.list
  812. that.totalPage = res.data.totalPage
  813. }
  814. if (that.page > 1) {
  815. if (res.data.list.length > 0) {
  816. that.order = that.order.concat(res.data.list)
  817. }
  818. }
  819. }
  820. uni.stopPullDownRefresh()
  821. uni.hideLoading()
  822. })
  823. },
  824. // 外卖数据列表
  825. getOrderList() {
  826. let data = {
  827. page: this.page,
  828. limit: this.limit,
  829. status: this.status,
  830. orderType: this.orderType
  831. }
  832. this.$Request.get('/app/order/waitTakeFood', data).then((res) => {
  833. if (res.code == 0) {
  834. this.waimaiCount = res.data.totalCount
  835. res.data.list.forEach((res) => {
  836. res.orderGoodsList.forEach((ret) => {
  837. if (ret.goodsPicture) {
  838. ret.goodsPicture = ret.goodsPicture.split(',')
  839. }
  840. })
  841. res.orderCode = res.orderCode.substring(res.orderCode.length - 3, res.orderCode.length)
  842. })
  843. console.log(res.data.list, 'jjjjj')
  844. if (this.page == 1) {
  845. this.orderList = res.data.list
  846. } else {
  847. this.orderList = [...this.orderList, ...res.data.list]
  848. }
  849. }
  850. uni.stopPullDownRefresh()
  851. uni.hideLoading()
  852. })
  853. },
  854. // 再来一单
  855. bindorder(e) {
  856. // #ifdef MP-WEIXIN
  857. if (uni.getStorageSync('sendMsg')) {
  858. console.log('授权+1')
  859. wx.requestSubscribeMessage({
  860. tmplIds: this.arr,
  861. success(re) {
  862. console.log(JSON.stringify(re), 111111111111)
  863. var datas = JSON.stringify(re)
  864. if (datas.indexOf('accept') != -1) {
  865. // console.log(re)
  866. }
  867. },
  868. fail: (res) => {
  869. // console.log(res)
  870. }
  871. })
  872. }
  873. // #endif
  874. console.log(e)
  875. let index = e.indentType
  876. let current = e.buyType
  877. if (e.indentType == 1 || e.indentType == 2) {
  878. uni.navigateTo({
  879. url: '/running/Helpsend/Helpsend?indentNumber=' + e.indentNumber + '&index=' + index
  880. })
  881. } else if (e.indentType == 3) {
  882. uni.navigateTo({
  883. url: '/running/Helppay/Helppay?indentNumber=' + e.indentNumber + '&index=' + index + '&current=' + current
  884. })
  885. } else {
  886. uni.navigateTo({
  887. url: '/running/Cityservice/Cityservice?indentNumber=' + e.indentNumber + '&index=' + index
  888. })
  889. }
  890. },
  891. // 订单详情
  892. bindorderDetail(indentNumber) {
  893. // #ifdef MP-WEIXIN
  894. if (uni.getStorageSync('sendMsg')) {
  895. console.log('授权+1')
  896. wx.requestSubscribeMessage({
  897. tmplIds: this.arr,
  898. success(re) {
  899. console.log(JSON.stringify(re), 111111111111)
  900. var datas = JSON.stringify(re)
  901. if (datas.indexOf('accept') != -1) {
  902. // console.log(re)
  903. }
  904. },
  905. fail: (res) => {
  906. // console.log(res)
  907. }
  908. })
  909. }
  910. // #endif
  911. console.log(indentNumber)
  912. uni.navigateTo({
  913. url: '/pages/order/detail?indentNumber=' + indentNumber
  914. })
  915. },
  916. // 立即付款
  917. bindorderpay(e) {
  918. uni.navigateTo({
  919. url: '/running/order/pay/pay?indentNumber=' + e.indentNumber
  920. })
  921. },
  922. // 拨打电话
  923. bindphone(e) {
  924. console.log(e)
  925. uni.makePhoneCall({
  926. phoneNumber: e
  927. })
  928. }
  929. },
  930. onReachBottom: function () {
  931. if (this.orderType == 3) {
  932. if (this.order.length < this.paotuiCount) {
  933. this.page = this.page + 1
  934. this.orderList_()
  935. } else {
  936. uni.showToast({
  937. title: '已经到底了',
  938. icon: 'none'
  939. })
  940. }
  941. } else {
  942. if (this.orderList.length < this.waimaiCount) {
  943. this.page = this.page + 1
  944. this.getOrderList()
  945. } else {
  946. uni.showToast({
  947. title: '已经到底了',
  948. icon: 'none'
  949. })
  950. }
  951. }
  952. },
  953. onPullDownRefresh: function () {
  954. this.page = 1
  955. this.status = ''
  956. this.current = 0
  957. this.current1 = 0
  958. // console.log(e)
  959. if (this.orderType == 3) {
  960. this.orderList_()
  961. } else {
  962. this.getOrderList()
  963. }
  964. }
  965. }
  966. </script>
  967. <style scoped>
  968. .active {
  969. /* width: 82rpx; */
  970. height: 16rpx;
  971. background: #fcd202;
  972. position: relative;
  973. top: -20rpx;
  974. z-index: 9;
  975. }
  976. .bg {
  977. background-color: #ffffff;
  978. }
  979. /* 切换选项 */
  980. .nav {
  981. display: flex;
  982. align-items: center;
  983. justify-content: center;
  984. background-color: #ffffff;
  985. color: #999999;
  986. }
  987. .btn {
  988. width: 150rpx;
  989. height: 60rpx;
  990. line-height: 60rpx;
  991. text-align: center;
  992. background: #f5f5f5;
  993. font-size: 28rpx;
  994. border: 2rpx solid ##f5f5f5;
  995. color: #666666;
  996. border-radius: 50rpx;
  997. font-weight: 700;
  998. margin-left: 10rpx;
  999. }
  1000. .btn_ {
  1001. width: 150rpx;
  1002. height: 60rpx;
  1003. line-height: 60rpx;
  1004. text-align: center;
  1005. background: #fcd202;
  1006. font-size: 28rpx;
  1007. border: 2rpx solid #fcd202;
  1008. color: #333333;
  1009. border-radius: 50rpx;
  1010. font-weight: 700;
  1011. margin-left: 10rpx;
  1012. }
  1013. .tabBtn {
  1014. /* background-color: #f6f6fa; */
  1015. height: 60rpx;
  1016. line-height: 60rpx;
  1017. color: #999999;
  1018. font-size: 38rpx;
  1019. }
  1020. .title {
  1021. position: relative;
  1022. z-index: 100;
  1023. }
  1024. .shaix {
  1025. width: 30%;
  1026. text-align: center;
  1027. display: flex;
  1028. align-items: center;
  1029. justify-content: center;
  1030. letter-spacing: 4rpx;
  1031. font-size: 27rpx;
  1032. }
  1033. .select {
  1034. color: #000000;
  1035. font-weight: bold;
  1036. background-color: #fff;
  1037. z-index: 10;
  1038. }
  1039. .nav view {
  1040. flex-grow: 1;
  1041. margin: 3% 6.5% 2%;
  1042. text-align: center;
  1043. }
  1044. .nav_btna {
  1045. font-size: 42rpx;
  1046. line-height: 34rpx;
  1047. color: #000000;
  1048. font-weight: bold;
  1049. border-bottom: 14rpx solid #fcd202;
  1050. }
  1051. /* 内容 */
  1052. /* 全部订单 */
  1053. .cont_one {
  1054. margin-top: 160rpx;
  1055. }
  1056. /* .cont_one image {
  1057. width: 80%;
  1058. height: 353rpx;
  1059. } */
  1060. /* 到店取餐 */
  1061. .cont_two {
  1062. display: none;
  1063. width: 94%;
  1064. margin: 3% auto;
  1065. background-color: #ffffff;
  1066. border-radius: 18rpx;
  1067. }
  1068. .cont {
  1069. /* display: none; */
  1070. width: 94%;
  1071. margin: 3% auto;
  1072. background-color: #ffffff;
  1073. border-radius: 18rpx;
  1074. /* padding: 20rpx 0; */
  1075. }
  1076. .cont_two_top {
  1077. width: 94%;
  1078. padding: 4% 3% 0;
  1079. margin: 0 auto;
  1080. display: flex;
  1081. justify-content: space-between;
  1082. }
  1083. .cont_two_top_le {
  1084. /* width: 85%; */
  1085. font-size: 30rpx;
  1086. font-weight: 500;
  1087. color: #333333;
  1088. /* line-height: 2; */
  1089. margin: 5rpx 0;
  1090. }
  1091. .cont_two_top_ri {
  1092. /* width: 15%; */
  1093. padding: 6rpx 10rpx;
  1094. text-align: center;
  1095. background: rgba(255, 19, 10, 0.2);
  1096. font-size: 24rpx;
  1097. border: 2rpx solid #ff130a;
  1098. color: #ff130a;
  1099. opacity: 0.6;
  1100. border-radius: 8rpx;
  1101. }
  1102. .cont_two_top_ri1 {
  1103. /* width: 15%; */
  1104. text-align: center;
  1105. /* line-height: 2; */
  1106. padding: 6rpx 10rpx;
  1107. background: #62ba8b;
  1108. font-size: 24rpx;
  1109. border: 2rpx solid #62ba8b;
  1110. color: #fff;
  1111. /* opacity: 0.6; */
  1112. border-radius: 8rpx;
  1113. }
  1114. .cont_two_top_ri2 {
  1115. /* width: 15%; */
  1116. text-align: center;
  1117. /* line-height: 2; */
  1118. padding: 6rpx 10rpx;
  1119. background: #fcd202;
  1120. font-size: 24rpx;
  1121. border: 2rpx solid #fcd202;
  1122. color: #fff;
  1123. /* opacity: 0.6; */
  1124. border-radius: 8rpx;
  1125. }
  1126. .cont_two_text {
  1127. font-size: 58rpx;
  1128. text-align: center;
  1129. font-weight: bold;
  1130. color: red;
  1131. margin: 3% 0;
  1132. line-height: 32rpx;
  1133. }
  1134. .cont_two_text2 {
  1135. font-size: 30rpx;
  1136. width: 100%;
  1137. font-weight: 500;
  1138. color: #333333;
  1139. text-align: center;
  1140. padding-bottom: 3%;
  1141. /* line-height: 32rpx; */
  1142. }
  1143. .cont_two_text2 text {
  1144. color: #ff130a;
  1145. }
  1146. .cont_two_bottom {
  1147. width: 94%;
  1148. padding: 3%;
  1149. margin: 0 auto;
  1150. display: flex;
  1151. border-top: 1rpx solid #e6e6e6;
  1152. }
  1153. .cont_two_bottom_le {
  1154. flex: 1;
  1155. font-size: 24rpx;
  1156. font-weight: 500;
  1157. color: #999999;
  1158. line-height: 32rpx;
  1159. }
  1160. .cont_two_bottom_ri {
  1161. flex: 1;
  1162. text-align: right;
  1163. }
  1164. .cont_two_bottom_ri image {
  1165. width: 14rpx;
  1166. height: 24rpx;
  1167. }
  1168. /* 外卖订单 */
  1169. .cont_three {
  1170. display: none;
  1171. width: 94%;
  1172. margin: 3% auto;
  1173. background-color: #ffffff;
  1174. border-radius: 18rpx;
  1175. }
  1176. .cont_three_top {
  1177. width: 94%;
  1178. padding: 4% 3% 0;
  1179. margin: 0 auto;
  1180. display: flex;
  1181. }
  1182. .cont_three_top_le {
  1183. flex: 2;
  1184. font-size: 30rpx;
  1185. font-weight: 500;
  1186. color: #d80204;
  1187. line-height: 32rpx;
  1188. }
  1189. .cont_three_top_ri {
  1190. flex: 1;
  1191. text-align: right;
  1192. font-size: 24rpx;
  1193. font-weight: 500;
  1194. color: #999999;
  1195. line-height: 32rpx;
  1196. }
  1197. .cont_three_text {
  1198. padding: 2% 0 2% 3%;
  1199. font-size: 24rpx;
  1200. font-weight: 500;
  1201. color: #999999;
  1202. line-height: 32rpx;
  1203. }
  1204. .cont_three_cen {
  1205. width: 94%;
  1206. padding: 0.5% 3%;
  1207. margin: 0 auto;
  1208. display: flex;
  1209. }
  1210. .cont_three_cen_le {
  1211. flex: 2;
  1212. font-size: 30rpx;
  1213. font-weight: 500;
  1214. color: #333333;
  1215. line-height: 32rpx;
  1216. }
  1217. .cont_three_cen_ri {
  1218. flex: 1;
  1219. text-align: right;
  1220. font-size: 24rpx;
  1221. font-weight: 500;
  1222. color: #999999;
  1223. line-height: 32rpx;
  1224. }
  1225. .cont_three_text2 {
  1226. font-size: 24rpx;
  1227. font-weight: 500;
  1228. color: #d80204;
  1229. padding: 0 3%;
  1230. line-height: 32rpx;
  1231. }
  1232. .cont_three_bottom {
  1233. width: 94%;
  1234. padding: 3%;
  1235. margin: 3% auto 0;
  1236. display: flex;
  1237. border-top: 1rpx solid #e6e6e6;
  1238. }
  1239. .cont_three_bottom_le {
  1240. flex: 1;
  1241. font-size: 24rpx;
  1242. font-weight: 500;
  1243. color: #999999;
  1244. line-height: 32rpx;
  1245. }
  1246. .cont_three_bottom_ri {
  1247. flex: 1;
  1248. text-align: right;
  1249. }
  1250. .cont_dis {
  1251. display: block;
  1252. }
  1253. .box {
  1254. /* width: 100%;
  1255. height: 100vh;
  1256. background-color: rgba(0, 0, 0, 0.2);
  1257. position: absolute;
  1258. top: 40px;
  1259. z-index: 999 */
  1260. }
  1261. .popbox {
  1262. width: 749upx;
  1263. /* height: 764upx; */
  1264. background: #ffffff;
  1265. padding-bottom: 72rpx;
  1266. z-inde: 999;
  1267. position: fixed;
  1268. top: 39px;
  1269. left: 0;
  1270. right: 0;
  1271. }
  1272. .impute {
  1273. background: #f2f2f2;
  1274. height: 80rpx;
  1275. margin: 20rpx 0;
  1276. }
  1277. .btns {
  1278. width: 690upx;
  1279. height: 88upx;
  1280. background: #ffcc00;
  1281. box-shadow: 0upx 10upx 20upx 0upx #ffd9b3;
  1282. border-radius: 16upx;
  1283. text-align: center;
  1284. line-height: 88rpx;
  1285. font-size: 32rpx;
  1286. font-weight: bold;
  1287. margin: 0 auto;
  1288. }
  1289. .empty {
  1290. width: 100%;
  1291. background: #ffffff;
  1292. /* #ifdef MP-WEIXIN */
  1293. height: 93vh;
  1294. /* #endif */
  1295. /* #ifndef MP-WEIXIN */
  1296. height: 80vh;
  1297. /* #endif */
  1298. }
  1299. .tabs_box {
  1300. display: none;
  1301. }
  1302. .dis {
  1303. display: block;
  1304. width: 100%;
  1305. }
  1306. .u-tab-item {
  1307. font-size: 30rpx !important;
  1308. /* color: #666666 !important; */
  1309. }
  1310. .success_box {
  1311. width: 100%;
  1312. }
  1313. .order_box {
  1314. width: 95%;
  1315. margin: 0 auto;
  1316. /* height: 420rpx; */
  1317. background: #ffffff;
  1318. margin-top: 20rpx;
  1319. border-radius: 10px;
  1320. /* padding: 20rpx 0rpx; */
  1321. }
  1322. .order_title {
  1323. width: 90%;
  1324. margin: 0 auto;
  1325. border-radius: 14px 14px, 0px, 0px;
  1326. background: rgba(255, 239, 222, 1);
  1327. height: 40upx;
  1328. color: rgba(255, 141, 26, 1);
  1329. font-size: 24upx;
  1330. line-height: 40upx;
  1331. text-align: center;
  1332. }
  1333. .order_success {
  1334. width: 90%;
  1335. margin: 0 auto;
  1336. display: flex;
  1337. height: 80upx;
  1338. }
  1339. .order_name {
  1340. flex: 1;
  1341. display: flex;
  1342. justify-content: left;
  1343. align-items: center;
  1344. font-weight: bold;
  1345. font-size: 31rpx;
  1346. letter-spacing: 1upx;
  1347. }
  1348. .order_data {
  1349. flex: 1;
  1350. color: #999999;
  1351. display: flex;
  1352. justify-content: flex-end;
  1353. align-items: center;
  1354. font-size: 27rpx;
  1355. }
  1356. .city_type {
  1357. width: 90%;
  1358. margin: 0 auto;
  1359. height: 60upx;
  1360. line-height: 60upx;
  1361. display: flex;
  1362. justify-content: left;
  1363. align-items: center;
  1364. }
  1365. .type_name {
  1366. font-size: 27rpx;
  1367. }
  1368. .city_text {
  1369. line-height: 36rpx;
  1370. color: #49a5ff;
  1371. background: #c4e2ff;
  1372. text-align: center;
  1373. font-size: 25rpx;
  1374. margin-left: 20rpx;
  1375. padding: 2rpx 10rpx;
  1376. }
  1377. .city_address {
  1378. width: 90%;
  1379. margin: 0 auto;
  1380. /* margin-top: -10rpx; */
  1381. }
  1382. /* 发货地址 */
  1383. .fh_box {
  1384. display: flex;
  1385. /* height: 80upx; */
  1386. margin-top: 25rpx;
  1387. }
  1388. .fh_image {
  1389. /* flex: 1; */
  1390. width: 10%;
  1391. }
  1392. .box {
  1393. /* flex: 11; */
  1394. width: 85%;
  1395. overflow: hidden;
  1396. }
  1397. .fh_name {
  1398. font-size: 31rpx;
  1399. font-weight: 600;
  1400. letter-spacing: 2upx;
  1401. }
  1402. .fh_type {
  1403. color: #999999;
  1404. font-size: 28rpx;
  1405. margin-top: 10rpx;
  1406. }
  1407. .fh_type text {
  1408. margin-left: 20upx;
  1409. }
  1410. /* 送货地址 */
  1411. .sh_box {
  1412. display: flex;
  1413. margin-bottom: 14upx;
  1414. margin-top: 25rpx;
  1415. }
  1416. .sh_image {
  1417. /* flex: 1; */
  1418. width: 10%;
  1419. }
  1420. .sh_name {
  1421. font-size: 31rpx;
  1422. font-weight: 600;
  1423. letter-spacing: 2upx;
  1424. }
  1425. .sh_type {
  1426. color: #999999;
  1427. font-size: 28rpx;
  1428. margin-top: 10rpx;
  1429. }
  1430. .sh_type text {
  1431. margin-left: 20upx;
  1432. }
  1433. .fh_image image {
  1434. width: 45upx;
  1435. height: 45upx;
  1436. }
  1437. .sh_image image {
  1438. width: 45upx;
  1439. height: 45upx;
  1440. }
  1441. .order_btn {
  1442. display: flex;
  1443. justify-content: flex-end;
  1444. align-items: center;
  1445. height: 80upx;
  1446. margin-top: 8upx;
  1447. padding: 0 20rpx;
  1448. }
  1449. .btn1 {
  1450. width: 170upx;
  1451. font-size: 26rpx;
  1452. line-height: 60upx;
  1453. text-align: center;
  1454. border: 3upx solid #9c9c9c;
  1455. border-radius: 20upx;
  1456. color: #9c9c9c;
  1457. margin-right: 30upx;
  1458. }
  1459. .btn2 {
  1460. width: 170upx;
  1461. line-height: 60upx;
  1462. color: white;
  1463. background: #ff6a04;
  1464. font-size: 27rpx;
  1465. text-align: center;
  1466. margin-right: 30upx;
  1467. border-radius: 20upx;
  1468. }
  1469. .btn3 {
  1470. width: 120upx;
  1471. font-size: 26rpx;
  1472. line-height: 60upx;
  1473. text-align: center;
  1474. border: 2upx solid #ff130a;
  1475. border-radius: 10upx;
  1476. color: #ff130a;
  1477. margin-right: 30upx;
  1478. background: rgba(255, 19, 10, 0.2);
  1479. opacity: 0.6;
  1480. }
  1481. .serviceBtn {
  1482. position: fixed;
  1483. right: 52rpx;
  1484. bottom: 50rpx;
  1485. display: flex;
  1486. flex-direction: column;
  1487. align-items: center;
  1488. justify-content: center;
  1489. width: 140rpx;
  1490. height: 140rpx;
  1491. border-radius: 50%;
  1492. color: #fff;
  1493. font-size: 20rpx;
  1494. background-color: #3e8ef7;
  1495. box-shadow: 0 0 7rpx #000;
  1496. }
  1497. .serviceBtn_text {
  1498. margin-top: 5rpx;
  1499. }
  1500. </style>