storeOrderDetail.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840
  1. <template>
  2. <view>
  3. <view class="top-cont">
  4. <!-- 背景图片 -->
  5. <view class="bg-color"></view>
  6. <!-- <image class="bg" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/order_top_bg.png" mode=""></image> -->
  7. <view class="top-inner">
  8. <!-- 这里是状态栏 -->
  9. <view class="fixed-top-box">
  10. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  11. <view class="back-box" @click="back">
  12. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/back_white.png" mode=""></image>
  13. <text class="title">订单详情</text>
  14. <text></text>
  15. </view>
  16. </view>
  17. <!-- 顶部固定后站位元素 -->
  18. <view style="padding-bottom: 88upx;">
  19. <view :style="{height: statusBarHeight}"></view>
  20. </view>
  21. <!-- 订单状态 -->
  22. <view class="order-status">
  23. <!-- 待付款 -->
  24. <view v-if="order.status == 0" class="inner">
  25. <view class="img-box">
  26. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/pag96.png" mode=""></image>
  27. </view>
  28. <view class="status-box">
  29. <text class="status">待付款</text>
  30. <text class="desc">请在{{payLimitTime}}前完成支付</text>
  31. </view>
  32. </view>
  33. <!-- 待发货 -->
  34. <view v-if="order.status == 1" class="inner">
  35. <view class="img-box">
  36. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/pag96.png" mode=""></image>
  37. </view>
  38. <view class="status-box">
  39. <text class="status">待发货</text>
  40. <text class="desc">等待后台发货</text>
  41. </view>
  42. </view>
  43. <!-- 已发货、待收货 -->
  44. <view v-if="order.status == 2" class="inner">
  45. <view class="img-box">
  46. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/receipt.png" mode=""></image>
  47. </view>
  48. <view class="status-box">
  49. <text class="status">待收货</text>
  50. <text class="desc">运输中</text>
  51. </view>
  52. </view>
  53. <!-- 已完成 -->
  54. <view v-if="order.status == 3||order.status == 4" class="inner">
  55. <view class="img-box">
  56. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/finish96.png" mode=""></image>
  57. </view>
  58. <view class="status-box">
  59. <text class="status">已完成</text>
  60. <text class="desc">订单已确认收货,交易完成</text>
  61. </view>
  62. </view>
  63. <!--交易取消 -->
  64. <view v-if="order.status == -3" class="inner">
  65. <view class="img-box">
  66. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/close_trade.png" mode=""></image>
  67. </view>
  68. <view class="status-box">
  69. <text class="status">交易关闭</text>
  70. <text class="desc">订单已取消</text>
  71. </view>
  72. </view>
  73. <view v-if="order.status == -1" class="inner">
  74. <view class="img-box">
  75. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/close_trade.png" mode=""></image>
  76. </view>
  77. <view class="status-box">
  78. <text class="status">申请售后</text>
  79. <text class="desc">请等待客服审核</text>
  80. </view>
  81. </view>
  82. <view v-if="order.status == -2" class="inner">
  83. <view class="img-box">
  84. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/close_trade.png" mode=""></image>
  85. </view>
  86. <view class="status-box">
  87. <text class="status">退款成功</text>
  88. <text class="desc">已成功退款</text>
  89. </view>
  90. </view>
  91. </view>
  92. <!-- 下单人信息 -->
  93. <view class="order-placer">
  94. <view class="inner">
  95. <image class="location" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/location.png" mode=""></image>
  96. <view class="info">
  97. <view class="name-phone">
  98. <text class="text">{{order.realName}}</text>
  99. <text class="text" v-if="order.userPhone!=null">{{$parsePhone(order.userPhone)}}</text>
  100. </view>
  101. <view class="address ellipsis2">
  102. {{order.userAddress}}
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. <view class="content">
  108. <!-- 药品列表 -->
  109. <view class="goods-list">
  110. <view class="title">{{storeName}}</view>
  111. <view v-for="(item,index) in items" :key="index">
  112. <view v-if="order.isPackage!=1" class="item" @click="openDetails(item)">
  113. <view class="img-box">
  114. <image :src="JSON.parse(item.jsonInfo).image" mode="aspectFill"></image>
  115. </view>
  116. <view class="info-box">
  117. <view>
  118. <view class="name-box ellipsis2">
  119. <view v-if="item.isPrescribe==1" class="tag">Rx</view>
  120. {{JSON.parse(item.jsonInfo).commonName&&JSON.parse(item.jsonInfo).commonName!=='-'?JSON.parse(item.jsonInfo).commonName:JSON.parse(item.jsonInfo).productName}}
  121. </view>
  122. <view class="spec ellipsis2">{{JSON.parse(item.jsonInfo).sku}}</view>
  123. </view>
  124. <view class="price-num">
  125. <view class="price">
  126. <text class="unit">¥</text>
  127. <text class="num">{{JSON.parse(item.jsonInfo).price.toFixed(2)}}</text>
  128. </view>
  129. <view class="num">x{{JSON.parse(item.jsonInfo).num}}</view>
  130. </view>
  131. </view>
  132. </view>
  133. <view v-if="order.isPackage==1&&order.packageJson!=null" class="item" @click="openDetails(item)">
  134. <view class="img-box">
  135. <image :src="JSON.parse(order.packageJson).imgUrl" mode="aspectFill"></image>
  136. </view>
  137. <view class="info-box">
  138. <view>
  139. <view class="name-box ellipsis2">
  140. <view class="tag">套餐</view>{{JSON.parse(order.packageJson).title}}
  141. </view>
  142. <view class="spec ellipsis2">{{JSON.parse(order.packageJson).descs}}</view>
  143. </view>
  144. </view>
  145. </view>
  146. </view>
  147. <!-- 已优惠、小计 -->
  148. <view class="sub-total">
  149. <view class="discount">
  150. 订单金额:¥{{order.payPrice}}
  151. </view>
  152. <!-- <text class="label">实付金额:</text>
  153. <view class="price">
  154. <text class="unit">¥</text>
  155. <text class="num">{{order.payMoney}}</text>
  156. </view> -->
  157. </view>
  158. </view>
  159. <!-- 订单信息 -->
  160. <view class="order-info">
  161. <view class="title">订单信息</view>
  162. <view class="item">
  163. <text class="label">订单编号</text>
  164. <view class="sn-box">
  165. <text class="text">{{order.orderCode}}</text>
  166. <view class="copy-btn" @click="copyOrderSn(order.orderCode)">复制</view>
  167. </view>
  168. </view>
  169. <view class="item">
  170. <text class="label">下单时间</text>
  171. <text class="text">{{order.createTime}}</text>
  172. </view>
  173. <view class="item">
  174. <text class="label">支付方式</text>
  175. <text class="text" v-if="order.payType==1">微信支付</text>
  176. <text class="text" v-if="order.payType==2">物流代收</text>
  177. </view>
  178. <view class="item">
  179. <text class="label">订单金额</text>
  180. <text class="text" v-if="order.totalPrice!=null">¥{{order.totalPrice.toFixed(2)}}</text>
  181. </view>
  182. <view class="item">
  183. <text class="label">运费</text>
  184. <text class="text" v-if="order.payPostage!=null">¥{{order.payPostage.toFixed(2)}}</text>
  185. </view>
  186. <view class="item">
  187. <text class="label">服务费</text>
  188. <text class="text" v-if="order.serviceFee!=null">¥{{order.serviceFee.toFixed(2)}}</text>
  189. </view>
  190. <view class="item">
  191. <text class="label">优惠金额</text>
  192. <text class="text" v-if="order.couponPrice!=null">-¥{{order.couponPrice.toFixed(2)}}</text>
  193. </view>
  194. <view class="item">
  195. <text class="label">应付金额</text>
  196. <text class="text" v-if="order.payPrice!=null">¥{{order.payPrice.toFixed(2)}}</text>
  197. </view>
  198. <view class="item">
  199. <text class="label">支付金额</text>
  200. <text class="text" v-if="order.payMoney!=null">¥{{order.payMoney.toFixed(2)}}</text>
  201. </view>
  202. <view class="item">
  203. <text class="label">代收金额</text>
  204. <text class="text" v-if="order.payDelivery!=null">¥{{order.payDelivery.toFixed(2)}}</text>
  205. </view>
  206. <view class="item">
  207. <text class="label">支付时间</text>
  208. <text class="text" v-if="order.payTime!=null">{{order.payTime}}</text>
  209. </view>
  210. <!-- <view v-if="order.status >1" class="item">
  211. <text class="label">发货时间</text>
  212. <text class="text"></text>
  213. </view> -->
  214. </view>
  215. <!-- 处方信息 -->
  216. <view class="order-info" v-if="order.isPrescribe&&prescribe!=null">
  217. <view class="title">处方信息</view>
  218. <view class="item">
  219. <text class="label">处方编号</text>
  220. <text class="text">{{prescribe.serialNo}}</text>
  221. </view>
  222. <view class="item" v-if="prescribe.doctorName!=null">
  223. <text class="label">开方医生</text>
  224. <text class="text">{{prescribe.doctorName}}</text>
  225. </view>
  226. <view class="item" v-if="prescribe.rpUrl!=null">
  227. <text class="label">电子处方</text>
  228. <view class="check-box" @click="showImg()">
  229. <text class="text">查看</text>
  230. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/images/arrow4.png" mode=""></image>
  231. </view>
  232. </view>
  233. <view class="item">
  234. <text class="label">审核意见</text>
  235. <text class="text" v-if="prescribe.auditReason!=null">{{prescribe.auditReason}}</text>
  236. </view>
  237. </view>
  238. </view>
  239. </view>
  240. </view>
  241. <!-- 按钮 -->
  242. <view class="btn-box">
  243. <!-- <view class="btn cancel">联系客服</view> -->
  244. <view class="btn cancel" v-if="order.status==0" @click="cancel()">取消订单</view>
  245. <view class="btn pay" v-if="(order.status == 0&&order.isPrescribe!=1)||(order.status == 0&&order.isPrescribe==1&&order.prescribeId&&prescriptionAuditStatus==2)" @click="pay()">立即付款</view>
  246. <view class="btn cancel" v-if="order.isPrescribe==1&&prescribe!=null" @click="goPrescribe()">查看处方</view>
  247. <view class="btn pay" v-if="(order.status==0||order.status==1)&&order.isPrescribe==1&&prescribe==null&&prescriptionAuditStatus!=3" @click="addPrescribe()">开处方</view>
  248. <view class="btn cancel" v-if="isAfterSales==1" @click="refund()">申请售后</view>
  249. <view class="btn pay" v-if="order.status>=2&&order.deliveryId!=null" @click="express()">查看物流</view>
  250. <view class="btn pay" v-if="order.status==2&&order.payType!=1&&order.isPayRemain==0&&order.deliverySn=='SF'" @click="payRemain()">支付尾款</view>
  251. <view class="btn pay" v-if="order.status==2" @click="finish()">确认收货</view>
  252. <view v-if="order.status == 3" class="btn pay" @click="showEvaluate('/pages_shopping/evaluateDetail?orderId='+order.id)">去评价</view>
  253. <view v-if="order.status == 4" class="btn pay" @click="showEvaluate('/pages_shopping/evaluate?orderId='+order.id)">查看评价</view>
  254. </view>
  255. </view>
  256. </template>
  257. <script>
  258. import {getMyStoreOrderById,cancelOrder,express,finishOrder,orderPrescription} from '@/api/myStoreOrder.js'
  259. export default {
  260. data() {
  261. return {
  262. isAfterSales:0,
  263. payLimitTime:null,
  264. orderId:null,
  265. order:{},
  266. items:[],
  267. prescribe:null,
  268. // 状态栏的高度
  269. statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
  270. prescriptionAuditStatus: null,
  271. storeName: ''
  272. };
  273. },
  274. onLoad(option) {
  275. this.orderId = option.id
  276. },
  277. onShow() {
  278. this.getMyStoreOrderById()
  279. },
  280. methods: {
  281. showEvaluate(url){
  282. uni.navigateTo({
  283. url: url
  284. })
  285. },
  286. openDetails(item){
  287. uni.navigateTo({
  288. url: '/pages_shopping/productDetails?productId='+item.productId
  289. })
  290. },
  291. addPrescribe(){
  292. orderPrescription(this.order.id).then(res=>{
  293. if(res.code == 200) {
  294. // {status:状态 0未开放,跳转填写信息界面。 1开方中,跳转医生开方界面 2开方完成,跳转到支付,jumpLink:status为1时用这个跳转连接}
  295. if(res.data.status == 0) {
  296. uni.navigateTo({
  297. url:"/pages_shopping/prescribe?orderId="+this.order.id
  298. })
  299. } else if(res.data.status == 1) {
  300. uni.navigateTo({
  301. url: '/pages/index/webview?type=prescribe&url='+encodeURIComponent(res.data.jumpLink)
  302. })
  303. } else if(res.data.status == 2) {
  304. uni.navigateTo({
  305. url: '/pages_shopping/paymentOrder?orderId='+this.order.id
  306. })
  307. }
  308. }
  309. })
  310. },
  311. goPrescribe(){
  312. uni.navigateTo({
  313. url:"/pages_order/prescribeDetails?source=order&prescribeId="+this.prescribe.prescribeId
  314. })
  315. },
  316. showImg(){
  317. var imgArr = [];
  318. imgArr.push(this.prescribe.rpUrl)
  319. //预览图片
  320. uni.previewImage({
  321. urls: imgArr,
  322. current: imgArr[0]
  323. });
  324. },
  325. getMyStoreOrderById(){
  326. var data={orderId:this.orderId};
  327. getMyStoreOrderById(data).then(res => {
  328. if(res.code==200){
  329. this.prescriptionAuditStatus = res.prescriptionAuditStatus
  330. this.order=res.order;
  331. this.items=res.items;
  332. this.payLimitTime=res.payLimitTime;
  333. this.prescribe=res.prescribe;
  334. this.isAfterSales=res.isAfterSales;
  335. this.storeName = res.storeName || ''
  336. }else{
  337. uni.showToast({
  338. icon:'none',
  339. title: res.msg,
  340. });
  341. }
  342. });
  343. },
  344. express(){
  345. uni.navigateTo({
  346. url: './storeOrderDelivery?orderId='+this.order.id
  347. })
  348. },
  349. cancel(){
  350. var that=this;
  351. uni.showModal({
  352. title: '提示',
  353. content: '确定取消订单吗',
  354. success: function (res) {
  355. if (res.confirm) {
  356. var data = {
  357. orderId:that.order.id
  358. };
  359. cancelOrder(data).then(res => {
  360. if(res.code==200){
  361. that.getMyStoreOrderById()
  362. uni.$emit('refreshOrder');
  363. }else{
  364. uni.showToast({
  365. icon:'none',
  366. title: res.msg,
  367. });
  368. }
  369. });
  370. }
  371. else if (res.cancel) {
  372. }
  373. }
  374. });
  375. },
  376. finish(){
  377. var that=this;
  378. uni.showModal({
  379. title: '提示',
  380. content: '确定已收货吗',
  381. success: function (res) {
  382. if (res.confirm) {
  383. var data = {
  384. orderId:that.order.id
  385. };
  386. finishOrder(data).then(res => {
  387. if(res.code==200){
  388. that.getMyStoreOrderById()
  389. uni.$emit('refreshOrder');
  390. }else{
  391. uni.showToast({
  392. icon:'none',
  393. title: res.msg,
  394. });
  395. }
  396. });
  397. }
  398. else if (res.cancel) {
  399. }
  400. }
  401. });
  402. },
  403. pay() {
  404. uni.navigateTo({
  405. url: '/pages_shopping/paymentOrder?orderId='+this.order.id
  406. })
  407. },
  408. payRemain() {
  409. uni.navigateTo({
  410. url: '/pages_user/shopping/paymentOrderRemain?orderId='+this.order.id
  411. })
  412. },
  413. // 返回上一页
  414. back() {
  415. let pages = getCurrentPages();
  416. console.log(pages.length);
  417. if(pages.length>1){
  418. uni.navigateBack()
  419. }
  420. else{
  421. uni.reLaunch({
  422. url:"/pages/common/launch"
  423. })
  424. }
  425. },
  426. // 复制订单编号
  427. copyOrderSn(text) {
  428. // 复制方法
  429. uni.setClipboardData({
  430. data:text,
  431. success:()=>{
  432. uni.showToast({
  433. title:'内容已成功复制到剪切板',
  434. icon:'none'
  435. })
  436. }
  437. });
  438. },
  439. // 退货
  440. refund() {
  441. uni.navigateTo({
  442. url: './refundOrderProduct?orderId='+this.orderId
  443. })
  444. }
  445. }
  446. }
  447. </script>
  448. <style lang="scss">
  449. .bg-color {
  450. width: 100%;
  451. background: linear-gradient(to right, #2583EB 0%, #60CDC3 100%);
  452. height: 450rpx;
  453. }
  454. .fixed-top-box{
  455. width: 100%;
  456. background: linear-gradient(to right, #2583EB 0%, #60CDC3 100%);
  457. position: fixed;
  458. top: 0;
  459. left: 0;
  460. z-index: 1000;
  461. }
  462. .top-cont{
  463. width: 100%;
  464. height: 476upx;
  465. position: relative;
  466. .bg{
  467. width: 100%;
  468. height: 100%;
  469. position: absolute;
  470. top: 0;
  471. left: 0;
  472. z-index: 1;
  473. }
  474. .top-inner{
  475. width: 100%;
  476. height: 100%;
  477. position: absolute;
  478. top: 0;
  479. left: 0;
  480. z-index: 2;
  481. .back-box{
  482. height: 88upx;
  483. padding-left: 22upx;
  484. display: flex;
  485. align-items: center;
  486. justify-content: space-between;
  487. padding: 0 20upx;
  488. image{
  489. width: 40upx;
  490. height: 40upx;
  491. }
  492. .title{
  493. font-size: 36upx;
  494. font-family: PingFang SC;
  495. font-weight: 500;
  496. color: #FFFFFF;
  497. }
  498. }
  499. .order-status{
  500. margin-top: 60upx;
  501. display: flex;
  502. align-items: center;
  503. justify-content: space-between;
  504. padding: 0 30upx;
  505. .inner{
  506. display: flex;
  507. align-items: center;
  508. .img-box{
  509. width: 96upx;
  510. height: 96upx;
  511. margin-right: 30upx;
  512. image{
  513. width: 100%;
  514. height: 100%;
  515. }
  516. }
  517. .status-box{
  518. height: 96upx;
  519. display: flex;
  520. flex-direction: column;
  521. justify-content: center;
  522. .status{
  523. font-size: 40upx;
  524. font-family: PingFang SC;
  525. font-weight: bold;
  526. color: #FFFFFF;
  527. line-height: 1;
  528. }
  529. .desc{
  530. font-size: 26upx;
  531. font-family: PingFang SC;
  532. font-weight: 500;
  533. color: #FFFFFF;
  534. line-height: 1;
  535. margin-top: 30upx;
  536. }
  537. }
  538. }
  539. }
  540. .order-placer{
  541. margin-top: 50upx;
  542. padding: 0 20upx;
  543. .inner{
  544. box-sizing: border-box;
  545. border-radius: 16upx;
  546. height: 150upx;
  547. padding: 40upx 30upx;
  548. display: flex;
  549. align-items: center;
  550. background: #FFFFFF;
  551. .location{
  552. width: 24upx;
  553. height: 27upx;
  554. margin-right: 18upx;
  555. flex-shrink: 0;
  556. }
  557. .info{
  558. .name-phone{
  559. display: flex;
  560. align-items: center;
  561. .text{
  562. font-size: 28upx;
  563. font-family: PingFang SC;
  564. font-weight: bold;
  565. color: #333333;
  566. line-height: 1;
  567. margin-right: 20upx;
  568. &:last-child{
  569. margin-right: 0;
  570. }
  571. }
  572. }
  573. .address{
  574. font-size: 26upx;
  575. font-family: PingFang SC;
  576. font-weight: 500;
  577. color: #999999;
  578. line-height: 1.3;
  579. margin-top: 10upx;
  580. }
  581. }
  582. }
  583. }
  584. }
  585. }
  586. .content{
  587. margin: 20rpx 0rpx;
  588. padding: 0 20upx 140rpx 20upx;
  589. .goods-list{
  590. padding: 0 30upx;
  591. background-color: #FFFFFF;
  592. border-radius: 16upx;
  593. .title{
  594. font-size: 30rpx;
  595. font-family: PingFang SC;
  596. font-weight: bold;
  597. color: #222222;
  598. padding-top: 24rpx;
  599. }
  600. .item{
  601. padding: 30upx 0;
  602. border-bottom: 1px solid #EDEEEF;
  603. display: flex;
  604. align-items: center;
  605. .img-box{
  606. width: 160upx;
  607. height: 160upx;
  608. margin-right: 30upx;
  609. image{
  610. width: 100%;
  611. height: 100%;
  612. }
  613. }
  614. .info-box{
  615. width: calc(100% - 190upx);
  616. height: 160upx;
  617. display: flex;
  618. flex-direction: column;
  619. justify-content: space-between;
  620. .name-box{
  621. font-size: 28upx;
  622. font-family: PingFang SC;
  623. font-weight: 500;
  624. color: #111111;
  625. line-height: 40upx;
  626. .tag{
  627. display: inline-block;
  628. padding: 0 6upx;
  629. height: 30upx;
  630. background: red;
  631. border-radius: 4upx;
  632. margin-right: 10upx;
  633. font-size: 22upx;
  634. font-family: PingFang SC;
  635. font-weight: bold;
  636. color: #FFFFFF;
  637. line-height: 30upx;
  638. float: left;
  639. margin-top: 7upx;
  640. }
  641. }
  642. .spec{
  643. margin-top: 18upx;
  644. font-size: 24upx;
  645. font-family: PingFang SC;
  646. font-weight: 500;
  647. color: #999999;
  648. line-height: 1;
  649. }
  650. .price-num{
  651. display: flex;
  652. align-items: center;
  653. justify-content: space-between;
  654. .price{
  655. display: flex;
  656. align-items: flex-end;
  657. .unit{
  658. font-size: 24upx;
  659. font-family: PingFang SC;
  660. font-weight: 500;
  661. color: #111111;
  662. line-height: 1.2;
  663. margin-right: 4upx;
  664. }
  665. .num{
  666. font-size: 32upx;
  667. font-family: PingFang SC;
  668. font-weight: 500;
  669. color: #111111;
  670. line-height: 1;
  671. }
  672. }
  673. .num{
  674. font-size: 24upx;
  675. font-family: PingFang SC;
  676. font-weight: 500;
  677. color: #999999;
  678. line-height: 1;
  679. }
  680. }
  681. }
  682. }
  683. .sub-total{
  684. height: 88upx;
  685. display: flex;
  686. align-items: center;
  687. justify-content: flex-end;
  688. .discount{
  689. font-size: 24upx;
  690. font-family: PingFang SC;
  691. font-weight: 500;
  692. color: #999999;
  693. line-height: 1;
  694. margin-right: 30upx;
  695. }
  696. .label{
  697. font-size: 24upx;
  698. font-family: PingFang SC;
  699. font-weight: 500;
  700. color: #999999;
  701. }
  702. .price{
  703. display: flex;
  704. align-items: flex-end;
  705. .unit{
  706. font-size: 24upx;
  707. font-family: PingFang SC;
  708. font-weight: 500;
  709. color: #FF6633;
  710. line-height: 1.2;
  711. margin-right: 4upx;
  712. }
  713. .num{
  714. font-size: 32upx;
  715. font-family: PingFang SC;
  716. font-weight: bold;
  717. color: #FF6633;
  718. line-height: 1;
  719. }
  720. }
  721. }
  722. }
  723. .order-info{
  724. margin-top: 20upx;
  725. background: #FFFFFF;
  726. border-radius: 16upx;
  727. padding: 40upx 30upx;
  728. .title{
  729. font-size: 30upx;
  730. font-family: PingFang SC;
  731. font-weight: bold;
  732. color: #222222;
  733. line-height: 1;
  734. }
  735. .item{
  736. margin-top: 40upx;
  737. display: flex;
  738. align-items: center;
  739. justify-content: space-between;
  740. .label{
  741. font-size: 26upx;
  742. font-family: PingFang SC;
  743. font-weight: 500;
  744. color: #666666;
  745. line-height: 1;
  746. }
  747. .text{
  748. font-size: 26upx;
  749. font-family: PingFang SC;
  750. font-weight: 500;
  751. color: #222222;
  752. line-height: 32upx;
  753. }
  754. .cont-text{
  755. font-size: 26upx;
  756. font-family: PingFang SC;
  757. font-weight: 500;
  758. color: #666666;
  759. .bold{
  760. color: #111111;
  761. }
  762. }
  763. .sn-box{
  764. display: flex;
  765. align-items: center;
  766. .copy-btn{
  767. width: 58upx;
  768. height: 32upx;
  769. line-height: 32upx;
  770. text-align: center;
  771. font-size: 22upx;
  772. font-family: PingFang SC;
  773. font-weight: 500;
  774. color: #222222;
  775. background: #F5F5F5;
  776. border-radius: 4upx;
  777. margin-left: 24upx;
  778. }
  779. }
  780. .check-box{
  781. display: flex;
  782. align-items: center;
  783. image{
  784. width: 14upx;
  785. height: 24upx;
  786. margin-left: 10upx;
  787. }
  788. }
  789. }
  790. .line{
  791. width: 100%;
  792. height: 1px;
  793. background: #F0F0F0;
  794. margin-top: 30upx;
  795. }
  796. }
  797. }
  798. .btn-box{
  799. z-index: 999;
  800. bottom: 0;
  801. width: 100%;
  802. position: fixed;
  803. height: 120upx;
  804. box-sizing: border-box;
  805. background: #FFFFFF;
  806. padding: 0 30upx;
  807. display: flex;
  808. align-items: center;
  809. justify-content: flex-end;
  810. .btn{
  811. width: 155upx;
  812. height: 64upx;
  813. line-height: 64upx;
  814. font-size: 26upx;
  815. font-family: PingFang SC;
  816. font-weight: 500;
  817. text-align: center;
  818. border-radius: 32upx;
  819. margin-left: 15upx;
  820. &.cancel{
  821. border: 1px solid #DDDDDD;
  822. color: #666666;
  823. }
  824. &.pay{
  825. background: #2583EB;
  826. color: #FFFFFF;
  827. }
  828. }
  829. }
  830. </style>