<template> <view class="detail"> <view> <u-navbar title="订单详情" back-icon-color="#fff" :border-bottom="false" title-color="#333" :background="background"></u-navbar> </view> <view class="send"> <!-- 进行中的订单 --> <block v-if="order.order_status == OrderStatusEnum.NORMAL.value"> <!-- 待支付 --> <block v-if="order.pay_status == PayStatusEnum.PENDING.value"> <image class="car" src="/static/order/status/wait_pay.png" mode="aspectFit"></image> </block> <!-- 待发货 --> <block v-else-if="order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> <image class="car" src="/static/order/status/wait_deliver.png" mode="aspectFit"></image> </block> <!-- 待收货 --> <block v-else-if="order.receipt_status == ReceiptStatusEnum.NOT_RECEIVED.value"> <image class="car" src="/static/order/status/wait_receipt.png" mode="aspectFit"></image> </block> </block> <!-- 已完成 --> <block v-if="order.order_status == OrderStatusEnum.COMPLETED.value"> <image class="image" src="/static/order/status/received.png" mode="aspectFit"></image> </block> <!-- 已取消/待取消 --> <block v-if="order.order_status == OrderStatusEnum.CANCELLED.value || order.order_status == OrderStatusEnum.APPLY_CANCEL.value"> <image class="image" src="/static/order/status/close.png" mode="aspectFit"></image> </block> <view class="sendInfo"> <view class="shopInfo"> <text>{{order.state_text}}</text> </view> <view class="sendTime"> {{order.create_time}} </view> </view> </view> <view class="consignee" v-if="order.delivery_type == DeliveryTypeEnum.EXTRACT.value"> <view class="conLeft"> <view class="thr"> <view class="peo">提货人</view> <view class="name">{{ order.extract_shop.linkman }}</view> </view> <view class="thr"> <view class="peo">手机号</view> <view class="name">{{ order.extract_shop.phone }}</view> </view> <view class="thr"> <view class="peo">预计到店时间</view> <view class="name">2023-12-20 09:15</view> </view> </view> <view class="conRight" @click="openCode"> <view class="code"> 核销码 </view> <view class="codeNum"> <image :src="qrcodeImage" @click="clickImg" mode=""></image> </view> <view class="openCode"> 点击放大核销码 </view> </view> </view> <view class="sendHome" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.DELIVERED.value"> <view class="fline"> <view class="leftInfo"> <image src="/static/order/am.png" mode="" class="am"></image> <view class="gp"> <text>{{ order.address.name }}</text> {{ order.address.phone }} </view> </view> <view class="up" @click="onAdress(order.goods_id)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> 修改 </view> </view> <view class="sl"> <text v-for="(region, idx) in order.address.region" :key="idx">{{ region }}</text> {{order.address.detail}} </view> <view class="fline"> <view class="leftInfo"> <image src="/static/order/cd.png" mode="" class="am"></image> <view class="gp"> <text>收货方式:</text> {{order.delivery_type==10?'快递配送':'门店自提'}} </view> </view> <view class="up" @click="onCdDia(order.goods_id)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> 我要催单 </view> </view> </view> <view class="goodsDetail"> <view class="goodsType"> <image v-if="order.storeInfo" :src="order.storeInfo.image_url" mode="" class="bag"></image> <text v-if="order.storeInfo">{{order.storeInfo.store_name}}</text> </view> <view class="goods" v-for="(goods, idx) in order.goods" :key="idx" @click="handleTargetGoods(goods.goods_id)"> <view class="goodsImg"> <image :src="goods.goods_image" mode="aspectFill"></image> </view> <view class="goodsInfo"> <view class="goodsName">{{ goods.goods_name }}</view> <view class="goodsPrice"> <text>¥{{ goods.is_user_grade ? goods.grade_goods_price : goods.goods_price }}</text> </view> </view> <view class=""> <view class="goodsNum"> x{{ goods.total_num }} </view> <view class="up2" style="margin-top: 20rpx;" @tap.stop="onRefund(goods.order_id,goods,order)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.receipt_status == ReceiptStatusEnum.NOT_RECEIVED.value && order.delivery_status == DeliveryStatusEnum.DELIVERED.value"> 退款 </view> <view class="up2" style="margin-top: 20rpx;" @tap.stop="onRefund(goods.order_id,goods,order)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.receipt_status == ReceiptStatusEnum.RECEIVED.value && order.delivery_status == DeliveryStatusEnum.DELIVERED.value"> 换货 </view> </view> </view> <view class="line" v-if="order.pay_status == PayStatusEnum.PENDING.value"> </view> <view class="cancel" @click="onCancel(order.order_id)" v-if="order.pay_status == PayStatusEnum.PENDING.value"> 取消订单 </view> </view> <view class="orderTips"> <view class="orderTitle"> <view class="total"> 订单编号: </view> <view class="price"> {{ order.order_no }} </view> <view class="copy" @click="handleCopy(order.order_no)"> 复制 </view> </view> <view class="orderTitle" v-if="order.pay_status == PayStatusEnum.SUCCESS.value"> <view class="total"> 支付方式: </view> <view class="price"> {{order.pay_method}} </view> </view> <view class="orderTitle"> <view class="total"> 商品快照: </view> <view class="price"> 核对交易细节时,可作为判断依据 </view> <view class="copy"> 查看 </view> </view> <view class="orderTitle" v-if="order.delivery_status == DeliveryStatusEnum.DELIVERED.value"> <view class="total" v-if="order.delivery[0].delivery_method != DeliveryMethodEnum.UNWANTED.value"> 物流公司: </view> <view class="price"> {{order.delivery[0].express ? order.delivery[0].express.express_name : '--' }} </view> </view> <view class="orderTitle"> <view class="total"> 下单时间: </view> <view class="price"> {{ order.create_time }} </view> </view> <view class="orderTitle" v-if="order.pay_status == PayStatusEnum.SUCCESS.value"> <view class="total"> 支付时间: </view> <view class="price"> {{order.pay_time}} </view> </view> <view class="orderTitle"> <view class="total"> 期待配送时间: </view> <view class="price"> {{order.receipt_time}} </view> </view> <view class="line"> </view> <view class="amount"> <view class="share"> <image src="/static/order/share.png" mode=""></image> 分享 </view> <view class="sp"> </view> <view class="callShop" @click="callStore(order.storeInfo.phone)"> <image src="/static/order/share.png" mode=""></image> 联系商家 </view> </view> </view> <view class="pickedUp" v-if="order.delivery_type == DeliveryTypeEnum.EXTRACT.value"> <view class="orderTitle"> <view class="total"> 提货状态: </view> <view class="price"> {{order.ziti_status==0?'没提':'已提货'}} </view> </view> <view class="orderTitle"> <view class="total"> 提货日期: </view> <view class="price"> {{order.ziti_time}} </view> </view> <view class="orderTitle"> <view class="total"> 提货照片: </view> <view class="price" v-if="order.ziti_image.length"> <image v-for="(img, idx) in order.ziti_image" :key="idx" :src="img" mode="" class="goodsImag"> </image> </view> </view> </view> <view v-if="menushow" class="menuarea"> <view class="menulist"> <view class="" @click="onInvoicing(order.order_id)" v-if="order.order_status == OrderStatusEnum.COMPLETED.value"> 申请开票 </view> <view class="" @click="onDelete(order.order_id)" v-if="order.order_status == OrderStatusEnum.COMPLETED.value"> 删除订单 </view> <view class="" v-if="order.pay_status == PayStatusEnum.PENDING.value" @click="onCancel(order.order_id)"> 取消订单 </view> </view> <view class="trangle"></view> </view> <view class="footer"> <view class="meetPrice" @click="changeMenu" v-if="order.order_status == OrderStatusEnum.COMPLETED.value || order.pay_status == PayStatusEnum.PENDING.value"> 更多 </view> <view v-else style="color: #fff;">-</view> <view class="fooRight"> <view class="buyAgain" @click="handleTargetGoods(goods.goods_id)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == ReceiptStatusEnum.NOT_RECEIVED.value"> 再次购买 </view> <view class="buyAgain" @click="onPay(order.order_id)" v-if="order.pay_status == PayStatusEnum.PENDING.value"> 继续付款 </view> <view class="buyAgain" @click="onExtractQRCode(order.order_id)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_type == DeliveryTypeEnum.EXTRACT.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> 核销码 </view> <view class="buyAgain" @click="handleTargetExpress(order.order_id)" v-if="order.delivery_status == DeliveryStatusEnum.DELIVERED.value"> 查看物流 </view> <view class="buyAgain" @click="onReceipt(order.order_id)" v-if="order.delivery_status == DeliveryStatusEnum.DELIVERED.value && order.receipt_status == ReceiptStatusEnum.NOT_RECEIVED.value"> 确认收货 </view> <view class="buyAgain" @click="onCdDia(order.order_id)" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> 催发货 </view> <view class="buyAgain" v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> 取消订单 </view> <!-- <view class="buyAgain" v-if="order.order_status == OrderStatusEnum.COMPLETED.value && order.is_comment == 0" @click="handleTargetComment(order.order_id)"> 评价 </view> --> </view> </view> <!-- 催单弹框 --> <view class="dia" v-if="cdDia"> <view class="diaMain"> <image src="/static/order/ld.png" mode="" class="ld"></image> <view class="cdTitle"> 催单成功 </view> <view class="cdInfo"> 商家已收到您的催单提醒,您精心挑选的商品正在配送中,属于正常配送时效内,请您耐心等待,谢谢! </view> <view class="iKnow" @click="meKone()"> 我知道了 </view> </view> </view> <view class="bigCode" v-if="showQRCodePopup" style="display: none;"> <view class="cm"> <view class="cm_text"> 核销码 </view> <view class="txm"> <image src="" mode="" class="codeImg"></image> </view> <view class="cline"> <u-line border-style="dashed" color="#D0D0D0" /> </view> <view class="sm"> 可前往门店扫码完成操作 </view> </view> </view> </view> </template> <script> import img from "@/static/home/top.png" import { OrderTypeEnum, DeliveryStatusEnum, DeliveryTypeEnum, OrderStatusEnum, PayStatusEnum, ReceiptStatusEnum } from '@/common/enum/order' import { DeliveryMethodEnum } from '@/common/enum/order/delivery' import * as OrderApi from '@/api/order' export default { data() { return { background: { background: 'url(' + img + ') center top no-repeat', backgroundSize: '100% auto', }, // 枚举类 OrderTypeEnum, DeliveryStatusEnum, DeliveryTypeEnum, OrderStatusEnum, PayStatusEnum, ReceiptStatusEnum, DeliveryMethodEnum, // 当前订单ID orderId: null, // 加载中 isLoading: true, // 当前订单详情 order: {}, // 当前设置 setting: {}, // 核销二维码弹窗 showQRCodePopup: false, // 核销二维码图片url (通过后端获取) qrcodeImage: '', // 控制onShow事件是否刷新订单信息 canReset: false, cdDia: false, menushow: false, } }, /** * 生命周期函数--监听页面加载 */ onLoad({ orderId }) { // 当前订单ID this.orderId = orderId // 获取当前订单信息 this.getOrderDetail() // 注册全局事件订阅: 是否刷新当前订单数据 uni.$on('syncRefresh', (val, isCur) => { if (!isCur) { this.canReset = val } }) }, /** * 生命周期函数--监听页面显示 */ onShow() { this.canReset && this.getOrderDetail() this.canReset = false }, methods: { // 联系商家 callStore(phone) { uni.makePhoneCall({ phoneNumber: phone }); }, changeMenu() { this.menushow = !this.menushow }, meKone() { this.cdDia = false }, onCdDia(orderId) { const app = this OrderApi.orderfast(orderId) .then(result => { if (result.status == 200) { this.cdDia = true } }) }, clickImg() { uni.previewImage({ urls: [this.qrcodeImage], //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了 current: '', // 当前显示图片的http链接,默认是第一个 success: function(res) {}, fail: function(res) {}, complete: function(res) {}, }) }, // 获取当前订单信息 getOrderDetail(canReset = false) { const app = this app.isLoading = true OrderApi.detail(app.orderId) .then(result => { app.order = result.data.order app.setting = result.data.setting app.isLoading = false }) // 相应全局事件订阅: 刷新上级页面数据 canReset && uni.$emit('syncRefresh', true, true) }, // 复制指定内容 handleCopy(value) { const app = this uni.setClipboardData({ data: value, success: () => app.$toast('复制成功'), fail: ({ errMsg }) => app.$toast('复制失败 ' + errMsg) }) }, // 跳转到门店详情页 handleTargetExtract(shopId) { this.$navTo('pages/shop/detail', { shopId }) }, // 跳转到物流跟踪页面 handleTargetExpress() { this.$navTo('pages/order/express/index', { orderId: this.orderId }) }, // 跳转到商品详情页面 handleTargetGoods(goodsId) { this.$navTo('pages/goods/detail', { goodsId }) }, // 跳转到申请售后页面 handleApplyRefund(orderGoodsId) { this.$navTo('pages/refund/apply', { orderGoodsId }) }, // 修改地址 onAdress(orderId) { this.$navTo('pages/address/index', { orderId }) }, // 点击去开票 onInvoicing(orderId) { this.$navTo('pages/invoice/edit', { orderId }) }, // 取消订单 onCancel(orderId) { const app = this uni.showModal({ title: '友情提示', content: '确认要取消该订单吗?', success(o) { if (o.confirm) { OrderApi.cancel(orderId) .then(result => { // 显示成功信息 app.$toast(result.message) setTimeout(() => { // 刷新当前订单数据 app.getOrderDetail(true) }, 1500) }) } } }); }, // 删除订单 onDelete(orderId) { const app = this uni.showModal({ title: '友情提示', content: '删除之后订单无法恢复,无法处理您的售后问题 ,请慎重考虑,确认要删除该订单吗?', success(o) { if (o.confirm) { OrderApi.del(orderId) .then(result => { // 显示成功信息 app.$toast(result.message) uni.$emit('syncRefresh'); uni.navigateBack(1) }) } } }); }, // 确认收货 onReceipt(orderId) { const app = this uni.showModal({ title: '友情提示', content: '确认收到商品了吗?', success(o) { if (o.confirm) { OrderApi.receipt(orderId) .then(result => { // 显示成功信息 app.$success(result.message) setTimeout(() => { // 刷新当前订单数据 app.getOrderDetail(true) }, 1500) }) } } }); }, // 获取核销二维码 onExtractQRCode(orderId) { const app = this OrderApi.extractQrcode(orderId, { channel: app.platform }) .then(result => { app.qrcodeImage = result.data.qrcode app.showQRCodePopup = true }) }, // 点击去退款 onRefund(orderId, order, item) { uni.navigateTo({ url: '/pages/order/refund/refund?orderId=' + orderId + '&order=' + JSON.stringify(order) + "&deliveryStatus=" + item.delivery_status + '&receiptStatus=' + item.receipt_status }) }, // 点击去支付 onPay(orderId) { this.$navTo('pages/checkout/cashier/index', { orderId }) }, // 跳转到订单评价页 handleTargetComment(orderId) { this.$navTo('pages/order/comment/index', { orderId }) }, }, } </script> <style lang="scss" scoped> .detail { width: 750rpx; padding-bottom: 150rpx; background-image: url('../../static/home/homeback.png'); background-size: 100% 100%; } .menuarea { width: 100%; height: 100%; } .menulist { background-color: #FFF; border: 1rpx solid #F4F4F4; width: 150rpx; min-height: 50rpx; position: fixed; left: 28rpx; bottom: 90rpx; border-radius: 14rpx; text-align: center; padding: 10rpx 0; z-index: 99999; } .menulist view { width: 100%; height: 50rpx; color: #333; font-size: 24rpx; font-family: PingFangSC-Medium, PingFang SC; line-height: 50rpx; } .trangle { width: 0px; height: 0px; position: absolute; border: 10rpx solid #FFF; border-top-color: #FFF; border-bottom-color: transparent; border-left-color: transparent; border-right-color: transparent; left: 16rpx; bottom: 60rpx; } .leftText { font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #F21A1C; line-height: 28rpx; } .address { margin-left: 26rpx; background-image: url('../../static/order/map.png'); width: 694rpx; height: 154rpx; display: flex; align-items: center; justify-content: space-between; padding: 0 52rpx 0 32rpx; .addAddress { font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #F32E2E; } .leftImg { width: 18rpx; height: 18rpx; image { width: 100%; height: 100%; } } } .send { width: 694rpx; height: 154rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 12rpx 0 0 26rpx; display: flex; padding: 32rpx 46rpx 32rpx 38rpx; .car { width: 42rpx; height: 35rpx; margin-right: 40rpx; margin-top: 20rpx; } .sendInfo { .shopInfo { height: 40rpx; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #000000; line-height: 40rpx; } .sendTime { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #606060; line-height: 34rpx; margin-top: 16rpx; } } .sendIcon { width: 18rpx; height: 18rpx; margin: 40rpx 0 0 150rpx; } } .sendHome { width: 694rpx; height: 218rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 14rpx 0 0 26rpx; padding: 18rpx 16rpx 16rpx 34rpx; .fline { width: 100%; display: flex; justify-content: space-between; .leftInfo { display: flex; } .up { width: 114rpx; height: 50rpx; background: #FFFFFF; border-radius: 88rpx 88rpx 88rpx 88rpx; opacity: 1; border: 1rpx solid #D9D9D9; text-align: center; line-height: 50rpx; font-size: 20rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #676767; } .am { width: 40rpx; height: 40rpx; margin-right: 24rpx; } .gp { height: 28rpx; font-size: 20rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #838383; line-height: 28rpx; text { height: 40rpx; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #333333; line-height: 40rpx; margin-right: 8rpx; } } } .sl { width: 474rpx; height: 68rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #838383; line-height: 28rpx; margin-top: 6rpx; margin-left: 60rpx; } } .consignee { width: 694rpx; height: 200rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 12rpx 0 0 26rpx; display: flex; justify-content: space-between; padding: 24rpx 36rpx 6rpx 32rpx; .conLeft { .thr { display: flex; width: 474rpx; height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #838383; line-height: 34rpx; margin-bottom: 20rpx; .peo { width: 160rpx; } .name { color: #333333; } } } .conRight { font-family: PingFang SC, PingFang SC; font-weight: 600; color: #F21A1C; display: flex; flex-direction: column; align-items: center; .code { height: 34rpx; font-size: 24rpx; line-height: 34rpx; margin-bottom: 8rpx; } .codeNum { width: 80rpx; height: 78rpx; image { width: 100%; height: 100%; } } .openCode { height: 28rpx; font-size: 20rpx; font-weight: 400; color: #848484; line-height: 23rpx; margin-top: 4rpx; } } } .goodsDetail { width: 694rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 12rpx 0 0 26rpx; padding: 32rpx 24rpx 24rpx 38rpx; .goodsType { display: flex; align-items: center; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #333333; .bag { width: 30rpx; height: 30rpx; margin-right: 20rpx; } .leftIcon { width: 18rpx; height: 18rpx; margin-left: 20rpx; } } .goods { display: flex; align-items: center; margin-top: 28rpx; .goodsImg { width: 162rpx; height: 148rpx; border-radius: 0rpx 0rpx 0rpx 0rpx; opacity: 1; image { width: 100%; height: 100%; } } .goodsInfo { margin-left: 20rpx; .goodsName { font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #1E1E1E; line-height: 40rpx; margin-bottom: 4rpx; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; width: 420rpx; } .goodsPrice { height: 50rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 600; color: #F21A1C; line-height: 50rpx; text { font-size: 36rpx; } } } .goodsNum { font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #1E1E1E; margin-left: 100rpx; } } .serve { display: flex; justify-content: space-between; .serveTitle { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #1E1E1E; line-height: 34rpx; } .chose { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #9E9E9E; line-height: 34rpx; image { width: 18rpx; height: 18rpx; } } } .line { width: 100%; height: 0rpx; opacity: 1; border: 2rpx solid #F4F4F4; margin: 32rpx 0 20rpx 0; } .up { width: 114rpx; height: 50rpx; background: #FFFFFF; border-radius: 88rpx 88rpx 88rpx 88rpx; opacity: 1; border: 1rpx solid #D9D9D9; text-align: center; line-height: 50rpx; font-size: 20rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #676767; } .cancel { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #1E1E1E; line-height: 34rpx; text-align: center; } } .orderTips { width: 694rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 12rpx 0 0 26rpx; padding: 22rpx 36rpx 50rpx 24rpx; .orderTitle { position: relative; margin-bottom: 24rpx; display: flex; height: 34rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #2D2D2D; line-height: 34rpx; .total { font-size: 24rpx; color: #7E7E7E; } .price { .couponNum { font-size: 28rpx; color: #F42B17; } font-size: 28rpx; image { width: 18rpx; height: 18rpx; margin-left: 18rpx; } } .copy { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #F63016; line-height: 34rpx; position: absolute; right: 0; } } .amount { display: flex; justify-content: space-around; align-items: center; margin-top: 20rpx; .share { image { width: 26rpx; height: 26rpx; margin-right: 14rpx; } height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #1E1E1E; line-height: 34rpx; } .sp { width: 0rpx; height: 38rpx; opacity: 1; border: 2rpx solid #ECECEC; } .callShop { image { width: 26rpx; height: 26rpx; margin-right: 14rpx; } height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #1E1E1E; line-height: 34rpx; } } } .line { width: 100%; height: 0rpx; opacity: 1; border: 2rpx solid #F1F1F1; } .pickedUp { width: 694rpx; height: 310rpx; background: #FFFFFF; border-radius: 10rpx 10rpx 10rpx 10rpx; opacity: 1; margin: 14rpx 0 0 26rpx; padding: 32rpx 50rpx 0 42rpx; .orderTitle { position: relative; margin-bottom: 24rpx; display: flex; height: 34rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #2D2D2D; line-height: 34rpx; .total { font-size: 24rpx; color: #7E7E7E; margin-right: 10rpx; } .price { .couponNum { font-size: 28rpx; color: #F42B17; } font-size: 28rpx; image { width: 18rpx; height: 18rpx; margin-left: 18rpx; } .goodsImag { width: 144rpx; height: 132rpx; border-radius: 0rpx 0rpx 0rpx 0rpx; opacity: 1; margin-right: 26rpx; } } .copy { height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #F63016; line-height: 34rpx; position: absolute; right: 0; } } } .footer { width: 100%; height: 120rpx; position: fixed; background-color: #FFF; bottom: 0; display: flex; justify-content: space-between; align-items: center; .meetPrice { margin-left: 26rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #000000; .type { font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #F42B17; margin-left: 12rpx; } .price { font-size: 40rpx; font-family: PingFang SC, PingFang SC; font-weight: 600; color: #F42B17; } } .fooRight { display: flex; align-items: center; } .buyAgain { width: 146rpx; height: 68rpx; background: #FFFFFF; border-radius: 76rpx 76rpx 76rpx 76rpx; opacity: 1; border: 2rpx solid #D9D9D9; text-align: center; line-height: 68rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #333; margin-right: 14rpx; } .btn { width: 214rpx; height: 74rpx; background: linear-gradient(180deg, #FD5D06 0%, #F3211A 100%); border-radius: 100rpx 100rpx 100rpx 100rpx; opacity: 1; text-align: center; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #FFFFFF; line-height: 74rpx; margin-right: 20rpx; } } .dia { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); z-index: 99; display: flex; align-items: center; justify-content: center; .diaMain { width: 560rpx; height: 432rpx; background: linear-gradient(180deg, #FFE4E4 0%, #FFFFFF 100%); border-radius: 12rpx 12rpx 12rpx 12rpx; opacity: 1; position: relative; .ld { width: 100rpx; height: 100rpx; position: absolute; top: -50rpx; left: 230rpx; } .cdTitle { width: 128rpx; height: 44rpx; font-size: 32rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #000000; line-height: 44rpx; margin: 80rpx 0 0 216rpx; } .cdInfo { width: 498rpx; height: 120rpx; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #727272; line-height: 33rpx; margin-left: 48rpx; margin-top: 28rpx; } .iKnow { width: 412rpx; height: 72rpx; background: #F55349; border-radius: 8rpx 8rpx 8rpx 8rpx; opacity: 1; font-size: 28rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #FFFFFF; line-height: 72rpx; margin: 36rpx 0 0 74rpx; text-align: center; } } } .bigCode { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(65, 65, 65, 0.46); display: flex; align-items: center; justify-content: center; .cm { width: 560rpx; height: 714rpx; background: #FFFFFF; border-radius: 16rpx 16rpx 16rpx 16rpx; opacity: 1; padding-top: 44rpx; .cm_text { width: 100%; height: 42rpx; font-size: 30rpx; font-weight: 500; color: #424242; line-height: 42rpx; text-align: center; } .txm { .codeImg { width: 394rpx; height: 458rpx; border-radius: 0rpx 0rpx 0rpx 0rpx; opacity: 1; } } .cline { padding: 0 34rpx; margin: 46rpx 0 30rpx 0; } .sm { width: 100%; height: 34rpx; font-size: 24rpx; font-family: PingFang SC, PingFang SC; font-weight: 500; color: #979797; line-height: 28rpx; text-align: center; } } } .up2 { width: 114rpx; height: 50rpx; background: #FFFFFF; border-radius: 88rpx 88rpx 88rpx 88rpx; opacity: 1; border: 1rpx solid #D9D9D9; text-align: center; line-height: 50rpx; font-size: 20rpx; font-family: PingFang SC, PingFang SC; font-weight: 400; color: #676767; } </style>