paymentOrder.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. <template>
  2. <view class="content">
  3. <view class="inner">
  4. <!-- 时间、价格 -->
  5. <view class="time-price">
  6. <text class="time">请在{{payLimitTime}}前完成支付</text>
  7. <view class="price-box">
  8. <text class="unit">¥</text>
  9. <text class="num">{{order ? (Number(order.totalPrice) || 0).toFixed(2) : "0.00"}}</text>
  10. </view>
  11. <!-- <text class="desc" v-if="payType==2">代收金额{{payDelivery.toFixed(2)}},请您在收到快递后支付尾款给快递人员。</text>
  12. <text class="desc" v-if="payType==3">货到付款金额{{payDelivery.toFixed(2)}},请您在收到快递后支付给快递人员。</text> -->
  13. </view>
  14. <!-- 支付方式 -->
  15. <view class="pay-type">
  16. <view class="title">支付方式</view>
  17. <!-- 改价订单只能选择微信支付和物流代收 -->
  18. <!-- <radio-group @change="payTypeChange" v-if="order.isEditMoney!=null&&order.isEditMoney==1">
  19. <view class="item" >
  20. <view class="left" >
  21. <image src="/static/images/wecha_pay.png" mode=""></image>
  22. <text class="text">微信支付</text>
  23. </view>
  24. <label>
  25. <radio :value="1" :checked="order.payType=='1'" />
  26. </label>
  27. </view>
  28. <view class="item" >
  29. <view class="left">
  30. <image src="/static/images/pay_de.png" mode=""></image>
  31. <text class="text">物流代收</text>
  32. </view>
  33. <label>
  34. <radio :value="2" :checked="order.payType=='2'" />
  35. </label>
  36. </view>
  37. </radio-group> -->
  38. <!-- <radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&& order.orderCreateType==3">
  39. <view class="item" >
  40. <view class="left" >
  41. <image src="/static/images/wecha_pay.png" mode=""></image>
  42. <text class="text">微信支付</text>
  43. </view>
  44. <label>
  45. <radio :value="1" :checked="order.payType=='1'" />
  46. </label>
  47. </view>
  48. <view class="item" >
  49. <view class="left">
  50. <image src="/static/images/pay_de.png" mode=""></image>
  51. <text class="text">物流代收</text>
  52. </view>
  53. <label>
  54. <radio :value="2" :checked="order.payType=='2'" />
  55. </label>
  56. </view>
  57. <view class="item" v-if="user!=null&&user.level==1 ">
  58. <view class="left">
  59. <image src="/static/images/pay_1.png" mode=""></image>
  60. <text class="text">货到付款</text>
  61. </view>
  62. <label>
  63. <radio :value="3" :checked="order.payType=='3'" />
  64. </label>
  65. </view>
  66. </radio-group>
  67. <radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&& order.orderCreateType==2">
  68. <view class="item" v-if="payType==1||payType==4" >
  69. <view class="left" >
  70. <image src="/static/images/wecha_pay.png" mode=""></image>
  71. <text class="text">微信支付</text>
  72. </view>
  73. <label>
  74. <radio :value="1" :checked="order.payType=='1'" />
  75. </label>
  76. </view>
  77. <view class="item" v-if="payType==2||payType==4">
  78. <view class="left" >
  79. <image src="/static/images/pay_de.png" mode=""></image>
  80. <text class="text">物流代收</text>
  81. </view>
  82. <label>
  83. <radio :value="2" :checked="order.payType=='2'" />
  84. </label>
  85. </view>
  86. <view class="item" v-if="user!=null&&user.level==1 ">
  87. <view class="left">
  88. <image src="/static/images/pay_1.png" mode=""></image>
  89. <text class="text">货到付款</text>
  90. </view>
  91. <label>
  92. <radio :value="3" :checked="order.payType=='3'" />
  93. </label>
  94. </view>
  95. </radio-group> -->
  96. <!-- <radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&&(order.orderCreateType==1)">
  97. <view class="item" >
  98. <view class="left" >
  99. <image src="/static/images/wecha_pay.png" mode=""></image>
  100. <text class="text">微信支付</text>
  101. </view>
  102. <label>
  103. <radio :value="1" checked />
  104. </label>
  105. </view>
  106. </radio-group> -->
  107. <radio-group @change="handlePayTypeChange">
  108. <view class="item">
  109. <view class="left">
  110. <image src="/static/images/wecha_pay.png" mode=""></image>
  111. <text class="text">微信支付</text>
  112. </view>
  113. <label>
  114. <radio :value="1" :checked="payType === 1" />
  115. </label>
  116. </view>
  117. <!-- #ifdef APP-PLUS||H5 -->
  118. <view class="item">
  119. <view class="left">
  120. <image src="/static/images/zfb.png" mode=""></image>
  121. <text class="text">支付宝</text>
  122. </view>
  123. <label>
  124. <radio :value="2" :checked="payType === 2" />
  125. </label>
  126. </view>
  127. <!-- #endif -->
  128. </radio-group>
  129. </view>
  130. <!-- 订单详情查看 -->
  131. <view class="order-info">
  132. <view class="title">订单信息</view>
  133. <view class="item">
  134. <text class="label">订单编号</text>
  135. <view class="sn-box">
  136. <view>
  137. <view class="text">{{order?.orderCode}}</view>
  138. </view>
  139. <view class="copy-btn" @click="copyOrderSn(orderCode)">复制</view>
  140. </view>
  141. </view>
  142. <view class="item">
  143. <text class="label">下单时间</text>
  144. <text class="text">{{ formattedDate}} </text>
  145. </view>
  146. <view class="item">
  147. <text class="label">订单金额</text>
  148. <text class="text" v-if="order!=null">{{order ? (Number(order.totalPrice) || 0).toFixed(2) : "0.00"}}</text>
  149. </view>
  150. <!-- <view class="item">
  151. <text class="label">支付方式</text>
  152. <text class="text">微信支付</text>
  153. </view> -->
  154. </view>
  155. </view>
  156. <view class="btn-box">
  157. <view class="btn" @click="payOrder()">去支付</view>
  158. <!-- <view class="other-btn">
  159. 亲友代付
  160. <button class="share" data-name="shareBtn" open-type="share">分享</button>
  161. </view> -->
  162. </view>
  163. </view>
  164. </template>
  165. <script>
  166. import dayjs from 'dayjs';
  167. import {
  168. zfbPayment,
  169. weChatPayment
  170. } from '@/api/pay'
  171. // const isoDate = "2025-08-07T17:08:33.450+0800";
  172. // const formatted = dayjs(isoDate).format('YYYY-MM-DD HH:mm:ss');
  173. // import {getUserInfo} from '@/api/user'
  174. // import {getStoreConfig} from '@/api/common'
  175. // import {editPayType,pay,getStoreOrderById,payByCombinationId,getStoreOrderByCombinationId,editPayTypeByCombinationId} from '@/api/storeOrder'
  176. export default {
  177. data() {
  178. return {
  179. payType: 2,
  180. order: null,
  181. // formattedDate: '',
  182. orderId: null,
  183. payDelivery: 0,
  184. payMoney: 0,
  185. config: null,
  186. payType: 1,
  187. // payLimitTime: null,
  188. user: null,
  189. combinationOrderId: '',
  190. // 需要开处方的订单id
  191. prescribeOrder: ""
  192. }
  193. },
  194. computed:{
  195. formattedDate() {
  196. return this.order?.createTime? dayjs(this.order.createTime).format('YYYY-MM-DD HH:mm:ss'): '';
  197. },
  198. payLimitTime() {
  199. return this.order?.updateTime? dayjs(this.order.updateTime).format('YYYY-MM-DD HH:mm:ss'): '';
  200. }
  201. },
  202. onLoad(options) {
  203. console.log("支付订单是>>",options)
  204. // this.orderKey = options.orderKey;
  205. // this.liveId = options.liveId
  206. // this.productId=options.productId
  207. // console.log("支付订单",options)
  208. if (options.orderList) {
  209. try {
  210. const decoded = decodeURIComponent(options.orderList);
  211. this.order = JSON.parse(decoded) || {}; // 默认空对象
  212. } catch (e) {
  213. console.error('参数解析失败:', e);
  214. this.order = {}; // 显式赋默认值
  215. }
  216. }
  217. // console.log("支付订单是>>",options)
  218. // this.combinationOrderId = option.combinationOrderId ? decodeURIComponent(option.combinationOrderId) : ''
  219. // this.orderId=option.orderId ? JSON.parse(option.orderId) : '';
  220. // if(this.combinationOrderId) {
  221. // this.getStoreOrderByCombinationId()
  222. // } else {
  223. // this.getStoreOrderById();
  224. // }
  225. // this.getStoreConfig();
  226. // this.getUserInfo();
  227. // uni.showShareMenu({
  228. // withShareTicket:true,
  229. // //小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击
  230. // menus:["shareAppMessage"] //不设置默认发送给朋友
  231. // })
  232. },
  233. //发送给朋友
  234. onShareAppMessage(res) {
  235. const combinationOrderId = this.combinationOrderId ?
  236. `&combinationOrderId=${encodeURIComponent(this.combinationOrderId)}` : ''
  237. return {
  238. title: "帮TA支付",
  239. path: '/pages_user/user/otherPaymentOrder?orderId=' + this.orderId + combinationOrderId,
  240. imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  241. }
  242. },
  243. methods: {
  244. payOrder() {
  245. if (this.payType == 1) {
  246. this.doWechatPay()
  247. } else if(this.payType == 2) {
  248. this.doAlipay()
  249. }else{
  250. uni.showToast({
  251. title: "暂时无可用支付",
  252. icon: 'none'
  253. })
  254. }
  255. },
  256. // 选微信支付或者支付宝支付
  257. handlePayTypeChange(e) {
  258. this.payType = e.detail.value; // 获取选中的 value
  259. console.log('当前选中:', this.payType);
  260. // 根据值执行不同逻辑
  261. // if (this.payType === 1) {
  262. // this.doWechatPay();
  263. // } else if (this.payType === 2) {
  264. // this.doAlipay();
  265. // }
  266. },
  267. async doWechatPay() {
  268. try {
  269. uni.showLoading({ title: '发起支付中...', mask: true });
  270. let data={
  271. orderId:this.order.orderId
  272. }
  273. // await weChatPayment(this.order.orderId, Number(this.order.totalPrice));
  274. await weChatPayment(data);
  275. uni.redirectTo({ url: '/pages_shop/success' });
  276. } catch (err) {
  277. console.error('支付流程异常:', err);
  278. } finally {
  279. uni.hideLoading();
  280. }
  281. },
  282. // doWechatPay(){
  283. // weChatPayment(data).then(res => {
  284. // if (res.code == 200) {
  285. // }
  286. // })
  287. // },
  288. // 支付宝支付
  289. doAlipay() {
  290. var data = {
  291. orderId: this.order.orderId
  292. };
  293. console.log("orderId>>", this.order.orderId)
  294. let that = this;
  295. // #ifdef H5||APP-PLUS
  296. // #ifdef APP-PLUS
  297. const tzCashier = uni.requireNativePlugin("TZBank-Cashier");
  298. // #endif
  299. uni.showLoading();
  300. zfbPayment(data).then(res => {
  301. console.log("支付开始",res)
  302. uni.hideLoading();
  303. if (res.code == 200) {
  304. console.log("支付在这里", res)
  305. if (res.type == "tz") {
  306. //console.log("qxj orderFlowNo:"+res.data.body.orderFlowNo+" businessCstNo:"+res.data.body.orderNo+" platMerCstNo:"+res.data.body.platMerCstNo);
  307. const match = res.data.body.url.match(/[\?&]businessCstNo=([^&]+)/);
  308. const businessCstNo = match ? match[1] : null;
  309. console.log("qxj tzCashier:" + tzCashier + " businessCstNo:" + businessCstNo);
  310. tzCashier.pay({
  311. env: 0,
  312. wxMiniProgramType: 0,
  313. // wxAppId: 'wx703c4bd07bbd1695',
  314. wxAppId: 'wx9ea36eecd281bcd3',
  315. wxUniversalLink: "https://yjf.runtzh.com/",
  316. orderFlowNo: res.data.body.orderFlowNo,
  317. businessCstNo: businessCstNo,
  318. platMerCstNo: res.data.body.platMerCstNo
  319. }, (res) => {
  320. // uni.showToast({
  321. // title:'收银台回调:'+JSON.stringify(res),
  322. // icon:'none'
  323. // })
  324. uni.$emit('closePrivilege', {});
  325. that.showPayTips = true;
  326. });
  327. } else if (res.type == 'hf') {
  328. if (uni.getWindowInfo().platform == 'android') {
  329. var alipayScheme = 'alipays://platformapi/startApp?&saId=10000007&qrcode=' + res
  330. .data.qr_code;
  331. } else {
  332. var alipayScheme = 'alipay://platformapi/startApp?&saId=10000007&qrcode=' + res
  333. .data.qr_code;
  334. }
  335. // 在uni-app中使用plus.runtime.openURL打开URL
  336. plus.runtime.openURL(alipayScheme, function(error) {
  337. });
  338. uni.$emit('closePrivilege', {});
  339. that.showPayTips = true;
  340. }
  341. } else {
  342. uni.showToast({
  343. title: res.msg,
  344. icon: 'none'
  345. })
  346. }
  347. },
  348. rej => {}
  349. );
  350. // #endif
  351. },
  352. getUserInfo() {
  353. getUserInfo().then(
  354. res => {
  355. if (res.code == 200) {
  356. if (res.user != null) {
  357. this.user = res.user;
  358. }
  359. } else {
  360. uni.showToast({
  361. icon: 'none',
  362. title: "请求失败",
  363. });
  364. }
  365. },
  366. rej => {}
  367. );
  368. },
  369. getStoreConfig() {
  370. getStoreConfig().then(
  371. res => {
  372. if (res.code == 200) {
  373. this.config = res.data
  374. console.log(this.config);
  375. }
  376. },
  377. rej => {}
  378. );
  379. },
  380. payTypeChange(e) {
  381. if (this.combinationOrderId) {
  382. this.editPayTypeByCombinationId(e.detail.value)
  383. } else {
  384. this.editPayType(e.detail.value)
  385. }
  386. },
  387. copyOrderSn(text) {
  388. // 复制方法
  389. uni.setClipboardData({
  390. data: text,
  391. success: () => {
  392. uni.showToast({
  393. title: '内容已成功复制到剪切板',
  394. icon: 'none'
  395. })
  396. }
  397. });
  398. },
  399. // getStoreOrderById(){
  400. // var data = {orderId:this.orderId};
  401. // var that=this;
  402. // uni.showLoading();
  403. // getStoreOrderById(data).then(
  404. // res => {
  405. // if(res.code==200){
  406. // console.log(res);
  407. // uni.hideLoading();
  408. // that.order=res.order;
  409. // that.order.orderCodes = that.order.orderCode ? [that.order.orderCode]:[]
  410. // that.orderCode = that.order.orderCode
  411. // that.payLimitTime=res.payLimitTime;
  412. // //套餐订单处理
  413. // if(res.productPackage!=null){
  414. // this.payType=res.productPackage.payType;
  415. // console.log(this.payType)
  416. // if(this.order.payType==4){
  417. // this.order.payType=1;
  418. // }
  419. // }
  420. // this.editPayType(this.order.payType)
  421. // }else{
  422. // uni.showToast({
  423. // icon:'none',
  424. // title: res.msg,
  425. // });
  426. // }
  427. // },
  428. // rej => {}
  429. // );
  430. // },
  431. editPayType(payType) {
  432. var data = {
  433. orderId: this.orderId,
  434. payType: payType
  435. };
  436. var that = this;
  437. uni.showLoading();
  438. editPayType(data).then(
  439. res => {
  440. if (res.code == 200) {
  441. console.log(res);
  442. uni.hideLoading();
  443. that.order = res.order;
  444. that.order.orderCodes = that.order.orderCode ? [that.order.orderCode] : []
  445. that.orderCode = that.order.orderCode
  446. // this.payType=this.order.payType
  447. this.payMoney = this.order.payMoney;
  448. this.payDelivery = this.order.payDelivery;
  449. } else {
  450. uni.showToast({
  451. icon: 'none',
  452. title: res.msg,
  453. });
  454. }
  455. },
  456. rej => {}
  457. );
  458. },
  459. // getStoreOrderByCombinationId() {
  460. // var data = {combinationId:this.combinationOrderId};
  461. // var that=this;
  462. // uni.showLoading();
  463. // getStoreOrderByCombinationId(data).then(
  464. // res => {
  465. // if(res.code==200){
  466. // console.log(res);
  467. // uni.hideLoading();
  468. // that.order=res.order;
  469. // that.orderCode = res.order.orderCodes ? res.order.orderCodes.join(',') : "";
  470. // that.payLimitTime=res.payLimitTime;
  471. // //套餐订单处理
  472. // if(res.productPackage!=null){
  473. // this.payType=res.productPackage.payType;
  474. // console.log(this.payType)
  475. // if(this.order.payType==4){
  476. // this.order.payType=1;
  477. // }
  478. // }
  479. // that.prescribeOrder = res.prescribeOrder;
  480. // this.editPayTypeByCombinationId(this.order.payType)
  481. // }else{
  482. // uni.showToast({
  483. // icon:'none',
  484. // title: res.msg,
  485. // });
  486. // }
  487. // },
  488. // rej => {}
  489. // );
  490. // },
  491. // editPayTypeByCombinationId(payType){
  492. // var data = {combinationOrderId:this.combinationOrderId,payType:payType};
  493. // var that=this;
  494. // uni.showLoading();
  495. // editPayTypeByCombinationId(data).then(
  496. // res => {
  497. // if(res.code==200){
  498. // console.log(res);
  499. // uni.hideLoading();
  500. // that.order=res.order;
  501. // that.orderCode = res.order.orderCodes ? res.order.orderCodes.join(',') : "";
  502. // //this.payType=this.order.payType
  503. // this.payMoney=this.order.payMoney;
  504. // this.payDelivery=this.order.payDelivery;
  505. // that.prescribeOrder = res.prescribeOrder;
  506. // }else{
  507. // uni.showToast({
  508. // icon:'none',
  509. // title: res.msg,
  510. // });
  511. // }
  512. // },
  513. // rej => {}
  514. // );
  515. // },
  516. otherPayOrder() {
  517. // uni.navigateTo({
  518. // url: '/pages_user/user/otherPaymentOrder?orderId='+this.orderId
  519. // })
  520. uni.navigateTo({
  521. url: '/pages_user/user/otherPaymentOrder?combinationOrderId=' + encodeURIComponent(this
  522. .combinationOrderId)
  523. })
  524. },
  525. // payOrder() {
  526. // if (this.combinationOrderId) {
  527. // let data = {
  528. // combinationOrderId: this.combinationOrderId,
  529. // payType: this.order.payType
  530. // };
  531. // let that = this;
  532. // uni.showLoading();
  533. // payByCombinationId(data).then(
  534. // res => {
  535. // if (res.code == 200) {
  536. // this.payfun(res)
  537. // } else {
  538. // uni.showToast({
  539. // icon: 'none',
  540. // title: res.msg,
  541. // });
  542. // }
  543. // },
  544. // rej => {}
  545. // );
  546. // } else {
  547. // let data = {
  548. // orderId: this.order.id,
  549. // payType: this.order.payType
  550. // };
  551. // let that = this;
  552. // uni.showLoading();
  553. // pay(data).then(
  554. // res => {
  555. // if (res.code == 200) {
  556. // this.payfun(res)
  557. // } else {
  558. // uni.showToast({
  559. // icon: 'none',
  560. // title: res.msg,
  561. // });
  562. // }
  563. // },
  564. // rej => {}
  565. // );
  566. // }
  567. // },
  568. payfun(res) {
  569. const that = this
  570. console.log(res.result);
  571. if (res.payType == 1 || res.payType == 2) {
  572. uni.requestPayment({
  573. provider: 'wxpay',
  574. timeStamp: res.result.timeStamp,
  575. nonceStr: res.result.nonceStr,
  576. // package: res.result.packageValue,
  577. package: res.result.packageStr,
  578. signType: res.result.signType,
  579. paySign: res.result.paySign,
  580. success: function(res) {
  581. uni.hideLoading();
  582. uni.redirectTo({
  583. url: "success?order=" + JSON.stringify(that.order)
  584. })
  585. },
  586. fail: function(err) {
  587. uni.showToast({
  588. icon: 'none',
  589. title: 'fail:' + JSON.stringify(err),
  590. });
  591. console.log('fail:' + JSON.stringify(err));
  592. uni.hideLoading();
  593. }
  594. });
  595. } else if (res.payType == 3) {
  596. uni.hideLoading();
  597. if (that.order.isPrescribe) {
  598. //如果是处方订单开处方
  599. // uni.redirectTo({
  600. // url:"prescribe?orderId="+that.order.id
  601. // })
  602. uni.redirectTo({
  603. url: "prescribe?orderId=" + that.prescribeOrder + "&combinationOrderId=" +
  604. encodeURIComponent(that.order.combinationOrderId)
  605. })
  606. } else {
  607. //如果是普通订单
  608. uni.redirectTo({
  609. url: "success?order=" + JSON.stringify(that.order)
  610. })
  611. }
  612. }
  613. }
  614. }
  615. }
  616. </script>
  617. <style lang="scss">
  618. page {
  619. height: 100%;
  620. }
  621. .content {
  622. height: 100%;
  623. display: flex;
  624. flex-direction: column;
  625. justify-content: space-between;
  626. .inner {
  627. padding: 20upx;
  628. .time-price {
  629. box-sizing: border-box;
  630. padding: 50upx 0upx;
  631. background: #FFFFFF;
  632. border-radius: 16upx;
  633. display: flex;
  634. flex-direction: column;
  635. align-items: center;
  636. .time {
  637. font-size: 32upx;
  638. font-family: PingFang SC;
  639. font-weight: 500;
  640. color: #222222;
  641. line-height: 1;
  642. text-align: center;
  643. }
  644. .desc {
  645. margin: 30upx 0upx 15upx;
  646. font-size: 26upx;
  647. font-family: PingFang SC;
  648. color: #999999;
  649. line-height: 1;
  650. text-align: center;
  651. }
  652. .price-box {
  653. display: flex;
  654. align-items: flex-end;
  655. margin-top: 28upx;
  656. .unit {
  657. font-size: 32upx;
  658. font-family: PingFang SC;
  659. font-weight: bold;
  660. color: #FF6633;
  661. line-height: 1.3;
  662. margin-right: 10upx;
  663. }
  664. .num {
  665. font-size: 56upx;
  666. font-family: PingFang SC;
  667. font-weight: bold;
  668. color: #FF6633;
  669. line-height: 1;
  670. }
  671. }
  672. }
  673. .pay-type {
  674. box-sizing: border-box;
  675. background: #FFFFFF;
  676. border-radius: 16upx;
  677. margin-top: 20upx;
  678. padding: 40upx 30upx;
  679. display: flex;
  680. flex-direction: column;
  681. justify-content: space-between;
  682. .title {
  683. font-size: 28upx;
  684. font-family: PingFang SC;
  685. font-weight: 500;
  686. color: #999999;
  687. line-height: 1;
  688. margin-bottom: 10upx;
  689. }
  690. .item {
  691. padding: 15upx 0upx;
  692. display: flex;
  693. align-items: center;
  694. justify-content: space-between;
  695. .left {
  696. display: flex;
  697. align-items: center;
  698. image {
  699. width: 44upx;
  700. height: 44upx;
  701. margin-right: 20upx;
  702. }
  703. .text {
  704. font-size: 30upx;
  705. font-family: PingFang SC;
  706. font-weight: bold;
  707. color: #222222;
  708. line-height: 1;
  709. }
  710. }
  711. }
  712. }
  713. .order-info {
  714. margin-top: 20upx;
  715. background: #FFFFFF;
  716. border-radius: 16upx;
  717. padding: 40upx 30upx;
  718. .title {
  719. font-size: 30upx;
  720. font-family: PingFang SC;
  721. font-weight: bold;
  722. color: #222222;
  723. line-height: 1;
  724. }
  725. .item {
  726. margin-top: 40upx;
  727. display: flex;
  728. align-items: center;
  729. justify-content: space-between;
  730. .label {
  731. font-size: 26upx;
  732. font-family: PingFang SC;
  733. font-weight: 500;
  734. color: #666666;
  735. line-height: 1;
  736. }
  737. .text {
  738. font-size: 26upx;
  739. font-family: PingFang SC;
  740. font-weight: 500;
  741. color: #222222;
  742. line-height: 32upx;
  743. }
  744. .cont-text {
  745. font-size: 26upx;
  746. font-family: PingFang SC;
  747. font-weight: 500;
  748. color: #666666;
  749. .bold {
  750. color: #111111;
  751. }
  752. }
  753. .sn-box {
  754. display: flex;
  755. align-items: center;
  756. .copy-btn {
  757. width: 58upx;
  758. height: 32upx;
  759. line-height: 32upx;
  760. text-align: center;
  761. font-size: 22upx;
  762. font-weight: 500;
  763. color: #222222;
  764. background: #F5F5F5;
  765. border-radius: 4upx;
  766. margin-left: 24upx;
  767. }
  768. }
  769. }
  770. .line {
  771. width: 100%;
  772. height: 1px;
  773. background: #F0F0F0;
  774. margin-top: 30upx;
  775. }
  776. }
  777. }
  778. .btn-box {
  779. height: 242upx;
  780. background: #FFFFFF;
  781. display: flex;
  782. align-items: center;
  783. justify-content: center;
  784. flex-direction: column;
  785. .btn {
  786. width: 91.73%;
  787. height: 88upx;
  788. line-height: 88upx;
  789. font-size: 30upx;
  790. font-family: PingFang SC;
  791. font-weight: bold;
  792. color: #FFFFFF;
  793. text-align: center;
  794. background: #0bb3f2;
  795. border-radius: 44upx;
  796. margin-bottom: 10rpx;
  797. }
  798. .other-btn {
  799. width: 91.73%;
  800. height: 88upx;
  801. line-height: 88upx;
  802. font-size: 30upx;
  803. font-family: PingFang SC;
  804. font-weight: bold;
  805. color: #0bb3f2;
  806. border: 1rpx solid #0bb3f2;
  807. text-align: center;
  808. background: #FFFFFF;
  809. border-radius: 44upx;
  810. margin-bottom: 10rpx;
  811. position: relative;
  812. .share {
  813. display: inline-block;
  814. position: absolute;
  815. top: 0;
  816. left: 0;
  817. width: 100%;
  818. height: 100%;
  819. opacity: 0;
  820. }
  821. }
  822. }
  823. }
  824. </style>