pindanDet.vue 26 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. <template>
  2. <view class="">
  3. <view class="margin-tb-sm bg-white padding">
  4. <view class="flex justify-between align-center">
  5. <view class="flex align-center">
  6. <image src="../../../static/tabbar/index.png" style="width: 40rpx;height: 37rpx;" mode=""></image>
  7. <view class="text-xl text-bold text-black margin-lr-xs">{{goodsShop.shopName}}</view>
  8. <!-- <image src="../../../static/images/index/right.png" style="width: 14rpx;height: 24rpx;" mode=""></image> -->
  9. </view>
  10. <view class="flex Switch ">
  11. <view @click="tabSwidth(1)" :class="orderType==1?'selSwitch':''">自取</view>
  12. <view @click="tabSwidth(2)" :class="orderType==2?'selSwitch':''">外卖</view>
  13. </view>
  14. </view>
  15. <view style="font-size: 20upx;color: #FF130A;margin-top: 10rpx;">
  16. <view>加入购物车就可以拼单哦拼单人购物车有商品先清空再添加</view>
  17. </view>
  18. <!-- <view class="text-gray">距离您16km</view> -->
  19. <view class="flex justify-between margin-top">
  20. <view class="btn1" @click="cancel()">取消拼单</view>
  21. <button class="btn" open-type="share">分享好友</button>
  22. </view>
  23. </view>
  24. <view v-if="myGoodList.length" class="margin-tb-sm bg-white padding">
  25. <view class="flex justify-between align-center padding-bottom">
  26. <image :src="myGoodList[0].avatar" mode="" style="width: 48rpx;height: 48rpx;border-radius: 48rpx;">
  27. </image>
  28. <view class="flex align-center flex-sub margin-left-sm">
  29. <view class="text-black text-lg text-bold">{{myGoodList[0].nickName}}</view>
  30. <!-- <view class="margin-left-sm">我自己</view> -->
  31. </view>
  32. <view class="flex">
  33. <view class="sBtn1" @click="clear()" v-if="userId == myGoodList[0].userId">清空</view>
  34. <view class="sBtn2" @click="goGoodsList" v-if="userId == myGoodList[0].userId">去点餐</view>
  35. <!-- <view class="sBtn2" @click="goGoodsList">修改订单</view> -->
  36. </view>
  37. </view>
  38. <u-line color="#E6E6E6" />
  39. <view class="padding-top" v-for="(item,index) in myGoodList" :key='index'>
  40. <view class="flex justify-between">
  41. <view class="text-black text-lg text-bold">{{item.goodsName}}</view>
  42. <view v-if="item.skuMessage">{{item.skuMessage}}</view>
  43. <view class="text-lg text-gray"><text class="text-sm">x</text>{{item.goodsNum}}</view>
  44. </view>
  45. <view v-if="index==(myGoodList.length-1)" class="flex justify-between margin-top-sm ">
  46. <view class="text-gray">总计</view>
  47. <view class="text-lg text-black text-bold"><text class="text-sm">¥</text>{{item.goodsPrice}}</view>
  48. </view>
  49. </view>
  50. </view>
  51. <view v-if="otherGoodList.length>0" v-for="(orders,index) in otherGoodList" :key='index'>
  52. <view v-if="(index!=0 && orders.userId!=otherGoodList[index-1].userId) || index==0"
  53. class="margin-tb-sm bg-white padding">
  54. <view class="flex justify-between align-center padding-bottom">
  55. <image :src="orders.avatar" style="width: 48rpx;height: 48rpx;border-radius: 48rpx;"></image>
  56. <view class="flex align-center flex-sub margin-left-sm">
  57. <view class="text-black text-lg text-bold">{{orders.nickName}}</view>
  58. </view>
  59. <view class="flex">
  60. <view class="sBtn3" @click="goGoodsList" v-if="userId == orders.userId">去点餐</view>
  61. </view>
  62. </view>
  63. <u-line color="#E6E6E6" />
  64. <view v-for="(item,index) in otherGoodList" :key='index'>
  65. <view class="padding-top" v-if="item.userId==orders.userId">
  66. <view class="flex justify-between">
  67. <view class="text-black text-lg text-bold">{{item.goodsName}}</view>
  68. <view v-if="item.skuMessage">{{item.skuMessage}}</view>
  69. <view class="text-lg text-gray"><text class="text-sm">x</text>{{item.goodsNum}}</view>
  70. </view>
  71. <view v-if="item.userId!=otherGoodList[index+1].userId"
  72. class="flex justify-between margin-top-sm ">
  73. <view class="text-gray">总计</view>
  74. <view class="text-lg text-black text-bold"><text class="text-sm">¥</text>{{item.goodsPrice}}
  75. </view>
  76. </view>
  77. </view>
  78. </view>
  79. </view>
  80. </view>
  81. <empty v-if="!myGoodList.length && !otherGoodList.length" content='暂无商品'></empty>
  82. <view style="height: 100rpx;"></view>
  83. <!-- 结算 -->
  84. <!-- 结算 -->
  85. <view class="settlement" @click="isPopupShow">
  86. <view class="settlement_img">
  87. <image src="../../../static/images/index/diancan.png" mode=""></image>
  88. <view class="settlement_hot">{{number}}</view>
  89. </view>
  90. <view class="settlement_le">
  91. <text>¥</text>{{totalPrice}}
  92. </view>
  93. <view class="settlement_ri" @click.stop="goConfirm()">去结算</view>
  94. </view>
  95. <!-- 购物车弹窗 -->
  96. <u-popup v-model="popupShow" mode="bottom" border-radius="20">
  97. <view class="padding">
  98. <view class="flex justify-between align-center margin-bottom-sm">
  99. <view class="text-bold text-black text-df">拼单餐品</view>
  100. <view class="flex align-center">
  101. <image src="../../../static/images/index/delete.png" style="width: 28rpx;height: 31rpx;"
  102. mode=""></image>
  103. <text class="margin-left-xs" @click="cancel">取消拼单</text>
  104. </view>
  105. </view>
  106. <scroll-view scroll-y='true' class="popup">
  107. <view v-for="(item,ind) in goodsList.orderGoodsList[0]" :key='ind'>
  108. <view class="flex align-center margin-tb-sm">
  109. <image :src="item.goodsPicture[0]" style="width: 96rpx;height: 96rpx;border-radius: 10rpx;">
  110. </image>
  111. <view class="margin-left-sm">
  112. <view>{{item.goodsName}}</view>
  113. <view v-if="item.skuMessage">{{item.skuMessage}}</view>
  114. </view>
  115. </view>
  116. <view class="flex justify-between align-center">
  117. <view class="text-bold text-sm">¥<text class="text-lg">{{item.goodsPrice}}</text>
  118. </view>
  119. <view class="flex align-center justify-between">
  120. <view @click.stop="noAdd(item,ind)">
  121. <image src="../../../static/images/index/jian.png"
  122. style="width: 54rpx;height: 54rpx;"></image>
  123. </view>
  124. <view class="text-center margin-lr-xs">{{item.goodsNum}}</view>
  125. <view @click.stop="add(item,ind)">
  126. <image src="../../../static/images/index/add.png"
  127. style="width: 50rpx;height: 50rpx;"></image>
  128. </view>
  129. </view>
  130. </view>
  131. </view>
  132. </scroll-view>
  133. </view>
  134. <view class="settlement1 margin-top-lg">
  135. <view class="settlement_img">
  136. <image src="../../../static/images/index/diancan.png" mode=""></image>
  137. <view class="settlement_hot">{{number}}</view>
  138. </view>
  139. <view class="settlement_le">
  140. <text>¥</text>{{totalPrice}}
  141. </view>
  142. <view class="settlement_ri" @click.stop="goConfirm()">去结算</view>
  143. </view>
  144. </u-popup>
  145. </view>
  146. </template>
  147. <script>
  148. import empty from '@/components/empty.vue'
  149. export default {
  150. components: {
  151. empty
  152. },
  153. onShareAppMessage(res) { //发送给朋友
  154. return {
  155. title: '快来和我一起拼个单吧!',
  156. path: '/pages/index/index?shopId=' + this.shopId + '&orderId=' + this.orderId,
  157. imageUrl: this.tuiguangImg,
  158. }
  159. },
  160. onShareTimeline(res) { //分享到朋友圈
  161. return {
  162. title: "快来和我一起拼个单吧!",
  163. path: '/pages/index/index?shopId=' + this.shopId + '&orderId=' + this.orderId,
  164. imageUrl: this.tuiguangImg,
  165. }
  166. },
  167. data() {
  168. return {
  169. orderType: 2,
  170. shopId: '',
  171. tuiguangImg: '',
  172. goodsNum: 0,
  173. totalPrice: 0,
  174. orderId: '',
  175. otherGoodList: [],
  176. myGoodList: [],
  177. goodsList: [],
  178. userId: '',
  179. popupShow: false,
  180. goodsShop: {},
  181. number: 0,
  182. }
  183. },
  184. onLoad(e) {
  185. this.shopId = e.shopId
  186. this.orderId = e.orderId ? e.orderId : uni.getStorageSync('orderId')
  187. this.userId = uni.getStorageSync('userId')
  188. },
  189. onShow() {
  190. this.getGoodList()
  191. this.$Request.getT('/app/common/type/238').then(res => {
  192. if (res.code === 0) {
  193. this.tuiguangImg = res.data.value;
  194. }
  195. });
  196. },
  197. methods: {
  198. // 添加数量
  199. add(item, index) {
  200. // this.count++;
  201. console.log(item, index)
  202. this.goodsList.orderGoodsList[0][index].goodsNum++
  203. let data = {
  204. orderGoodsId: this.goodsList.orderGoodsList[0][index].id,
  205. type: 1,
  206. num: 1,
  207. shopId: this.shopId
  208. }
  209. this.$Request.get("/app/order/updateGoodsNum", data).then(res => {
  210. if (res.code == 0) {
  211. this.getGoodList()
  212. this.getOrderList();
  213. } else {
  214. this.$queue.showToast(res.msg);
  215. this.goodsList.orderGoodsList[0][index].goodsNum--
  216. }
  217. });
  218. },
  219. // 减少数量
  220. noAdd(item, index) {
  221. console.log(item, index)
  222. this.goodsList.orderGoodsList[0][index].goodsNum--
  223. // this.count--;
  224. let data = {
  225. orderGoodsId: this.goodsList.orderGoodsList[0][index].id,
  226. type: 2,
  227. num: 1,
  228. shopId: this.shopId
  229. }
  230. this.$Request.get("/app/order/updateGoodsNum", data).then(res => {
  231. if (res.code == 0) {
  232. this.getGoodList()
  233. this.getOrderList();
  234. }
  235. });
  236. },
  237. isPopupShow() {
  238. // uni.showToast({
  239. // title: '请返回到购物车模块操作',
  240. // icon: 'none'
  241. // })
  242. if (this.myGoodList.length > 0) {
  243. if (this.userId != this.myGoodList[0].userId) {
  244. uni.showToast({
  245. title: '请联系拼单发起人操作',
  246. icon: "none"
  247. })
  248. return
  249. } else {
  250. this.getOrderList();
  251. }
  252. } else {
  253. uni.showToast({
  254. title: '请联系拼单发起人操作',
  255. icon: "none"
  256. })
  257. return
  258. }
  259. },
  260. clear() {
  261. if (this.myGoodList.length > 0) {
  262. if (this.userId != this.myGoodList[0].userId) {
  263. uni.showToast({
  264. title: '请联系拼单发起人操作',
  265. icon: "none"
  266. })
  267. return
  268. }
  269. }
  270. let that = this
  271. uni.showModal({
  272. title: '提示',
  273. content: '确定清空我的订单吗',
  274. success: function(res) {
  275. if (res.confirm) {
  276. console.log('用户点击确定');
  277. let data = {
  278. shopId: that.shopId,
  279. }
  280. that.$Request.post("/app/order/emptyShoppingTrolley", data).then(res => {
  281. if (res.code == 0) {
  282. that.myGoodList = [];
  283. that.getGoodList()
  284. } else {
  285. that.$queue.showToast(res.msg);
  286. }
  287. });
  288. } else if (res.cancel) {
  289. console.log('用户点击取消');
  290. }
  291. }
  292. });
  293. },
  294. // 取消订单
  295. cancel(e) {
  296. if (this.myGoodList.length > 0) {
  297. //检查是不是发起人
  298. if (this.userId != this.myGoodList[0].userId) {
  299. uni.showToast({
  300. title: '请联系拼单发起人操作',
  301. icon: "none"
  302. })
  303. return
  304. }
  305. }
  306. let that = this
  307. console.log(e)
  308. uni.showModal({
  309. title: '提示',
  310. content: '确认取消订单吗?',
  311. success: function(res) {
  312. if (res.confirm) {
  313. console.log('用户点击确定');
  314. let data = {
  315. orderId: that.orderId
  316. }
  317. that.$Request.post("/app/order/deleteOrder", data).then(res => {
  318. if (res.code == 0) {
  319. uni.showToast({
  320. title: '订单取消成功',
  321. icon: 'none'
  322. })
  323. uni.removeStorageSync('orderId')
  324. setTimeout(function() {
  325. uni.navigateBack()
  326. }, 1000)
  327. } else {
  328. uni.showToast({
  329. title: res.msg,
  330. icon: 'none'
  331. })
  332. }
  333. });
  334. } else if (res.cancel) {
  335. console.log('用户点击取消');
  336. }
  337. }
  338. });
  339. },
  340. // 切换外卖/自提
  341. tabSwidth(e) {
  342. this.orderType = e
  343. this.getOrderList()
  344. },
  345. goGoodsList() {
  346. uni.setStorageSync('types',1)
  347. uni.navigateBack({
  348. })
  349. // uni.navigateTo({
  350. // url: '/pages/index/shop/goodsList?shopId=' + this.shopId
  351. // })
  352. },
  353. // 获取购物车商品列表
  354. getOrderList() {
  355. let data = {
  356. shopId: this.shopId,
  357. page: 1,
  358. limit: 1000,
  359. status: 1,
  360. // orderType: this.orderType
  361. }
  362. this.$Request.get("/app/order/selectAllOrderList", data).then(res => {
  363. if (res.code == 0 && res.data.pageUtils.list.length) {
  364. this.goodsList = res.data.pageUtils.list[0]
  365. if (this.goodsList && this.goodsList.orderGoodsList && this.goodsList.orderGoodsList[0]) {
  366. this.totalPrice = res.data.money
  367. this.goodsNum = 0
  368. this.goodsList.orderGoodsList[0].forEach(res => {
  369. res.goodsPicture = res.goodsPicture.split(',')
  370. this.goodsNum += res.goodsNum
  371. })
  372. this.popupShow = true
  373. if (!this.goodsList.orderGoodsList[0].length) {
  374. this.popupShow = false
  375. }
  376. }
  377. }
  378. uni.hideLoading()
  379. });
  380. },
  381. getGoodList() {
  382. this.number = 0;
  383. let data = {
  384. orderId: this.orderId,
  385. }
  386. this.$Request.get("/app/order/selectShareTheBill", data).then(res => {
  387. if (res.code == 0) {
  388. if(!res.data){
  389. uni.showToast({
  390. title: '拼单已结束',
  391. icon: 'none'
  392. })
  393. uni.removeStorageSync('orderId')
  394. setTimeout(function() {
  395. uni.navigateBack()
  396. }, 1000)
  397. }
  398. this.goodsShop = res.data.goodsShop
  399. // this.goodsList = res.data.orderGoodsList
  400. this.myGoodList = res.data.parentShareTheBill
  401. let mySum = 0
  402. for (var i = 0; i < this.myGoodList.length; i++) {
  403. if (i == 0) {
  404. mySum = this.myGoodList[i].goodsPrice * this.myGoodList[i].goodsNum
  405. this.number += this.myGoodList[i].goodsNum
  406. } else {
  407. mySum = mySum + this.myGoodList[i].goodsPrice * this.myGoodList[i].goodsNum
  408. this.number += this.myGoodList[i].goodsNum
  409. }
  410. if (i == (this.myGoodList.length - 1)) {
  411. this.myGoodList[i].goodsPrice = mySum
  412. this.totalPrice = mySum
  413. }
  414. }
  415. this.otherGoodList = res.data.orderGoodsList
  416. var sum = 0
  417. for (var i = 0; i < this.otherGoodList.length; i++) {
  418. if (i == 0) {
  419. sum = this.otherGoodList[i].goodsPrice * this.otherGoodList[i].goodsNum
  420. this.number += this.otherGoodList[i].goodsNum
  421. } else {
  422. this.number += this.otherGoodList[i].goodsNum
  423. if (this.otherGoodList[i].userId == this.otherGoodList[i - 1].userId) {
  424. sum = sum + this.otherGoodList[i].goodsPrice * this.otherGoodList[i].goodsNum
  425. } else {
  426. this.otherGoodList[i - 1].goodsPrice = sum
  427. sum = this.otherGoodList[i].goodsPrice * this.otherGoodList[i].goodsNum
  428. }
  429. }
  430. if (i == (this.otherGoodList.length - 1)) {
  431. this.otherGoodList[i].goodsPrice = sum
  432. this.totalPrice += sum
  433. }
  434. }
  435. } else {
  436. uni.removeStorageSync('orderId')
  437. this.$queue.showToast(res.msg);
  438. setTimeout(function() {
  439. uni.navigateBack()
  440. }, 1000)
  441. }
  442. });
  443. },
  444. // 去结算
  445. goConfirm() {
  446. if (!this.userId) {
  447. uni.navigateTo({
  448. url: '/pages/public/login'
  449. })
  450. return
  451. }
  452. if (this.myGoodList.length > 0) {
  453. if (this.userId != this.myGoodList[0].userId) {
  454. uni.showToast({
  455. title: '请联系拼单发起人结算订单',
  456. icon: "none"
  457. })
  458. return
  459. }
  460. }
  461. if (this.myGoodList.length > 0 || this.otherGoodList.length > 0) {
  462. uni.navigateTo({
  463. url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=2&orderId=' +
  464. this.orderId
  465. })
  466. } else {
  467. uni.showToast({
  468. title: '请先添加商品',
  469. icon: "none"
  470. })
  471. }
  472. },
  473. }
  474. }
  475. </script>
  476. <style>
  477. .Switch {
  478. width: 164rpx;
  479. height: 62rpx;
  480. color: #FFFFFF;
  481. background: #FCD202;
  482. border-radius: 30rpx;
  483. display: flex;
  484. align-items: center;
  485. padding: 2rpx;
  486. }
  487. .Switch>view {
  488. /* flex: 1; */
  489. width: 80rpx;
  490. text-align: center;
  491. line-height: 62rpx;
  492. height: 58rpx;
  493. }
  494. .selSwitch {
  495. color: #333333;
  496. background: #FFFFFF;
  497. border-radius: 30rpx;
  498. }
  499. .btn {
  500. width: 320rpx;
  501. height: 88rpx;
  502. color: #333333;
  503. font-size: 30rpx;
  504. font-weight: 500;
  505. text-align: center;
  506. line-height: 88rpx;
  507. border-radius: 50rpx;
  508. background: #FCD202;
  509. border: 2rpx solid #FCD202;
  510. margin: 0;
  511. }
  512. button::after {
  513. border: 2rpx solid #FCD202;
  514. }
  515. .btn1 {
  516. width: 320rpx;
  517. height: 88rpx;
  518. color: #999999;
  519. font-weight: 500;
  520. font-size: 30rpx;
  521. text-align: center;
  522. line-height: 88rpx;
  523. border-radius: 44rpx;
  524. border: 2rpx solid #CCCCCC;
  525. }
  526. .btn2 {
  527. width: 320rpx;
  528. height: 88rpx;
  529. color: #333333;
  530. font-weight: 500;
  531. text-align: center;
  532. line-height: 88rpx;
  533. border-radius: 50rpx;
  534. background: #FCD202;
  535. }
  536. /* 结算 */
  537. .settlement {
  538. width: 94%;
  539. background-color: #000000;
  540. line-height: 3.4;
  541. border-radius: 49rpx;
  542. position: fixed;
  543. bottom: 10rpx;
  544. left: 3%;
  545. display: flex;
  546. justify-content: space-between;
  547. }
  548. .settlement_le {
  549. width: 45%;
  550. padding-left: 20%;
  551. color: #FFFFFF;
  552. font-size: 30rpx;
  553. }
  554. .settlement_le text {
  555. font-size: 22rpx;
  556. }
  557. .settlement_ri {
  558. width: 35%;
  559. background-color: #FCD202;
  560. font-family: PingFang SC;
  561. font-weight: 800;
  562. color: #333333;
  563. text-align: center;
  564. border-top-right-radius: 49rpx;
  565. border-bottom-right-radius: 49rpx;
  566. }
  567. .settlement_img {
  568. width: 91rpx;
  569. height: 96rpx;
  570. position: absolute;
  571. // bottom: 30rpx;
  572. left: 5%;
  573. }
  574. .settlement_img image {
  575. width: 74rpx;
  576. height: 81rpx;
  577. }
  578. .settlement_hot {
  579. width: 35rpx;
  580. height: 35rpx;
  581. line-height: 35rpx;
  582. text-align: center;
  583. border-radius: 50%;
  584. position: absolute;
  585. top: -10rpx;
  586. right: 0;
  587. background-color: #FF130A;
  588. color: #FFFFFF;
  589. font-size: 20rpx;
  590. font-weight: bold;
  591. color: #FFFFFF;
  592. }
  593. .sBtn1 {
  594. width: 128rpx;
  595. height: 48rpx;
  596. color: #999999;
  597. text-align: center;
  598. line-height: 48rpx;
  599. border: 2rpx solid #CCCCCC;
  600. border-radius: 24rpx;
  601. }
  602. .sBtn2 {
  603. width: 128rpx;
  604. height: 48rpx;
  605. color: #FF130A;
  606. text-align: center;
  607. line-height: 48rpx;
  608. border: 2rpx solid #FF130A;
  609. border-radius: 24rpx;
  610. margin-left: 20rpx;
  611. }
  612. .sBtn3 {
  613. width: 170rpx;
  614. height: 48rpx;
  615. color: #999999;
  616. text-align: center;
  617. line-height: 48rpx;
  618. border: 2rpx solid #CCCCCC;
  619. border-radius: 24rpx;
  620. }
  621. .popup {
  622. /* height: 500rpx; */
  623. max-height: 500rpx;
  624. /* overflow-y: auto; */
  625. }
  626. .popup {
  627. /* height: 500rpx; */
  628. max-height: 500rpx;
  629. /* overflow-y: auto; */
  630. }
  631. .tabBtn {
  632. /* background-color: #f6f6fa; */
  633. height: 60rpx;
  634. line-height: 60rpx;
  635. color: #999999;
  636. font-size: 38rpx;
  637. }
  638. .Switch {
  639. width: 164rpx;
  640. height: 62rpx;
  641. color: #FFFFFF;
  642. background: #FCD202;
  643. border-radius: 30rpx;
  644. display: flex;
  645. align-items: center;
  646. padding: 2rpx;
  647. }
  648. .Switch>view {
  649. /* flex: 1; */
  650. width: 80rpx;
  651. text-align: center;
  652. line-height: 62rpx;
  653. height: 58rpx;
  654. }
  655. .selSwitch {
  656. color: #333333;
  657. background: #FFFFFF;
  658. border-radius: 30rpx;
  659. }
  660. .hintPopul {
  661. width: 100%;
  662. height: 100vh;
  663. position: absolute;
  664. top: 0;
  665. background: rgba(0, 0, 0, .4);
  666. }
  667. .content {
  668. position: absolute;
  669. left: 0;
  670. right: 0;
  671. top: 0;
  672. bottom: 0;
  673. margin: auto;
  674. text-align: center;
  675. width: 500rpx;
  676. height: 400rpx;
  677. border-radius: 20rpx;
  678. background-color: #fff;
  679. padding-top: 120rpx;
  680. }
  681. .content image {
  682. position: absolute;
  683. top: -50rpx;
  684. left: 0;
  685. right: 0;
  686. margin: auto;
  687. }
  688. .hintText {
  689. font-size: 30rpx;
  690. }
  691. .VerticalNav.nav {
  692. width: 200upx;
  693. white-space: initial;
  694. }
  695. .VerticalNav.nav .cu-item {
  696. width: 100%;
  697. text-align: center;
  698. background-color: #f1f1f1;
  699. margin: 0;
  700. border: none;
  701. height: 50px;
  702. position: relative;
  703. }
  704. .VerticalNav.nav .cu-item.cur {
  705. background-color: #fff;
  706. }
  707. .VerticalBox {
  708. display: flex;
  709. }
  710. .VerticalMain {
  711. background-color: #f1f1f1;
  712. flex: 1;
  713. }
  714. .detail_describe_text2 {
  715. font-weight: 500;
  716. margin-top: 2%;
  717. color: #999999;
  718. }
  719. .detail_account_bottom {
  720. margin-top: 20rpx;
  721. width: 100%;
  722. display: flex;
  723. justify-content: space-between;
  724. /* margin: 4% 0 3%; */
  725. }
  726. .detail_account_bottom_le {
  727. width: 47.5%;
  728. /* margin-right: 5%; */
  729. border-radius: 44rpx;
  730. text-align: center;
  731. line-height: 2.8;
  732. border: 2rpx solid #FCD202;
  733. }
  734. .detail_account_bottom_ri {
  735. width: 47.5%;
  736. border-radius: 44rpx;
  737. text-align: center;
  738. line-height: 2.8;
  739. background-color: #FCD202;
  740. }
  741. .food_all {
  742. position: relative;
  743. }
  744. .text-through {
  745. text-decoration: line-through
  746. }
  747. /* 食物 */
  748. .food {
  749. width: 100%;
  750. overflow: hidden;
  751. // position: absolute;
  752. // top: 350rpx;
  753. background-color: #FFFFFF;
  754. border-top-left-radius: 18rpx;
  755. border-top-right-radius: 18rpx;
  756. }
  757. .food_address {
  758. margin: 3%;
  759. display: flex;
  760. justify-content: space-between;
  761. align-items: center;
  762. margin-top: 120rpx;
  763. }
  764. .food_address_le {
  765. width: 75%;
  766. }
  767. .food_address_le_top {
  768. display: flex;
  769. align-items: center;
  770. justify-content: space-between;
  771. }
  772. .food_address_le_top_le {
  773. width: 40rpx;
  774. height: 37rpx;
  775. }
  776. .food_address_le_top_le image {
  777. width: 40rpx;
  778. height: 37rpx;
  779. }
  780. .food_address_le_top_ce {
  781. line-height: 1.6;
  782. font-size: 38rpx;
  783. font-weight: 600;
  784. color: #333333;
  785. }
  786. .food_address_le_top_ce_ri {
  787. width: 14rpx;
  788. /* margin: 1% 0 0 2%; */
  789. height: 24rpx;
  790. margin-left: 2%;
  791. }
  792. .food_address_le_top_ce_ri image {
  793. width: 14rpx;
  794. height: 24rpx;
  795. }
  796. .food_address_text {
  797. font-weight: 500;
  798. font-size: 24rpx;
  799. color: #999999;
  800. }
  801. .food_address_ri {
  802. width: 24%;
  803. height: 55rpx;
  804. display: flex;
  805. padding: 0.5% 1%;
  806. background-color: #FCD202;
  807. border-radius: 31rpx;
  808. color: #FFFFFF;
  809. }
  810. .food_address_ri_sty {
  811. flex: 1;
  812. text-align: center;
  813. padding-top: 4%;
  814. font-size: 24rpx;
  815. }
  816. .food_address_ri_sty_active {
  817. width: 100%;
  818. overflow: hidden;
  819. background-color: #FFFFFF;
  820. border-radius: 31rpx;
  821. color: #333333;
  822. text-align: center;
  823. }
  824. /* 结算 */
  825. .settlement {
  826. width: 94%;
  827. background-color: #000000;
  828. line-height: 3.4;
  829. border-radius: 49rpx;
  830. position: fixed;
  831. bottom: 10rpx;
  832. left: 3%;
  833. display: flex;
  834. justify-content: space-between;
  835. }
  836. .settlement1 {
  837. width: 94%;
  838. background-color: #000000;
  839. line-height: 2.8;
  840. border-radius: 49rpx;
  841. position: relative;
  842. /* bottom: 10rpx; */
  843. left: 0;
  844. right: 0;
  845. /* left: 3%; */
  846. display: flex;
  847. justify-content: space-between;
  848. margin: 20rpx auto;
  849. }
  850. .settlement_le {
  851. width: 45%;
  852. padding-left: 20%;
  853. color: #FFFFFF;
  854. font-size: 30rpx;
  855. }
  856. .settlement_le text {
  857. font-size: 22rpx;
  858. }
  859. .settlement_ri {
  860. width: 35%;
  861. background-color: #FCD202;
  862. font-family: PingFang SC;
  863. font-weight: 800;
  864. color: #333333;
  865. text-align: center;
  866. border-top-right-radius: 49rpx;
  867. border-bottom-right-radius: 49rpx;
  868. }
  869. .settlement_img {
  870. width: 91rpx;
  871. height: 96rpx;
  872. position: absolute;
  873. // bottom: 30rpx;
  874. left: 5%;
  875. }
  876. .settlement_img image {
  877. width: 74rpx;
  878. height: 81rpx;
  879. }
  880. .settlement_hot {
  881. width: 35rpx;
  882. height: 35rpx;
  883. line-height: 35rpx;
  884. text-align: center;
  885. border-radius: 50%;
  886. position: absolute;
  887. top: -10rpx;
  888. right: 0;
  889. background-color: #FF130A;
  890. color: #FFFFFF;
  891. font-size: 20rpx;
  892. font-weight: bold;
  893. color: #FFFFFF;
  894. }
  895. .select_all {
  896. width: 100%;
  897. position: relative;
  898. }
  899. /* 餐厅 */
  900. .select {
  901. color: #000000;
  902. font-weight: bold;
  903. background-color: #fff;
  904. z-index: 10;
  905. }
  906. .select_line {
  907. width: 15%;
  908. height: 6rpx;
  909. margin: 0 auto 4%;
  910. background: #E6E6E6;
  911. border-radius: 4rpx;
  912. }
  913. .select_search {
  914. width: 100%;
  915. margin: 2% 0;
  916. display: flex;
  917. align-items: center;
  918. }
  919. .select_search_le {
  920. /* width: 10%; */
  921. font-size: 30rpx;
  922. line-height: 2.5;
  923. margin-right: 1%;
  924. }
  925. .select_search_ce {
  926. /* width: 5%; */
  927. /* margin-top: 1%; */
  928. margin-right: 20rpx;
  929. margin-left: 6rpx;
  930. /* margin: 0 20rpx; */
  931. width: 20rpx;
  932. height: 10rpx;
  933. }
  934. .select_search_ri {
  935. /* width: 84%; */
  936. height: 72rpx;
  937. flex: 1;
  938. display: flex;
  939. }
  940. .select_search_ri input {
  941. flex: 1;
  942. /* width: 100%; */
  943. height: 72rpx;
  944. background: #F5F5F5;
  945. color: #999999;
  946. border-radius: 36rpx;
  947. text-decoration: 42rpx;
  948. text-align: center;
  949. }
  950. /* 附近 */
  951. .nearby {
  952. width: 100%;
  953. position: relative;
  954. }
  955. .nearby_text {
  956. width: 18%;
  957. font-size: 30rpx;
  958. font-weight: 800;
  959. color: #333333;
  960. text-align: center;
  961. border-bottom: 16rpx solid #FCD202;
  962. /* line-height: 20rpx; */
  963. margin-top: 10rpx;
  964. }
  965. .nearby_address_active {
  966. border: 2rpx solid #FCD202;
  967. width: 100%;
  968. padding: 3%;
  969. margin-top: 3%;
  970. border-radius: 10upx;
  971. display: flex;
  972. }
  973. .nearby_address {
  974. width: 100%;
  975. padding: 3%;
  976. margin-top: 3%;
  977. border-radius: 10upx;
  978. display: flex;
  979. }
  980. .nearby_address_le {
  981. flex: 1;
  982. }
  983. .nearby_address_ri {
  984. line-height: 2.5;
  985. text-align: right;
  986. /* flex: 1; */
  987. }
  988. .nearby_text2 {
  989. /* line-height: 1.5; */
  990. display: flex;
  991. justify-content: space-between;
  992. align-items: center;
  993. }
  994. .nearby_text2_ {
  995. font-size: 30rpx;
  996. font-weight: 800;
  997. color: #333333;
  998. }
  999. .nearby_text3 {
  1000. font-size: 24rpx;
  1001. font-weight: 500;
  1002. color: #999999;
  1003. margin-top: 2%;
  1004. }
  1005. /* 添加地址 */
  1006. .goorder {
  1007. width: 100%;
  1008. padding: 2% 3%;
  1009. position: fixed;
  1010. bottom: 0;
  1011. background-color: #FFFFFF;
  1012. border-top: 1rpx solid #999999;
  1013. }
  1014. .goorder_but {
  1015. width: 100%;
  1016. line-height: 2.5;
  1017. text-align: center;
  1018. background: #FCD202;
  1019. border-radius: 36rpx;
  1020. }
  1021. </style>