耀实惠小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

812 lines
22 KiB

  1. <template>
  2. <view class="confirm-order flex-1 position-relative" :class="[{'confirm-order-p-b': consumption}]">
  3. <view class="confirm-order-item flex align-center">
  4. <view class="flex-11">
  5. <view class="flex align-center">
  6. <view class="m-r-14">
  7. <u-icon size="40" name="map-fill" color="#01AEEA"></u-icon>
  8. </view>
  9. <view class="confirm-order-address font-30">
  10. {{ location.type === 'shop' ? `站点:${location.name}` : `${location.shippingAddress} ${location.addressDetail}` }}
  11. </view>
  12. </view>
  13. <view class="confirm-order-user m-t-20" v-if="location.type === 'user'">
  14. <text class="m-r-40">{{ location.name }}</text>
  15. <text>{{ location.phone }}</text>
  16. </view>
  17. </view>
  18. <!-- 站点 -->
  19. <view class="shopIcon shopIcon-color" v-if="location.type === 'shop'" @click="selectAddress(0)">
  20. 站点
  21. <u-icon size="30" name="arrow-right" color="#ccc"></u-icon>
  22. </view>
  23. <!-- 地址 -->
  24. <view class="shopIcon" @click="selectAddress(1)">
  25. <text v-if="location.type === 'shop'">地址</text>
  26. <u-icon size="30" name="arrow-right" color="#ccc"></u-icon>
  27. </view>
  28. </view>
  29. <view class="confirm-order-item">
  30. <view v-for="(item, index) in goodsProducts.list" :key="item.id">
  31. <view class="confirm-order-goods bg-white m-b-20"
  32. v-show="index < (!showItem ? 2 : goodsProducts.list.length - 1) ">
  33. <view class="flex-1 flex align-start">
  34. <view class="m-r-20">
  35. <image class="confirm-order-goods-image" :src="item.shopImage2" mode="aspectFill"></image>
  36. </view>
  37. <view class="confirm-order-goods-info flex-1 flex flex-column justify-between">
  38. <view class="confirm-order-goods-info-title ">{{ item.shopName }}</view>
  39. <view class="confirm-order-goods-info-specs">{{ item.shopSkuParam }}</view>
  40. <view class="flex align-center justify-between">
  41. <view class="font-24 text-red flex align-end">
  42. <text v-if="options.orderType != 2"></text>
  43. <text class="font-32">{{ item.price.toFixed(2)/item.shopNum }}</text>
  44. <!-- <text class="font-32">{{ item.payMoney.toFixed(2)/item.shopNum }}</text> -->
  45. <text v-if="options.orderType == 2">元兑购金</text>
  46. </view>
  47. <view class="confirm-order-goods-number">x{{ item.shopNum }}</view>
  48. </view>
  49. </view>
  50. </view>
  51. </view>
  52. </view>
  53. <view class="font-24 text-grey p-t-10 p-b-10 flex align-center justify-center"
  54. v-if="goodsProducts.list.length > 3" @click="showItem = !showItem">
  55. {{ !showItem ? `展开(共${goodsProducts.list.length}件)` : '收起' }}
  56. <u-icon :name="!showItem ? 'arrow-down' : 'arrow-up'"></u-icon>
  57. </view>
  58. </view>
  59. <view class="confirm-order-item">
  60. <view class="font-30 font-weight-bold m-b-10">价格明细</view>
  61. <view class="flex align-center justify-between m-b-20">
  62. <view class="">
  63. <text class="m-r-10 font-28">商品总价</text>
  64. <!-- <text class="font-24 text-grey">{{ goodsProducts.list.length }}件商品</text> -->
  65. </view>
  66. <view class="flex align-end text-black">
  67. <text class="font-22" v-if="options.orderType != 2"></text>
  68. <text class="font-28">{{ goodsProducts.amount.toFixed(2) }}</text>
  69. <text class="font-28" v-if="options.orderType == 2">元兑购金</text>
  70. </view>
  71. </view>
  72. <view class="flex align-center justify-between m-t-40" v-if="options.orderType != 2"
  73. @click="handleRadio('weChat', 'consumption')">
  74. <view class="flex align-center">
  75. <image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL+'wx.png'" />
  76. <text class="font-28">微信支付</text>
  77. </view>
  78. <view class="confirm-order-radio flex align-center justify-center" :class="{'is-active': weChat}">
  79. <u-icon name="checkbox-mark" color="#fff" v-if="weChat"></u-icon>
  80. </view>
  81. </view>
  82. <view class="flex align-center justify-between m-t-40"
  83. v-if="(options.orderType == 0 || options.orderType == 3) && options.isZone != 1"
  84. @click="handleRadio('consumption', 'weChat')">
  85. <view class="flex align-center">
  86. <image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL+'xfj.png'" />
  87. <text class="font-28">消费金支付</text>
  88. </view>
  89. <view class="flex align-center">
  90. <view class="flex align-end text-red font-24 m-r-10">
  91. <text>消费金余额</text>
  92. <text class="font-20"></text>
  93. <text>{{ goodsProducts.deduction > 0 ? goodsProducts.deduction : 0 }}</text>
  94. </view>
  95. <view class="confirm-order-radio flex align-center justify-center"
  96. :class="{'is-active': consumption}">
  97. <u-icon name="checkbox-mark" color="#fff" v-if="consumption"></u-icon>
  98. </view>
  99. </view>
  100. </view>
  101. <view class="flex align-center justify-between m-t-40"
  102. v-if="goodsProducts.coupon && (options.orderType == 0 || options.orderType == 3)" @click="toCoupon">
  103. <view class="flex align-center">
  104. <image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL +'yhj.png'" />
  105. <text class="font-28 m-r-10">优惠券</text>
  106. <text class="font-24 text-grey" v-if="Object.keys(coupon).length">{{ coupon.name }}</text>
  107. </view>
  108. <view class="flex align-center">
  109. <view class="flex align-end text-red font-24 m-r-10" v-if="Object.keys(coupon).length">
  110. <text></text>
  111. <text class="font-20"></text>
  112. <text>{{ coupon.price }}</text>
  113. </view>
  114. <text class="font-28 m-r-10 text-grey" v-else>去使用</text>
  115. <u-icon name="arrow-right"></u-icon>
  116. </view>
  117. </view>
  118. </view>
  119. <view class="confirm-order-item align-center flex justify-between" v-if="options.orderType != 2">
  120. <view class="flex align-center">
  121. <text class="font-28 m-r-6">运费</text>
  122. <text class="font-24 text-grey">{{ goodsProducts.FullMinusPrice }}元包邮</text>
  123. </view>
  124. <text class="font-28 text-red">{{ goodsProducts.freight }}</text>
  125. </view>
  126. <view class="confirm-order-tips position-fixed left-0 text-red" v-if="consumption">
  127. 微信支付可返兑购金或消费金
  128. 消费金支付不返兑购金与消费金
  129. </view>
  130. <view class="confirm-order-footer position-fixed bottom-0 left-0 flex align-center justify-between">
  131. <view class="flex align-end font-32">
  132. <text>合计</text>
  133. <view class="font-24 text-red flex align-end" v-if="options.orderType !== 2">
  134. <text></text>
  135. <text class="font-42">{{ totalprice | numberFormat }}</text>
  136. </view>
  137. <!-- 兑购 -->
  138. <view class="font-24 text-red flex align-end" v-else>
  139. <text class="font-32">{{ goodsProducts.amount.toFixed(2) }} 元兑购金</text>
  140. </view>
  141. </view>
  142. <u-button type="primary" shape="circle" class="confirm-order-footer-button" v-if="options.orderType != 2" @click="onPayment">支付</u-button>
  143. <u-button type="primary" shape="circle" class="confirm-order-footer-button" v-if="options.orderType == 2" @click="onPayment">兑购</u-button>
  144. </view>
  145. </view>
  146. </template>
  147. <script>
  148. import {
  149. IMG_URL
  150. } from '@/env.js'
  151. export default {
  152. data() {
  153. return {
  154. IMG_URL,
  155. showItem: false,
  156. consumption: '',
  157. weChat: true,
  158. goodsProducts: [],
  159. options: {},
  160. coupon: {},
  161. allMoney: '' ,// 合计多少钱
  162. };
  163. },
  164. onLoad(options) {
  165. this.options = options
  166. this.getConfirmOrderGoodsInfo()
  167. // uni.$on('SELECT_ADDRESS', obj => {
  168. // this.goodsProducts.address = { ...this.goodsProducts.address, ...obj}
  169. // console.log(obj)
  170. // })
  171. uni.$on('coupon', obj => {
  172. console.log(obj)
  173. this.coupon = obj
  174. })
  175. },
  176. onUnload() {
  177. // uni.$off('SELECT_ADDRESS')
  178. uni.$off('coupon')
  179. },
  180. computed: {
  181. totalprice() {
  182. let consumption = this.consumption ? this.goodsProducts.deduction : 0 // 消费金
  183. let coupon = Object.keys(this.coupon).length ? this.coupon.price : 0 // 优惠券
  184. // 不要减去消费金 - consumption
  185. let payPrice = this.goodsProducts.amount - coupon
  186. // 包邮 满多少包邮问题 goodsProducts.FullMinusPrice goodsProducts.freight
  187. payPrice = this.goodsProducts.amount >= this.goodsProducts.FullMinusPrice ? payPrice : payPrice + this
  188. .goodsProducts.freight
  189. this.allMoney = payPrice
  190. return payPrice > 0 ? payPrice : 0
  191. },
  192. location() {
  193. return this.$store.state.location
  194. },
  195. shopId() {
  196. return this.location.type === 'shop' ? this.location.id : ''
  197. // return this.location.id
  198. }
  199. },
  200. methods: {
  201. handleRadio(key1, key2) {
  202. if (this[key1]) return
  203. this[key1] = true
  204. this[key2] = false
  205. },
  206. selectAddress(index) {
  207. // index 为 1 地址 为 0 站点
  208. if(index == 1){
  209. this.$tools.navigateTo({
  210. url: '/pages/my/address/address?type=select'
  211. })
  212. }else{
  213. this.$tools.navigateTo({
  214. url: '/pagesC/receiving/receiving?type=select'
  215. })
  216. }
  217. //
  218. // if (this.location.type === 'shop') {
  219. // this.$tools.navigateTo({
  220. // url: '/pagesC/receiving/receiving?type=select'
  221. // })
  222. // } else {
  223. // this.$tools.navigateTo({
  224. // url: '/pages/my/address/address?type=select'
  225. // })
  226. // }
  227. },
  228. getConfirmOrderGoodsInfo() {
  229. console.log('this.options.orderType', this.options.orderType)
  230. uni.showLoading()
  231. let type = this.options.orderType === 3 ? 2 : this.options.orderType
  232. let params = {
  233. ids: this.options.ids,
  234. type,
  235. }
  236. console.log(this.options)
  237. params = this.shopId ? {
  238. ...params,
  239. shopId: this.shopId
  240. } : params
  241. this.$api('getConfirmOrderGoodsInfo', params)
  242. .then(res => {
  243. uni.hideLoading()
  244. if (res.code === 200) {
  245. res.result.list.forEach(item => item.shopImage2 = item.shopImage.split(',')[0])
  246. this.goodsProducts = res.result
  247. } else {
  248. this.$Toast(res.message)
  249. }
  250. })
  251. .catch(err => {
  252. this.$Toast(err.message)
  253. uni.hideLoading()
  254. })
  255. },
  256. // getaddress_lo() {
  257. // // 获取用户的经纬度
  258. // wx.chooseLocation({
  259. // success: (data) => {
  260. // // 获取经纬度
  261. // console.log(data);
  262. // let {latitude, longitude } = data
  263. // this.longitude = longitude;
  264. // this.latitude = latitude;
  265. // // 调取站长列表
  266. // this.getStationmasterList(longitude,latitude);
  267. // },
  268. // fail: () => {
  269. // wx.getSetting({
  270. // success: function(res) {
  271. // var statu = res.authSetting;
  272. // console.log(statu);
  273. // if (!statu['scope.userLocation']) {
  274. // console.log(123);
  275. // wx.showModal({
  276. // title: '是否授权当前位置',
  277. // content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
  278. // success(tip) {
  279. // if (tip.confirm) {
  280. // wx.openSetting({
  281. // success: function(data) {
  282. // if (data.authSetting["scope.userLocation"] === true) {
  283. // this.$Toast('授权成功');
  284. // //授权成功之后,再调用chooseLocation选择地方
  285. // setTimeout(function(){
  286. // wx.chooseLocation({
  287. // success: (data) => {
  288. // // 获取经纬度
  289. // let {latitude, longitude } = data
  290. // this.longitude = longitude;
  291. // this.latitude = latitude;
  292. // // 调取站长列表
  293. // this.getStationmasterList(longitude,latitude);
  294. // }
  295. // })
  296. // },1000)
  297. // }
  298. // }
  299. // })
  300. // } else {
  301. // this.$Toast('授权失败');
  302. // }
  303. // }
  304. // })
  305. // }
  306. // }
  307. // })
  308. // }
  309. // });
  310. // },
  311. getStationmasterList(longitude, latitude) {
  312. const params = {
  313. longitude,
  314. latitude
  315. }
  316. this.$api('getStationmasterList', params).then(res => {
  317. let {
  318. code,
  319. result,
  320. message
  321. } = res;
  322. if (code == 200) {
  323. result.forEach(item => {
  324. item.distance = this.GetDistance(item.latitude, item.longitude);
  325. })
  326. if (result.length == 0) {
  327. // 没有 站长就不用做什么
  328. }
  329. // 有站长 用户选择一个
  330. console.log(this.addressData)
  331. } else {
  332. this.$Toast(message)
  333. }
  334. }).catch(err => {
  335. this.$Toast(err.message)
  336. })
  337. },
  338. onPayment() {
  339. // 查找附近有没有站长
  340. const that = this
  341. // this.getaddress_lo()
  342. if (this.options.orderType == 0) {
  343. // couponId: this.coupon?.couponId || '',
  344. let params = {
  345. addressId: this.location.id,
  346. ids: this.options.ids,
  347. type: this.consumption ? 1 : 0,
  348. shopId: this.shopId
  349. }
  350. // 1 消费金支付 提示
  351. if (params.type == 1) {
  352. uni.showModal({
  353. title: `确定使用${this.allMoney}元消费金抵购`,
  354. success(res) {
  355. if (res.confirm) {
  356. // 确定
  357. that.$api('createOrder', params).then(res => {
  358. let {
  359. code,
  360. result,
  361. message
  362. } = res
  363. if (res.code === 200) {
  364. !that.consumption && that.weChatPay(result)
  365. if (that.consumption) {
  366. that.$Toast(message)
  367. setTimeout(() => {
  368. uni.redirectTo({
  369. url: '/pages/my/order/index?status=1'
  370. })
  371. }, 1000)
  372. }
  373. uni.$emit('updateShoppingCartList')
  374. } else {
  375. that.$Toast(message)
  376. if(message == '地址信息错误'){
  377. that.$tools.navigateTo({
  378. url: '/pages/my/address/address?type=select'
  379. })
  380. }else{
  381. setTimeout(() => {
  382. uni.redirectTo({
  383. url: '/pages/my/order/index?status=0'
  384. })
  385. }, 1000)
  386. }
  387. }
  388. console.log(res)
  389. })
  390. } else {
  391. // 取消
  392. }
  393. }
  394. })
  395. } else {
  396. this.$api('createOrder', params)
  397. .then(res => {
  398. let {
  399. code,
  400. result,
  401. message
  402. } = res
  403. if (res.code === 200) {
  404. !this.consumption && this.weChatPay(result)
  405. if (this.consumption) {
  406. this.$Toast(message)
  407. setTimeout(() => {
  408. uni.redirectTo({
  409. url: '/pages/my/order/index?status=1'
  410. })
  411. }, 1000)
  412. }
  413. uni.$emit('updateShoppingCartList')
  414. } else {
  415. this.$Toast(message)
  416. // setTimeout(() => {
  417. // uni.redirectTo({
  418. // url: '/pages/my/order/index?status=0'
  419. // })
  420. // }, 1000)
  421. if(message == '消费余额不足,请选择微信支付'){
  422. console.log(123123)
  423. uni.showModal({
  424. title: `您的消费金不足, 请使用微信进行支付!`,
  425. success(res) {
  426. }
  427. });
  428. } else if(message == '地址信息错误'){
  429. this.$tools.navigateTo({
  430. url: '/pages/my/address/address?type=select'
  431. })
  432. }else{
  433. setTimeout(() => {
  434. uni.redirectTo({
  435. url: '/pages/my/order/index?status=0'
  436. })
  437. }, 1000)
  438. }
  439. }
  440. console.log(res)
  441. })
  442. }
  443. } else { // 拼团 1 && 消费金 2
  444. console.log(this.options.orderType)
  445. let type = this.options.orderType == 1 || this.options.orderType == 3 ? this.consumption ? 1 : 0 : 2
  446. let params = {
  447. addressId: this.location.id,
  448. id: this.options.ids,
  449. type,
  450. shopId: this.shopId
  451. }
  452. const that = this;
  453. if (this.options.orderType == 3 && this.consumption) {
  454. uni.showModal({
  455. title: `确定使用${this.allMoney}元消费金抵购`,
  456. success(res) {
  457. if(res.confirm){
  458. // 确定
  459. that.$api('teamCreateOrderPay', params)
  460. .then(res => {
  461. let {
  462. code,
  463. result,
  464. message
  465. } = res
  466. if (res.code === 200) {
  467. uni.$emit('updateShoppingCartList')
  468. if (type == 0) {
  469. that.weChatPay(result)
  470. } else {
  471. that.$Toast(message)
  472. setTimeout(() => {
  473. uni.redirectTo({
  474. url: '/pages/my/order/index?status=1'
  475. })
  476. }, 1000)
  477. }
  478. } else {
  479. // that.$Toast(message+12)
  480. // setTimeout(() => {
  481. // uni.redirectTo({
  482. // url: '/pages/my/order/index?status=0'
  483. // })
  484. // }, 1000)
  485. if(message == '消费余额不足,请选择微信支付'){
  486. console.log(123123)
  487. uni.showModal({
  488. title: `您的消费金不足, 请使用微信进行支付!`,
  489. success(res) {
  490. }
  491. });
  492. }else if(message == '地址信息错误'){
  493. that.$tools.navigateTo({
  494. url: '/pages/my/address/address?type=select'
  495. })
  496. }else {
  497. setTimeout(() => {
  498. uni.redirectTo({
  499. url: '/pages/my/order/index?status=0'
  500. })
  501. }, 1000)
  502. }
  503. }
  504. console.log(res)
  505. })
  506. }else {
  507. // 取消
  508. }
  509. }
  510. })
  511. }else if(this.options.orderType == 3 && this.weChat) {
  512. that.$api('teamCreateOrderPay', params)
  513. .then(res => {
  514. let {
  515. code,
  516. result,
  517. message
  518. } = res
  519. if (res.code === 200) {
  520. uni.$emit('updateShoppingCartList')
  521. if (type == 0) {
  522. that.weChatPay(result)
  523. } else {
  524. that.$Toast(message)
  525. setTimeout(() => {
  526. uni.redirectTo({
  527. url: '/pages/my/order/index?status=1'
  528. })
  529. }, 1000)
  530. }
  531. } else {
  532. that.$Toast(message)
  533. // setTimeout(() => {
  534. // uni.redirectTo({
  535. // url: '/pages/my/order/index?status=0'
  536. // })
  537. // }, 1000)
  538. if(message == '地址信息错误'){
  539. that.$tools.navigateTo({
  540. url: '/pages/my/address/address?type=select'
  541. })
  542. }else{
  543. setTimeout(() => {
  544. uni.redirectTo({
  545. url: '/pages/my/order/index?status=0'
  546. })
  547. }, 1000)
  548. }
  549. }
  550. console.log(res)
  551. })
  552. } else {
  553. this.$api('teamCreateOrderPay', params)
  554. .then(res => {
  555. let {
  556. code,
  557. result,
  558. message
  559. } = res
  560. if (res.code === 200) {
  561. uni.$emit('updateShoppingCartList')
  562. if (type == 0) {
  563. this.weChatPay(result)
  564. } else {
  565. this.$Toast(message)
  566. setTimeout(() => {
  567. uni.redirectTo({
  568. url: '/pages/my/order/index?status=1'
  569. })
  570. }, 1000)
  571. }
  572. } else {
  573. this.$Toast(message)
  574. if(message == '地址信息错误'){
  575. this.$tools.navigateTo({
  576. url: '/pages/my/address/address?type=select'
  577. })
  578. }else{
  579. setTimeout(() => {
  580. uni.redirectTo({
  581. url: '/pages/my/order/index?status=0'
  582. })
  583. }, 1000)
  584. }
  585. // setTimeout(() => {
  586. // uni.redirectTo({
  587. // url: '/pages/my/order/index?status=0'
  588. // })
  589. // }, 1000)
  590. }
  591. console.log(res)
  592. })
  593. }
  594. }
  595. },
  596. weChatPay(params) {
  597. uni.requestPayment({
  598. provider: 'wxpay',
  599. timeStamp: params.timeStamp,
  600. nonceStr: params.nonceStr,
  601. package: params.packageValue,
  602. signType: params.signType,
  603. paySign: params.paySign,
  604. success: res => {
  605. this.$Toast('支付成功');
  606. setTimeout(() => {
  607. uni.redirectTo({
  608. url: '/pages/my/order/index?status=1'
  609. })
  610. }, 1000)
  611. },
  612. fail: error => {
  613. this.$Toast('已取消支付')
  614. setTimeout(() => {
  615. uni.redirectTo({
  616. url: '/pages/my/order/index?status=0'
  617. })
  618. }, 1000)
  619. }
  620. })
  621. },
  622. toCoupon() {
  623. this.$tools.navigateTo({
  624. url: '/pages/my/coupon/coupon?id=' + this.options.ids
  625. })
  626. }
  627. }
  628. };
  629. </script>
  630. <style lang="scss" scoped>
  631. .confirm-order {
  632. background: #f5f5f5;
  633. padding: 20rpx 32rpx 120rpx;
  634. box-sizing: border-box;
  635. &-p-b {
  636. padding-bottom: 220rpx;
  637. }
  638. &-item {
  639. padding: 20rpx;
  640. background: #ffffff;
  641. border-radius: 14rpx;
  642. box-shadow: 0 6rpx 12rpx 0 rgba(0, 0, 0, 0.16);
  643. margin-bottom: 40rpx;
  644. }
  645. &-address {
  646. font-size: 24rpx;
  647. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  648. color: #707070;
  649. padding-right: 10rpx;
  650. }
  651. &-user {
  652. font-size: 28rpx;
  653. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  654. color: #333;
  655. }
  656. &-radio {
  657. width: 34rpx;
  658. height: 34rpx;
  659. border: 1px solid #c8c9cc;
  660. border-radius: 50%;
  661. &.is-active {
  662. background: #01AEEA;
  663. border: 0;
  664. }
  665. }
  666. &-item {
  667. border-radius: 20rpx;
  668. padding: 30rpx;
  669. }
  670. &-goods {
  671. &-image {
  672. width: 200rpx;
  673. height: 200rpx;
  674. border-radius: 12rpx;
  675. }
  676. &-number {
  677. font-size: 24rpx;
  678. color: #ccc
  679. }
  680. &-info {
  681. min-height: 200rpx;
  682. &-specs {
  683. font-size: 30rpx;
  684. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  685. color: #6c6c6c;
  686. overflow: hidden;
  687. text-overflow: ellipsis;
  688. display: -webkit-box;
  689. -webkit-box-orient: vertical;
  690. /*设置对齐模式:垂直对齐*/
  691. -webkit-line-clamp: 2;
  692. /*设置多行的行数*/
  693. }
  694. &-title {
  695. font-size: 32rpx;
  696. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  697. color: #000000;
  698. overflow: hidden;
  699. text-overflow: ellipsis;
  700. display: -webkit-box;
  701. -webkit-box-orient: vertical;
  702. /*设置对齐模式:垂直对齐*/
  703. -webkit-line-clamp: 2;
  704. /*设置多行的行数*/
  705. }
  706. }
  707. &-price {
  708. &-img {
  709. width: 60rpx;
  710. height: 60rpx;
  711. border-radius: 50%;
  712. }
  713. }
  714. }
  715. &-footer {
  716. width: 100%;
  717. height: 120rpx;
  718. background-color: #fff;
  719. padding: 0 32rpx;
  720. box-sizing: border-box;
  721. &-button {
  722. /deep/.u-btn {
  723. width: 260rpx;
  724. height: 70rpx;
  725. font-size: 36rpx;
  726. }
  727. }
  728. }
  729. &-tips {
  730. bottom: 120rpx;
  731. padding: 20rpx;
  732. box-sizing: border-box;
  733. height: 100rpx;
  734. background: #D8F5FF;
  735. line-height: 32rpx;
  736. }
  737. ::v-deep .u-checkbox {
  738. display: block;
  739. }
  740. ::v-deep .u-radio {
  741. display: block;
  742. }
  743. }
  744. .shopIcon{
  745. text-align: center;
  746. width: 120rpx;
  747. height: 100%;
  748. }
  749. .shopIcon-color{
  750. ::v-deep .uicon-arrow-right{
  751. color: #01AEEA !important;
  752. }
  753. }
  754. </style>