packageOrderPay.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  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')" >
  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')" >
  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. }
  211. },
  212. onLoad(option) {
  213. this.orderId=option.orderId;
  214. var that=this;
  215. uni.$on('updateAddress', (e) => {
  216. that.addressId=e.addressId;
  217. that.address=e;
  218. that.address.address=e.province+e.city+e.district+e.detail
  219. })
  220. this.getAddressByDefault();
  221. },
  222. onShow() {
  223. this.getPackageOrderById();
  224. this.getPackageById();
  225. this.getConfigByKey();
  226. },
  227. methods: {
  228. getAddressByDefault(){
  229. var data={};
  230. getAddressByDefault(data).then(
  231. res => {
  232. if(res.code==200){
  233. if(res.data!=null){
  234. this.addressId=res.data.addressId;
  235. this.address=res.data;
  236. this.address.address=res.data.province+res.data.city+res.data.district+res.data.detail
  237. }
  238. }else{
  239. uni.showToast({
  240. icon:'none',
  241. title: res.msg,
  242. });
  243. }
  244. },
  245. rej => {}
  246. );
  247. },
  248. getConfigByKey(){
  249. var that=this;
  250. var data={key:"his.package"}
  251. getConfigByKey(data).then(
  252. res => {
  253. if(res.code==200){
  254. this.giftPrice=JSON.parse(res.data).giftPrice;
  255. console.log(this.giftPrice)
  256. }
  257. },
  258. rej => {}
  259. );
  260. },
  261. checkPayType(payType){
  262. var flag=false
  263. this.payTypes.forEach(function(value,index,array){
  264. if(value.toString()==payType.toString()){
  265. flag=true;
  266. }
  267. });
  268. return flag;
  269. },
  270. payTypeChange(e){
  271. console.log(e.detail.value)
  272. this.payType=e.detail.value;
  273. this.compute()
  274. },
  275. couponSelect(item){
  276. this.couponShow = false;
  277. //计算金额
  278. this.userCouponId=item.id;
  279. console.log(item)
  280. this.couponText=item.price+"元优惠券"
  281. this.compute()
  282. },
  283. open() {
  284. },
  285. close() {
  286. this.couponShow = false
  287. },
  288. openCoupon(){
  289. this.couponShow=true;
  290. },
  291. delCoupon(){
  292. this.userCouponId=0;
  293. this.couponText="请选择优惠券";
  294. this.compute();
  295. },
  296. compute(){
  297. var data={
  298. payType:this.payType,
  299. orderId:this.orderId,
  300. userCouponId:this.userCouponId,
  301. companyId:this.companyId,
  302. companyUserId:this.companyUserId
  303. }
  304. console.log(data)
  305. compute(data).then(
  306. res => {
  307. if(res.code==200){
  308. this.payPrice=res.moneys.payPrice.toFixed(2);
  309. this.payMoney=res.moneys.payMoney.toFixed(2);
  310. this.discountMoney=res.moneys.discountMoney.toFixed(2);
  311. this.payDelivery=res.moneys.payDelivery.toFixed(2);
  312. this.payRemain=res.moneys.payRemain.toFixed(2);
  313. this.gifts=res.moneys.gifts;
  314. }
  315. else{
  316. this.payType=1;
  317. this.compute()
  318. this.userCouponId=0;
  319. this.couponText="请选择优惠券"
  320. uni.showToast({
  321. icon:'none',
  322. title: res.msg,
  323. });
  324. }
  325. },
  326. err => {
  327. }
  328. );
  329. },
  330. getMyEnableCouponList(){
  331. var data={}
  332. if(this.package.isShow==0){
  333. data.couponType=5;
  334. data.cateId=this.package.privateType
  335. }
  336. else if(this.package.isShow==1){
  337. data.couponType=6;
  338. data.cateId=this.package.diseaseType
  339. }
  340. getMyEnableCouponList(data).then(
  341. res => {
  342. if(res.code==200){
  343. this.coupons=res.data;
  344. }
  345. },
  346. err => {
  347. }
  348. );
  349. },
  350. getPackageOrderById(){
  351. var data={orderId:this.orderId};
  352. console.log(data)
  353. getPackageOrderById(data).then(
  354. res => {
  355. if(res.code==200){
  356. this.order=res.order
  357. this.compute();
  358. this.getPackageById(this.order.packageId)
  359. }else{
  360. }
  361. },
  362. rej => {}
  363. );
  364. },
  365. getPackageById(packageId){
  366. var data={packageId:packageId};
  367. getPackageById(data).then(
  368. res => {
  369. if(res.code==200){
  370. this.package=res.data;
  371. this.payTypes=res.data.payType.split(',');
  372. console.log(this.payTypes)
  373. this.getMyEnableCouponList();
  374. }else{
  375. }
  376. },
  377. rej => {}
  378. );
  379. },
  380. openAddress(){
  381. uni.navigateTo({
  382. url: '/pages_user/address'
  383. })
  384. },
  385. payOrder(){
  386. var data = {
  387. payType:this.payType,
  388. userCouponId:this.userCouponId,
  389. addressId:this.addressId,
  390. remark:this.order.remark,
  391. orderId:this.order.orderId,
  392. };
  393. var that=this;
  394. uni.showLoading();
  395. pay(data).then(
  396. res => {
  397. if(res.code==200){
  398. uni.redirectTo({
  399. url:"./packagePayment?orderId="+this.orderId
  400. })
  401. }else{
  402. uni.showToast({
  403. icon:'none',
  404. title: res.msg,
  405. });
  406. }
  407. },
  408. rej => {}
  409. );
  410. }
  411. }
  412. }
  413. </script>
  414. <style lang="scss">
  415. .inner-box{
  416. padding: 20upx 20upx 300upx;
  417. .address-box{
  418. box-sizing: border-box;
  419. min-height: 171upx;
  420. background: #FFFFFF;
  421. border-radius: 16upx;
  422. background-image: url(/static/images/address_bg.png);
  423. background-repeat: no-repeat;
  424. background-size: 100% 30upx;
  425. background-position: left bottom;
  426. padding: 38upx 30upx 36upx;
  427. display: flex;
  428. align-items: center;
  429. justify-content: space-between;
  430. .left{
  431. width: 92%;
  432. .name-box{
  433. display: flex;
  434. align-items: center;
  435. .text{
  436. font-size: 32upx;
  437. font-family: PingFang SC;
  438. font-weight: bold;
  439. color: #111111;
  440. line-height: 1;
  441. &.name{
  442. margin-right: 30upx;
  443. }
  444. }
  445. }
  446. .address{
  447. font-size: 28upx;
  448. font-family: PingFang SC;
  449. font-weight: 500;
  450. color: #666666;
  451. line-height: 42upx;
  452. text-align:left;
  453. margin-top: 23upx;
  454. }
  455. }
  456. .arrow-box{
  457. width: 12upx;
  458. height: 23upx;
  459. display: flex;
  460. align-items: cenetr;
  461. justify-content: cenetr;
  462. image{
  463. width: 100%;
  464. height: 100%;
  465. }
  466. }
  467. }
  468. .goods-list{
  469. margin-top: 20upx;
  470. padding: 0 30upx;
  471. background-color: #FFFFFF;
  472. border-radius: 16upx;
  473. .item{
  474. padding: 30upx 0;
  475. border-bottom: 1px solid #EDEEEF;
  476. display: flex;
  477. align-items: center;
  478. .img-box{
  479. width: 160upx;
  480. height: 160upx;
  481. margin-right: 30upx;
  482. image{
  483. width: 100%;
  484. height: 100%;
  485. }
  486. }
  487. .info-box{
  488. width: calc(100% - 190upx);
  489. height: 160upx;
  490. display: flex;
  491. flex-direction: column;
  492. justify-content: space-between;
  493. .name-box{
  494. font-size: 28upx;
  495. font-family: PingFang SC;
  496. font-weight: 500;
  497. color: #111111;
  498. line-height: 40upx;
  499. .tag{
  500. display: inline-block;
  501. padding: 0 6upx;
  502. height: 30upx;
  503. background: linear-gradient(90deg, #C39A58 0%, #E2C99E 100%);
  504. border-radius: 4upx;
  505. margin-right: 10upx;
  506. font-size: 22upx;
  507. font-family: PingFang SC;
  508. font-weight: bold;
  509. color: #FFFFFF;
  510. line-height: 30upx;
  511. float: left;
  512. margin-top: 7upx;
  513. }
  514. }
  515. .spec{
  516. margin-top: 10upx;
  517. font-size: 24upx;
  518. font-family: PingFang SC;
  519. font-weight: 500;
  520. color: #999999;
  521. line-height: 1;
  522. }
  523. .price-num{
  524. display: flex;
  525. align-items: center;
  526. justify-content: space-between;
  527. .price{
  528. display: flex;
  529. align-items: flex-end;
  530. .unit{
  531. font-size: 24upx;
  532. font-family: PingFang SC;
  533. font-weight: 500;
  534. color: #111111;
  535. line-height: 1.2;
  536. margin-right: 4upx;
  537. }
  538. .num{
  539. font-size: 32upx;
  540. font-family: PingFang SC;
  541. font-weight: 500;
  542. color: #111111;
  543. line-height: 1;
  544. }
  545. }
  546. .num{
  547. font-size: 24upx;
  548. font-family: PingFang SC;
  549. font-weight: 500;
  550. color: #999999;
  551. line-height: 1;
  552. }
  553. }
  554. }
  555. }
  556. .sub-total{
  557. height: 88upx;
  558. display: flex;
  559. align-items: center;
  560. justify-content: flex-end;
  561. .label{
  562. font-size: 24upx;
  563. font-family: PingFang SC;
  564. font-weight: 500;
  565. color: #999999;
  566. }
  567. .price{
  568. display: flex;
  569. align-items: flex-end;
  570. .unit{
  571. font-size: 24upx;
  572. font-family: PingFang SC;
  573. font-weight: 500;
  574. color: #FF6633;
  575. line-height: 1.2;
  576. margin-right: 4upx;
  577. }
  578. .num{
  579. font-size: 32upx;
  580. font-family: PingFang SC;
  581. font-weight: bold;
  582. color: #FF6633;
  583. line-height: 1;
  584. }
  585. }
  586. }
  587. }
  588. .other-info{
  589. margin-top: 20upx;
  590. background-color: #fff;
  591. border-radius: 20upx;
  592. overflow: hidden;
  593. padding: 0 30upx;
  594. .title{
  595. height: 80upx;
  596. line-height: 80upx;
  597. font-size: 30upx;
  598. color: #000;
  599. font-weight: bold;
  600. border-bottom: 2upx solid #eeeeee;
  601. }
  602. .drug-list{
  603. margin-top: 15rpx;
  604. .drug-item{
  605. padding-bottom: 15upx;
  606. border-bottom: 1px soli #F0F0F0;
  607. display: flex;
  608. align-items: center;
  609. .img-box{
  610. width: 160upx;
  611. height: 160upx;
  612. margin-right: 30upx;
  613. flex-shrink: 0;
  614. image{
  615. width: 100%;
  616. height: 100%;
  617. }
  618. }
  619. .drug-info{
  620. width: calc(100% - 190upx);
  621. height: 160upx;
  622. display: flex;
  623. flex-direction: column;
  624. justify-content: space-between;
  625. .name-box{
  626. font-size: 28upx;
  627. font-family: PingFang SC;
  628. font-weight: 500;
  629. color: #111111;
  630. line-height: 40upx;
  631. .tag{
  632. display: inline-block;
  633. padding: 0 6upx;
  634. height: 30upx;
  635. background: linear-gradient(90deg, #2BC7B9 0%, #2BC7A4 100%);
  636. border-radius: 4upx;
  637. margin-right: 10upx;
  638. font-size: 22upx;
  639. font-family: PingFang SC;
  640. font-weight: bold;
  641. color: #FFFFFF;
  642. line-height: 30upx;
  643. float: left;
  644. margin-top: 7upx;
  645. }
  646. }
  647. .spec{
  648. font-size: 24upx;
  649. font-family: PingFang SC;
  650. font-weight: 500;
  651. color: #999999;
  652. line-height: 1;
  653. margin-top: 10upx;
  654. }
  655. .num-box{
  656. display: flex;
  657. align-items: center;
  658. justify-content: space-between;
  659. .price{
  660. display: flex;
  661. align-items: flex-end;
  662. .unit{
  663. font-size: 24upx;
  664. font-family: PingFang SC;
  665. font-weight: 500;
  666. color: #111111;
  667. line-height: 1.2;
  668. margin-right: 4upx;
  669. }
  670. .num{
  671. font-size: 32upx;
  672. font-family: PingFang SC;
  673. font-weight: 500;
  674. color: #111111;
  675. line-height: 1;
  676. }
  677. }
  678. .use{
  679. font-size: 24upx;
  680. font-family: PingFang SC;
  681. color: #999999;
  682. }
  683. .amount{
  684. font-size: 24upx;
  685. font-family: PingFang SC;
  686. font-weight: 500;
  687. color: #999999;
  688. line-height: 1;
  689. }
  690. }
  691. }
  692. }
  693. }
  694. .item{
  695. height: 80upx;
  696. display: flex;
  697. align-items: center;
  698. justify-content: space-between;
  699. &:last-child{
  700. border-bottom: none;
  701. }
  702. .left{
  703. flex: 1;
  704. display: flex;
  705. align-items: center;
  706. .label{
  707. min-width: 140rpx;
  708. font-size: 28upx;
  709. color: #000;
  710. }
  711. .text{
  712. font-size: 28upx;
  713. color: #1b1b1b;
  714. }
  715. }
  716. .right{
  717. display: flex;
  718. align-items: center;
  719. justify-content: flex-end;
  720. .text{
  721. font-size: 28upx;
  722. color: #1b1b1b;
  723. }
  724. .ic-close{
  725. margin-left: 10rpx;
  726. width: 30rpx;
  727. height:30rpx;
  728. }
  729. .ic-back{
  730. margin-left: 10rpx;
  731. width: 15rpx;
  732. height:30rpx;
  733. }
  734. }
  735. .item-btn{
  736. max-width: 200rpx;
  737. padding: 0rpx 15rpx;
  738. height: 48upx;
  739. border-radius: 24upx;
  740. line-height: 48upx;
  741. font-size: 24upx;
  742. color: #000;
  743. border: 1upx solid #d8d8d8;
  744. display: flex;
  745. align-items: center;
  746. justify-content: center;
  747. }
  748. }
  749. }
  750. .remarks{
  751. height: 88upx;
  752. padding: 0 30upx;
  753. background: #FFFFFF;
  754. border-radius: 16upx;
  755. margin-top: 20upx;
  756. display: flex;
  757. align-items: center;
  758. input{
  759. width: 100%;
  760. font-size: 28upx;
  761. font-family: PingFang SC;
  762. font-weight: 500;
  763. color: #000000;
  764. }
  765. .input{
  766. font-size: 28upx;
  767. font-family: PingFang SC;
  768. font-weight: 500;
  769. color: #999999;
  770. }
  771. }
  772. }
  773. .btn-box{
  774. z-index: 9999;
  775. width: 100%;
  776. padding: 30rpx 30upx 0rpx;
  777. position: fixed;
  778. bottom: 0;
  779. left: 0;
  780. box-sizing: border-box;
  781. background-color: #ffffff;
  782. display: flex;
  783. flex-direction: column;
  784. align-items: center;
  785. justify-content: center;
  786. .btn{
  787. margin-bottom: 20rpx;
  788. width: 100%;
  789. height: 88upx;
  790. line-height: 88upx;
  791. text-align: center;
  792. font-size: 34upx;
  793. font-family: PingFang SC;
  794. font-weight: 400;
  795. color: #FFFFFF;
  796. background: #C39A58;
  797. border-radius: 10upx;
  798. position: relative;
  799. .contact-btn {
  800. position: absolute;
  801. width:100%;
  802. height:100%;
  803. display: flex;
  804. opacity: 0;
  805. }
  806. }
  807. .btn1{
  808. margin-bottom: 20rpx;
  809. width: 100%;
  810. height: 88upx;
  811. line-height: 88upx;
  812. text-align: center;
  813. font-size: 34upx;
  814. font-family: PingFang SC;
  815. font-weight: 400;
  816. color: #C39A58;
  817. border: 1rpx solid #C39A58;
  818. border-radius: 10upx;
  819. position: relative;
  820. .contact-btn {
  821. position: absolute;
  822. width:100%;
  823. height:100%;
  824. display: flex;
  825. opacity: 0;
  826. }
  827. }
  828. }
  829. .pay-type{
  830. box-sizing: border-box;
  831. background: #FFFFFF;
  832. border-radius: 16upx;
  833. margin-top: 20upx;
  834. padding: 40upx 30upx 20rpx;
  835. display: flex;
  836. flex-direction: column;
  837. justify-content: space-between;
  838. .title{
  839. font-size: 28upx;
  840. font-family: PingFang SC;
  841. font-weight: 500;
  842. color: #999999;
  843. line-height: 1;
  844. margin-bottom: 10upx;
  845. }
  846. .item{
  847. padding: 15upx 0upx;
  848. display: flex;
  849. align-items: center;
  850. justify-content: space-between;
  851. .left{
  852. display: flex;
  853. align-items: center;
  854. image{
  855. width: 44upx;
  856. height: 44upx;
  857. margin-right: 20upx;
  858. }
  859. .text{
  860. font-size: 30upx;
  861. font-family: PingFang SC;
  862. font-weight: bold;
  863. color: #222222;
  864. line-height: 1;
  865. }
  866. }
  867. }
  868. }
  869. .coupon{
  870. height: 100%;
  871. .empty{
  872. display: flex;
  873. align-items: center;
  874. justify-content: center;
  875. height: 650rpx;
  876. width: 100%;
  877. image{
  878. width: 280rpx;
  879. height: 200rpx;
  880. }
  881. }
  882. }
  883. .coupon-box{
  884. overflow-y: auto;
  885. padding: 80rpx 20rpx 80rpx;
  886. height: 650rpx;
  887. width: 100%;
  888. display: flex;
  889. flex-direction: column;
  890. align-items: flex-start;
  891. justify-content: flex-start;
  892. box-sizing: border-box;
  893. .coupon-item{
  894. width: 100%;
  895. display: flex;
  896. align-items: center;
  897. justify-content: flex-start;
  898. margin-bottom: 16rpx;
  899. height:170rpx;
  900. &:last-child{
  901. margin-bottom: 0rpx;
  902. }
  903. .left{
  904. color: #fff;
  905. font-size: 36rpx;
  906. font-weight: bold;
  907. text-align: center;
  908. display: flex;
  909. flex-direction: column;
  910. align-items: center;
  911. justify-content: center;
  912. position: relative;
  913. width: 230rpx;
  914. image{
  915. position: absolute;
  916. width: 230rpx;
  917. height:170rpx;
  918. color: #fff;
  919. }
  920. .num{
  921. font-size: 40rpx;
  922. }
  923. .pic-num{
  924. font-size: 20rpx;
  925. z-index: 99;
  926. }
  927. }
  928. .right{
  929. display: flex;
  930. flex-direction: column;
  931. align-items: flex-start;
  932. justify-content: flex-start;
  933. height:170rpx;
  934. width: calc(100% - 230rpx);
  935. padding: 0 17rpx 0 24rpx;
  936. background-color: #fff;
  937. box-sizing: border-box;
  938. .title{
  939. width: 100%;
  940. font-size: 0.3 * 100rpx;
  941. color: #282828;
  942. height: 0.93 * 100rpx;
  943. line-height: 0.93 * 100rpx;
  944. border-bottom: 1px solid #f0f0f0;
  945. }
  946. .btns{
  947. display: flex;
  948. align-items: center;
  949. justify-content: space-between;
  950. width: 100%;
  951. font-size: 0.2 * 100rpx;
  952. color: #999;
  953. height: 0.76 * 100rpx;
  954. .btn{
  955. width: 1.36 * 100rpx;
  956. height: 0.44 * 100rpx;
  957. border-radius: 0.22 * 100rpx;
  958. font-size: 0.22 * 100rpx;
  959. color: #fff;
  960. text-align: center;
  961. line-height: 0.44 * 100rpx;
  962. background-color: #C39A58;
  963. .gray{
  964. background-color: #ccc;
  965. }
  966. }
  967. }
  968. }
  969. }
  970. }
  971. </style>