pindanDet.vue 27 KB

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