packageOrderPay.vue 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. <template>
  2. <view>
  3. <view class="inner-box">
  4. <!-- 收货人 -->
  5. <view class="address-box" v-if="address==null" @click="openAddress()">
  6. <view class="left">
  7. <view class="name-box">
  8. <text class="text name">添加收货地址</text>
  9. </view>
  10. </view>
  11. <view class="arrow-box">
  12. <image src="/static/images/arrow_gray.png" mode=""></image>
  13. </view>
  14. </view>
  15. <view class="address-box" v-if="address!=null" @click="openAddress()">
  16. <view class="left">
  17. <view class="name-box">
  18. <text class="text name">{{address.realName}}</text>
  19. <text class="text" v-if="address.phone!=null">{{address.phone}}</text>
  20. </view>
  21. <view class="address">
  22. {{address.address}}
  23. </view>
  24. </view>
  25. <view class="arrow-box">
  26. <image src="/static/images/arrow_gray.png" mode=""></image>
  27. </view>
  28. </view>
  29. <view class="other-info">
  30. <view class="title">支付明细</view>
  31. <view class="item">
  32. <view class="left">
  33. <text class="label">应付金额:</text>
  34. </view>
  35. <view class="right">
  36. <text class="text" >{{payPrice}}</text>
  37. </view>
  38. </view>
  39. <view class="item" v-if="order!=null&&(order.userCouponId==null||order.userCouponId==0)" @click.stop="openCoupon()">
  40. <view class="left">
  41. <text class="label">优惠券:</text>
  42. </view>
  43. <view class="right">
  44. <text class="text">{{couponText}}</text>
  45. <image v-if="userCouponId!=0" @click.stop="delCoupon()" class="ic-close" src="../static/images/close.png"></image>
  46. <image class="ic-back" src="../static/images/arrow_gray.png"></image>
  47. </view>
  48. </view>
  49. <view class="item" >
  50. <view class="left">
  51. <text class="label">优惠金额:</text>
  52. </view>
  53. <view class="right">
  54. <text class="text">{{discountMoney}}</text>
  55. </view>
  56. </view>
  57. <view class="item">
  58. <view class="left">
  59. <text class="label">支付金额:</text>
  60. </view>
  61. <view class="right">
  62. <text class="text">{{payMoney}}</text>
  63. </view>
  64. </view>
  65. <view class="item">
  66. <view class="left">
  67. <text class="label">物流代收:</text>
  68. </view>
  69. <view class="right">
  70. <text class="text">{{payRemain}}</text>
  71. </view>
  72. </view>
  73. <view class="item">
  74. <view class="left">
  75. <text class="label">邮费:</text>
  76. </view>
  77. <view class="right">
  78. <text class="text">{{payDelivery}}</text>
  79. </view>
  80. </view>
  81. </view>
  82. <view class="pay-type">
  83. <view class="title">支付方式</view>
  84. <radio-group @change="payTypeChange" >
  85. <view class="item" v-if="checkPayType('1')&&choose!=1" >
  86. <view class="left" >
  87. <image src="/static/images/wecha_pay.png" mode=""></image>
  88. <text class="text">全款支付</text>
  89. </view>
  90. <label>
  91. <radio :value="1" :checked="payType=='1'" />
  92. </label>
  93. </view>
  94. <view class="item" v-if="checkPayType('2')" >
  95. <view class="left" >
  96. <image src="/static/images/pay_de.png" mode=""></image>
  97. <text class="text">物流代收</text>
  98. </view>
  99. <label>
  100. <radio :value="2" :checked="payType=='2'" />
  101. </label>
  102. </view>
  103. <view class="item" v-if="checkPayType('3')&&choose!=2" >
  104. <view class="left">
  105. <image src="/static/images/pay_1.png" mode=""></image>
  106. <text class="text">货到付款</text>
  107. </view>
  108. <label>
  109. <radio :value="3" :checked="payType=='3'" />
  110. </label>
  111. </view>
  112. </radio-group>
  113. </view>
  114. <!-- v-if="payType=='1'&&order!=null&&order.companyId!=null&&order.companyId>0&&giftPrice<=payPrice" -->
  115. <view class="other-info" v-if="gifts.length>0">
  116. <view class="title">赠品</view>
  117. <view class="drug-list" >
  118. <view v-for="(product) in gifts" class="drug-item" >
  119. <view class="img-box">
  120. <image :src="product.image" mode="aspectFill"></image>
  121. </view>
  122. <view class="drug-info" >
  123. <view>
  124. <view class="name-box ellipsis2">
  125. {{product.productName}}
  126. </view>
  127. <view class="spec">{{product.sku}}</view>
  128. </view>
  129. <view class="num-box">
  130. <view class="price">
  131. <text class="unit">¥</text>
  132. <text class="num">{{product.price.toFixed(2)}}</text>
  133. </view>
  134. <view class="amount">x{{product.count}}</view>
  135. </view>
  136. </view>
  137. </view>
  138. </view>
  139. </view>
  140. <!-- 备注 -->
  141. <view class="remarks" v-if="order!=null">
  142. <input type="text" v-model="order.remark" placeholder="备注留言(选填)" placeholder-class="input" />
  143. </view>
  144. </view>
  145. <u-popup :closeable="true" :show="couponShow" :round="10" mode="bottom" @close="close" @open="open">
  146. <view class="coupon">
  147. <view class="coupon-box" v-if="coupons.length>0" >
  148. <view @click="couponSelect(item)" class="coupon-item" v-for="(item) in coupons">
  149. <view class="left" >
  150. <image v-if="item.status==0" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/0fdd75d89db84458886d38e615011048.png" mode="widthFix"></image>
  151. <image v-if="item.status!=0" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/d950e4c7af1e4464be1a7777e9dca576.png" mode="widthFix"></image>
  152. <view style="z-index: 999;">
  153. ¥<span class="num">{{item.price.toFixed(2)}}</span>
  154. </view>
  155. <view class="pic-num" >满{{item.minPrice.toFixed(2)}}元可用</view>
  156. </view>
  157. <view class="right">
  158. <view class="title">
  159. {{item.title}}
  160. </view>
  161. <view class="btns">
  162. <view v-if="item.status==0||item.status==2" >{{item.limitTime}} 到期</view>
  163. <view v-if="item.status==1">使用时间 {{item.useTime}}</view>
  164. <view class="bnt gray" v-if="item.status==1" >已使用</view>
  165. <view class="bnt gray" v-if="item.status==2" >已过期</view>
  166. <view class="btn" v-if="item.status==0" >使用</view>
  167. </view>
  168. </view>
  169. </view>
  170. </view>
  171. <view class="empty" v-if="coupons.length==0">
  172. <image src="https://cos.his.cdwjyyh.com/fs/20240423/cf4a86b913a04341bb44e34bb4d37aa2.png"></image>
  173. </view>
  174. </view>
  175. </u-popup>
  176. <!-- 底部按钮 -->
  177. <view class="btn-box">
  178. <view class="btn" v-if="order!=null" @click="payOrder()">支付{{payMoney}}元</view>
  179. </view>
  180. </view>
  181. </template>
  182. <script>
  183. import {getConfigByKey} from '@/api/common'
  184. import {getAddressByDefault} from '@/api/userAddress.js'
  185. import {getMyEnableCouponList} from '@/api/user.js'
  186. import {getPackageById} from '@/api/package.js'
  187. import {getPackageOrderById,pay,compute} from '@/api/packageOrder'
  188. export default {
  189. data() {
  190. return {
  191. giftPrice:0.00,
  192. payTypes:[],
  193. addressId:null,
  194. wxPay: true,
  195. address:null,
  196. orderId:null,
  197. order:null,
  198. items:null,
  199. payType:"1",
  200. couponText:"请选择优惠券",
  201. userCouponId:0,
  202. coupons:[],
  203. couponShow:false,
  204. payMoney:0.00,
  205. discountMoney:0,
  206. payRemain:0,
  207. payDelivery:0,
  208. payPrice:0,
  209. gifts:[],
  210. choose: 0,
  211. subMsg: 0, // 0 表示弹出订阅,1表示不需要弹出订阅
  212. }
  213. },
  214. onLoad(option) {
  215. this.subMsg = option.subMsg || 0
  216. this.choose = option.choose || 0
  217. this.payType = this.choose == 1 ? 3:this.choose == 2 ? 1 :this.payType
  218. this.orderId=option.orderId;
  219. var that=this;
  220. uni.$on('updateAddress', (e) => {
  221. that.addressId=e.addressId;
  222. that.address=e;
  223. that.address.address=e.province+e.city+e.district+e.detail
  224. })
  225. this.getAddressByDefault();
  226. },
  227. onShow() {
  228. this.getPackageOrderById();
  229. // this.getPackageById();
  230. this.getConfigByKey();
  231. },
  232. methods: {
  233. getAddressByDefault(){
  234. var data={};
  235. getAddressByDefault(data).then(
  236. res => {
  237. if(res.code==200){
  238. if(res.data!=null){
  239. this.addressId=res.data.addressId;
  240. this.address=res.data;
  241. this.address.address=res.data.province+res.data.city+res.data.district+res.data.detail
  242. }
  243. }else{
  244. uni.showToast({
  245. icon:'none',
  246. title: res.msg,
  247. });
  248. }
  249. },
  250. rej => {}
  251. );
  252. },
  253. getConfigByKey(){
  254. var that=this;
  255. var data={key:"his.package"}
  256. getConfigByKey(data).then(
  257. res => {
  258. if(res.code==200){
  259. this.giftPrice=JSON.parse(res.data).giftPrice;
  260. console.log(this.giftPrice)
  261. }
  262. },
  263. rej => {}
  264. );
  265. },
  266. checkPayType(payType){
  267. var flag=false
  268. this.payTypes.forEach(function(value,index,array){
  269. if(value.toString()==payType.toString()){
  270. flag=true;
  271. }
  272. });
  273. return flag;
  274. },
  275. payTypeChange(e){
  276. console.log(e.detail.value)
  277. this.payType=e.detail.value;
  278. this.compute()
  279. },
  280. couponSelect(item){
  281. this.couponShow = false;
  282. //计算金额
  283. this.userCouponId=item.id;
  284. console.log(item)
  285. this.couponText=item.price+"元优惠券"
  286. this.compute()
  287. },
  288. open() {
  289. },
  290. close() {
  291. this.couponShow = false
  292. },
  293. openCoupon(){
  294. this.couponShow=true;
  295. },
  296. delCoupon(){
  297. this.userCouponId=0;
  298. this.couponText="请选择优惠券";
  299. this.compute();
  300. },
  301. compute(){
  302. var data={
  303. payType:this.payType,
  304. orderId:this.orderId,
  305. userCouponId:this.userCouponId,
  306. companyId:this.companyId,
  307. companyUserId:this.companyUserId
  308. }
  309. console.log(data)
  310. compute(data).then(
  311. res => {
  312. if(res.code==200){
  313. this.payPrice=res.moneys.payPrice.toFixed(2);
  314. this.payMoney=res.moneys.payMoney.toFixed(2);
  315. this.discountMoney=res.moneys.discountMoney.toFixed(2);
  316. this.payDelivery=res.moneys.payDelivery.toFixed(2);
  317. this.payRemain=res.moneys.payRemain.toFixed(2);
  318. this.gifts=res.moneys.gifts;
  319. }
  320. else{
  321. this.payType=1;
  322. this.compute()
  323. this.userCouponId=0;
  324. this.couponText="请选择优惠券"
  325. uni.showToast({
  326. icon:'none',
  327. title: res.msg,
  328. });
  329. }
  330. },
  331. err => {
  332. }
  333. );
  334. },
  335. getMyEnableCouponList(){
  336. var data={
  337. orderId:this.orderId
  338. }
  339. if(this.package.isShow==0){
  340. data.couponType=5;
  341. data.cateId=this.package.privateType
  342. }
  343. else if(this.package.isShow==1){
  344. data.couponType=6;
  345. data.cateId=this.package.diseaseType
  346. }
  347. getMyEnableCouponList(data).then(
  348. res => {
  349. if(res.code==200){
  350. this.coupons=res.data;
  351. }
  352. },
  353. err => {
  354. }
  355. );
  356. },
  357. getPackageOrderById(){
  358. var data={orderId:this.orderId};
  359. console.log(data)
  360. getPackageOrderById(data).then(
  361. res => {
  362. if(res.code==200){
  363. this.order=res.order
  364. this.choose = res.choose || 0
  365. this.payType = this.choose == 1 ? 3:this.choose == 2 ? 1 :this.payType
  366. this.compute();
  367. this.getPackageById(this.order.packageId)
  368. }else{
  369. }
  370. },
  371. rej => {}
  372. );
  373. },
  374. getPackageById(packageId){
  375. let data={packageId:packageId};
  376. if(this.choose == 1 || this.choose == 2) {
  377. data={
  378. packageId:packageId,
  379. choose: this.choose
  380. };
  381. }
  382. getPackageById(data).then(
  383. res => {
  384. if(res.code==200){
  385. this.package=res.data;
  386. this.payTypes=res.data.payType.split(',');
  387. this.payType=this.choose == 1 ? 3:this.choose == 2 ? 1 :this.payType
  388. console.log(this.payTypes)
  389. this.getMyEnableCouponList();
  390. }else{
  391. }
  392. },
  393. rej => {}
  394. );
  395. },
  396. openAddress(){
  397. uni.navigateTo({
  398. url: '/pages_user/address'
  399. })
  400. },
  401. payOrder(){
  402. var data = {
  403. payType:this.payType,
  404. userCouponId:this.userCouponId,
  405. addressId:this.addressId,
  406. remark:this.order.remark,
  407. orderId:this.order.orderId,
  408. };
  409. var that=this;
  410. uni.showLoading();
  411. pay(data).then(
  412. res => {
  413. if(res.code==200){
  414. if(that.subMsg == 1) {
  415. uni.redirectTo({
  416. url:"./packagePayment?orderId="+that.orderId
  417. })
  418. } else {
  419. var temps=['wqKEklE_w5N19w9VAGY74TltPE6Ne3BaFObDD47uDEo']
  420. uni.requestSubscribeMessage({
  421. tmplIds: temps,
  422. success(e) {
  423. setTimeout(function(){
  424. uni.redirectTo({
  425. url:"./packagePayment?orderId="+that.orderId
  426. })
  427. },200);
  428. },
  429. fail(e) {
  430. setTimeout(function(){
  431. uni.redirectTo({
  432. url:"./packagePayment?orderId="+that.orderId
  433. })
  434. },200);
  435. }
  436. })
  437. }
  438. }else{
  439. uni.showToast({
  440. icon:'none',
  441. title: res.msg,
  442. });
  443. }
  444. },
  445. rej => {}
  446. );
  447. }
  448. }
  449. }
  450. </script>
  451. <style lang="scss">
  452. .inner-box{
  453. padding: 20upx 20upx 300upx;
  454. .address-box{
  455. box-sizing: border-box;
  456. min-height: 171upx;
  457. background: #FFFFFF;
  458. border-radius: 16upx;
  459. background-image: url(/static/images/address_bg.png);
  460. background-repeat: no-repeat;
  461. background-size: 100% 30upx;
  462. background-position: left bottom;
  463. padding: 38upx 30upx 36upx;
  464. display: flex;
  465. align-items: center;
  466. justify-content: space-between;
  467. .left{
  468. width: 92%;
  469. .name-box{
  470. display: flex;
  471. align-items: center;
  472. .text{
  473. font-size: 32upx;
  474. font-family: PingFang SC;
  475. font-weight: bold;
  476. color: #111111;
  477. line-height: 1;
  478. &.name{
  479. margin-right: 30upx;
  480. }
  481. }
  482. }
  483. .address{
  484. font-size: 28upx;
  485. font-family: PingFang SC;
  486. font-weight: 500;
  487. color: #666666;
  488. line-height: 42upx;
  489. text-align:left;
  490. margin-top: 23upx;
  491. }
  492. }
  493. .arrow-box{
  494. width: 12upx;
  495. height: 23upx;
  496. display: flex;
  497. align-items: cenetr;
  498. justify-content: cenetr;
  499. image{
  500. width: 100%;
  501. height: 100%;
  502. }
  503. }
  504. }
  505. .goods-list{
  506. margin-top: 20upx;
  507. padding: 0 30upx;
  508. background-color: #FFFFFF;
  509. border-radius: 16upx;
  510. .item{
  511. padding: 30upx 0;
  512. border-bottom: 1px solid #EDEEEF;
  513. display: flex;
  514. align-items: center;
  515. .img-box{
  516. width: 160upx;
  517. height: 160upx;
  518. margin-right: 30upx;
  519. image{
  520. width: 100%;
  521. height: 100%;
  522. }
  523. }
  524. .info-box{
  525. width: calc(100% - 190upx);
  526. height: 160upx;
  527. display: flex;
  528. flex-direction: column;
  529. justify-content: space-between;
  530. .name-box{
  531. font-size: 28upx;
  532. font-family: PingFang SC;
  533. font-weight: 500;
  534. color: #111111;
  535. line-height: 40upx;
  536. .tag{
  537. display: inline-block;
  538. padding: 0 6upx;
  539. height: 30upx;
  540. background: linear-gradient(90deg, #C39A58 0%, #E2C99E 100%);
  541. border-radius: 4upx;
  542. margin-right: 10upx;
  543. font-size: 22upx;
  544. font-family: PingFang SC;
  545. font-weight: bold;
  546. color: #FFFFFF;
  547. line-height: 30upx;
  548. float: left;
  549. margin-top: 7upx;
  550. }
  551. }
  552. .spec{
  553. margin-top: 10upx;
  554. font-size: 24upx;
  555. font-family: PingFang SC;
  556. font-weight: 500;
  557. color: #999999;
  558. line-height: 1;
  559. }
  560. .price-num{
  561. display: flex;
  562. align-items: center;
  563. justify-content: space-between;
  564. .price{
  565. display: flex;
  566. align-items: flex-end;
  567. .unit{
  568. font-size: 24upx;
  569. font-family: PingFang SC;
  570. font-weight: 500;
  571. color: #111111;
  572. line-height: 1.2;
  573. margin-right: 4upx;
  574. }
  575. .num{
  576. font-size: 32upx;
  577. font-family: PingFang SC;
  578. font-weight: 500;
  579. color: #111111;
  580. line-height: 1;
  581. }
  582. }
  583. .num{
  584. font-size: 24upx;
  585. font-family: PingFang SC;
  586. font-weight: 500;
  587. color: #999999;
  588. line-height: 1;
  589. }
  590. }
  591. }
  592. }
  593. .sub-total{
  594. height: 88upx;
  595. display: flex;
  596. align-items: center;
  597. justify-content: flex-end;
  598. .label{
  599. font-size: 24upx;
  600. font-family: PingFang SC;
  601. font-weight: 500;
  602. color: #999999;
  603. }
  604. .price{
  605. display: flex;
  606. align-items: flex-end;
  607. .unit{
  608. font-size: 24upx;
  609. font-family: PingFang SC;
  610. font-weight: 500;
  611. color: #FF6633;
  612. line-height: 1.2;
  613. margin-right: 4upx;
  614. }
  615. .num{
  616. font-size: 32upx;
  617. font-family: PingFang SC;
  618. font-weight: bold;
  619. color: #FF6633;
  620. line-height: 1;
  621. }
  622. }
  623. }
  624. }
  625. .other-info{
  626. margin-top: 20upx;
  627. background-color: #fff;
  628. border-radius: 20upx;
  629. overflow: hidden;
  630. padding: 0 30upx;
  631. .title{
  632. height: 80upx;
  633. line-height: 80upx;
  634. font-size: 30upx;
  635. color: #000;
  636. font-weight: bold;
  637. border-bottom: 2upx solid #eeeeee;
  638. }
  639. .drug-list{
  640. margin-top: 15rpx;
  641. .drug-item{
  642. padding-bottom: 15upx;
  643. border-bottom: 1px soli #F0F0F0;
  644. display: flex;
  645. align-items: center;
  646. .img-box{
  647. width: 160upx;
  648. height: 160upx;
  649. margin-right: 30upx;
  650. flex-shrink: 0;
  651. image{
  652. width: 100%;
  653. height: 100%;
  654. }
  655. }
  656. .drug-info{
  657. width: calc(100% - 190upx);
  658. height: 160upx;
  659. display: flex;
  660. flex-direction: column;
  661. justify-content: space-between;
  662. .name-box{
  663. font-size: 28upx;
  664. font-family: PingFang SC;
  665. font-weight: 500;
  666. color: #111111;
  667. line-height: 40upx;
  668. .tag{
  669. display: inline-block;
  670. padding: 0 6upx;
  671. height: 30upx;
  672. background: linear-gradient(90deg, #2BC7B9 0%, #2BC7A4 100%);
  673. border-radius: 4upx;
  674. margin-right: 10upx;
  675. font-size: 22upx;
  676. font-family: PingFang SC;
  677. font-weight: bold;
  678. color: #FFFFFF;
  679. line-height: 30upx;
  680. float: left;
  681. margin-top: 7upx;
  682. }
  683. }
  684. .spec{
  685. font-size: 24upx;
  686. font-family: PingFang SC;
  687. font-weight: 500;
  688. color: #999999;
  689. line-height: 1;
  690. margin-top: 10upx;
  691. }
  692. .num-box{
  693. display: flex;
  694. align-items: center;
  695. justify-content: space-between;
  696. .price{
  697. display: flex;
  698. align-items: flex-end;
  699. .unit{
  700. font-size: 24upx;
  701. font-family: PingFang SC;
  702. font-weight: 500;
  703. color: #111111;
  704. line-height: 1.2;
  705. margin-right: 4upx;
  706. }
  707. .num{
  708. font-size: 32upx;
  709. font-family: PingFang SC;
  710. font-weight: 500;
  711. color: #111111;
  712. line-height: 1;
  713. }
  714. }
  715. .use{
  716. font-size: 24upx;
  717. font-family: PingFang SC;
  718. color: #999999;
  719. }
  720. .amount{
  721. font-size: 24upx;
  722. font-family: PingFang SC;
  723. font-weight: 500;
  724. color: #999999;
  725. line-height: 1;
  726. }
  727. }
  728. }
  729. }
  730. }
  731. .item{
  732. height: 80upx;
  733. display: flex;
  734. align-items: center;
  735. justify-content: space-between;
  736. &:last-child{
  737. border-bottom: none;
  738. }
  739. .left{
  740. flex: 1;
  741. display: flex;
  742. align-items: center;
  743. .label{
  744. min-width: 140rpx;
  745. font-size: 28upx;
  746. color: #000;
  747. }
  748. .text{
  749. font-size: 28upx;
  750. color: #1b1b1b;
  751. }
  752. }
  753. .right{
  754. display: flex;
  755. align-items: center;
  756. justify-content: flex-end;
  757. .text{
  758. font-size: 28upx;
  759. color: #1b1b1b;
  760. }
  761. .ic-close{
  762. margin-left: 10rpx;
  763. width: 30rpx;
  764. height:30rpx;
  765. }
  766. .ic-back{
  767. margin-left: 10rpx;
  768. width: 15rpx;
  769. height:30rpx;
  770. }
  771. }
  772. .item-btn{
  773. max-width: 200rpx;
  774. padding: 0rpx 15rpx;
  775. height: 48upx;
  776. border-radius: 24upx;
  777. line-height: 48upx;
  778. font-size: 24upx;
  779. color: #000;
  780. border: 1upx solid #d8d8d8;
  781. display: flex;
  782. align-items: center;
  783. justify-content: center;
  784. }
  785. }
  786. }
  787. .remarks{
  788. height: 88upx;
  789. padding: 0 30upx;
  790. background: #FFFFFF;
  791. border-radius: 16upx;
  792. margin-top: 20upx;
  793. display: flex;
  794. align-items: center;
  795. input{
  796. width: 100%;
  797. font-size: 28upx;
  798. font-family: PingFang SC;
  799. font-weight: 500;
  800. color: #000000;
  801. }
  802. .input{
  803. font-size: 28upx;
  804. font-family: PingFang SC;
  805. font-weight: 500;
  806. color: #999999;
  807. }
  808. }
  809. }
  810. .btn-box{
  811. z-index: 9999;
  812. width: 100%;
  813. padding: 30rpx 30upx 0rpx;
  814. position: fixed;
  815. bottom: 0;
  816. left: 0;
  817. box-sizing: border-box;
  818. background-color: #ffffff;
  819. display: flex;
  820. flex-direction: column;
  821. align-items: center;
  822. justify-content: center;
  823. .btn{
  824. margin-bottom: 20rpx;
  825. width: 100%;
  826. height: 88upx;
  827. line-height: 88upx;
  828. text-align: center;
  829. font-size: 34upx;
  830. font-family: PingFang SC;
  831. font-weight: 400;
  832. color: #FFFFFF;
  833. background: #C39A58;
  834. border-radius: 10upx;
  835. position: relative;
  836. .contact-btn {
  837. position: absolute;
  838. width:100%;
  839. height:100%;
  840. display: flex;
  841. opacity: 0;
  842. }
  843. }
  844. .btn1{
  845. margin-bottom: 20rpx;
  846. width: 100%;
  847. height: 88upx;
  848. line-height: 88upx;
  849. text-align: center;
  850. font-size: 34upx;
  851. font-family: PingFang SC;
  852. font-weight: 400;
  853. color: #C39A58;
  854. border: 1rpx solid #C39A58;
  855. border-radius: 10upx;
  856. position: relative;
  857. .contact-btn {
  858. position: absolute;
  859. width:100%;
  860. height:100%;
  861. display: flex;
  862. opacity: 0;
  863. }
  864. }
  865. }
  866. .pay-type{
  867. box-sizing: border-box;
  868. background: #FFFFFF;
  869. border-radius: 16upx;
  870. margin-top: 20upx;
  871. padding: 40upx 30upx 20rpx;
  872. display: flex;
  873. flex-direction: column;
  874. justify-content: space-between;
  875. .title{
  876. font-size: 28upx;
  877. font-family: PingFang SC;
  878. font-weight: 500;
  879. color: #999999;
  880. line-height: 1;
  881. margin-bottom: 10upx;
  882. }
  883. .item{
  884. padding: 15upx 0upx;
  885. display: flex;
  886. align-items: center;
  887. justify-content: space-between;
  888. .left{
  889. display: flex;
  890. align-items: center;
  891. image{
  892. width: 44upx;
  893. height: 44upx;
  894. margin-right: 20upx;
  895. }
  896. .text{
  897. font-size: 30upx;
  898. font-family: PingFang SC;
  899. font-weight: bold;
  900. color: #222222;
  901. line-height: 1;
  902. }
  903. }
  904. }
  905. }
  906. .coupon{
  907. height: 100%;
  908. .empty{
  909. display: flex;
  910. align-items: center;
  911. justify-content: center;
  912. height: 650rpx;
  913. width: 100%;
  914. image{
  915. width: 280rpx;
  916. height: 200rpx;
  917. }
  918. }
  919. }
  920. .coupon-box{
  921. overflow-y: auto;
  922. padding: 80rpx 20rpx 80rpx;
  923. height: 650rpx;
  924. width: 100%;
  925. display: flex;
  926. flex-direction: column;
  927. align-items: flex-start;
  928. justify-content: flex-start;
  929. box-sizing: border-box;
  930. .coupon-item{
  931. width: 100%;
  932. display: flex;
  933. align-items: center;
  934. justify-content: flex-start;
  935. margin-bottom: 16rpx;
  936. height:170rpx;
  937. &:last-child{
  938. margin-bottom: 0rpx;
  939. }
  940. .left{
  941. color: #fff;
  942. font-size: 36rpx;
  943. font-weight: bold;
  944. text-align: center;
  945. display: flex;
  946. flex-direction: column;
  947. align-items: center;
  948. justify-content: center;
  949. position: relative;
  950. width: 230rpx;
  951. image{
  952. position: absolute;
  953. width: 230rpx;
  954. height:170rpx;
  955. color: #fff;
  956. }
  957. .num{
  958. font-size: 40rpx;
  959. }
  960. .pic-num{
  961. font-size: 20rpx;
  962. z-index: 99;
  963. }
  964. }
  965. .right{
  966. display: flex;
  967. flex-direction: column;
  968. align-items: flex-start;
  969. justify-content: flex-start;
  970. height:170rpx;
  971. width: calc(100% - 230rpx);
  972. padding: 0 17rpx 0 24rpx;
  973. background-color: #fff;
  974. box-sizing: border-box;
  975. .title{
  976. width: 100%;
  977. font-size: 0.3 * 100rpx;
  978. color: #282828;
  979. height: 0.93 * 100rpx;
  980. line-height: 0.93 * 100rpx;
  981. border-bottom: 1px solid #f0f0f0;
  982. }
  983. .btns{
  984. display: flex;
  985. align-items: center;
  986. justify-content: space-between;
  987. width: 100%;
  988. font-size: 0.2 * 100rpx;
  989. color: #999;
  990. height: 0.76 * 100rpx;
  991. .btn{
  992. width: 1.36 * 100rpx;
  993. height: 0.44 * 100rpx;
  994. border-radius: 0.22 * 100rpx;
  995. font-size: 0.22 * 100rpx;
  996. color: #fff;
  997. text-align: center;
  998. line-height: 0.44 * 100rpx;
  999. background-color: #C39A58;
  1000. .gray{
  1001. background-color: #ccc;
  1002. }
  1003. }
  1004. }
  1005. }
  1006. }
  1007. }
  1008. </style>