<template> <view :data-theme="theme"> <view class='order-details'> <!-- 给header上与data上加on为退款订单--> <view class='header bg_color' :class='isGoodsReturn ? "on":""'> <view class='picTxt acea-row row-middle' id="boxss"> <!-- <view class='pictrue' v-if="isGoodsReturn==false"> <image :src="orderInfo.statusPic"></image> </view> --> <view class='data' :class='isGoodsReturn ? "on":""'> <view class='state'>{{orderInfo.orderStatusMsg}}</view> <view v-if="orderInfo.refundReasonTime !== null">{{orderInfo.refundReasonTime}}</view> <view v-else>{{orderInfo.payTime ? orderInfo.payTime :''}}</view> </view> </view> </view> <view v-if="isGoodsReturn==false" class="pad30"> <view class='nav'> <view class='navCon acea-row row-between-wrapper'> <view :class="orderInfo.status == 6 ? 'on':''">待审核</view> <view :class="orderInfo.status == 7 ? 'on':''">待签约</view> <view :class="orderInfo.status == 1 ? 'on':''">待发货</view> <!-- <view :class="orderInfo.status == 2 ? 'on':''">待收货</view> --> <view :class="orderInfo.status == 8 ? 'on':''">使用中</view> <view :class="orderInfo.status == 4 ? 'on':'' || orderInfo.status == -4 ? 'on':''">已完成</view> </view> <view class='progress acea-row row-between-wrapper'> <view class='iconfont' :class='(!orderInfo.paid ? "icon-webicon318":"icon-yuandianxiao") + " " + ( orderInfo.paid ? "font_color":"")'> </view> <view class='line' :class='orderInfo.paid > 0 ? "bg_color":""'></view> <view class='iconfont' :class='(orderInfo.status == 0 ? "icon-webicon318":"icon-yuandianxiao") + " " + (orderInfo.status >= 0 ? "font_color":"")'> </view> <view class='line' :class='orderInfo.status > 0 ? "bg_color":""' v-if="orderInfo.shippingType == 1"></view> <view class='iconfont' :class='(orderInfo.status == 1 ? "icon-webicon318":"icon-yuandianxiao") + " " +(orderInfo.status >= 1 ? "font_color":"")' v-if="orderInfo.shippingType == 1"></view> <view class='line' :class='orderInfo.status > 1 ? "bg_color":""'></view> <view class='iconfont' :class='(orderInfo.status == 8 ? "icon-webicon318":"icon-yuandianxiao") + " " + (orderInfo.status >= 2 ? "font_color":"")'> </view> <view class='line' :class='orderInfo.status > 2 ? "bg_color":""'></view> <view class='iconfont' :class='(orderInfo.status == 3 ? "icon-webicon318":"icon-yuandianxiao") + " " + (orderInfo.status >= 3 ? "font_color":"")'> </view> </view> </view> <view v-if="orderInfo.shippingType == 2 && orderInfo.paid" class="writeOff borRadius14"> <view class="title">核销信息</view> <view class="grayBg"> <view class="pictrue"> <!-- <div class="qrcode" ref="qrcode"></div> --> <!-- <canvas canvas-id="qrcode" :style="{width: `${qrcodeSize}100%`, height: `${qrcodeSize}100%`}"/> --> <image :src="codeImg"></image> </view> </view> <view class="gear"> <image src="../../static/images/writeOff.jpg"></image> </view> <view class="num">{{orderInfo.verifyCode}}</view> <view class="rules" v-if='orderInfo.systemStore'> <view class="item"> <view class="rulesTitle acea-row row-middle"> <text class="iconfont icon-shijian"></text>核销时间 </view> <view class="info"> 每日:<text class="time">{{orderInfo.systemStore.dayTime.replace(',','-')}}</text> </view> </view> <view class="item"> <view class="rulesTitle acea-row row-middle"> <text class="iconfont icon-shuoming1"></text>使用说明 </view> <view class="info">可将二维码出示给店员扫描或提供数字核销码</view> </view> </view> </view> <view class="refund borRadius14" v-if="orderInfo.refundReason"> <view class="title"> <image src="/static/images/shuoming.png" mode=""></image> 商家拒绝退款 </view> <view class="con">拒绝原因:{{orderInfo.refundReason}}</view> </view> <view v-if="orderInfo.shippingType == 2" class="map acea-row row-between-wrapper borRadius14"> <view>自提地址信息</view> <view class="place cart-color acea-row row-center-wrapper" @tap="showMaoLocation"> <text class="iconfont icon-weizhi"></text>查看位置 </view> </view> <view v-if="orderInfo.shippingType === 1" class='address borRadius14'> <view class='name'>{{orderInfo.realName}}<text class='phone'>{{orderInfo.userPhone}}</text></view> <view>{{orderInfo.userAddress}}</view> </view> <view v-else class='address' style="margin-top:15rpx;"> <view class='name' @tap="makePhone">{{orderInfo.systemStore?orderInfo.systemStore.name:''}}<text class='phone'>{{orderInfo.systemStore?orderInfo.systemStore.phone:''}}</text><text class="iconfont icon-tonghua font-color"></text></view> <view>{{orderInfo.systemStore?orderInfo.systemStore.address + orderInfo.systemStore.detailedAddress:''}}</view> </view> <!-- 商品信息 --> <orderGoods :evaluate='evaluate' :productType="orderInfo.type" :orderId="order_id" :ids="id" :uniId="uniId" :cartInfo="cartInfo" :jump="true"> </orderGoods> <!-- #ifndef MP --> <div class="goodCall borRadius14" @click="onClickService"> <!-- <span class="iconfont icon-kefu"></span><span>联系客服</span> --> </div> <!-- #endif --> <!-- #ifdef MP --> <div class="goodCall borRadius14"> <!-- <button hover-class='none' @click="onClickService" v-if="chatConfig.telephone_service_switch === '1'"> <span class="iconfont icon-kefu"></span><span>联系客服</span> </button> <button open-type='contact' hover-class='none' v-else> <span class="iconfont icon-kefu"></span><span>联系客服</span> </button> --> </div> <!-- #endif --> </view> <!-- 加载logo --> <view class="logobox" v-show="logoflag"> <image class="logoicon" src="../../static/img/logo.png"></image> <text>正在生成签署证书中...</text> </view> <view class="pad30"> <!-- <view class='nav refund' v-if="orderInfo.refundStatus>0"> <view class="title"> <image src="/static/images/shuoming.png" mode=""></image> {{orderInfo.refundStatus==1?'商家审核中':orderInfo.refundStatus==2?'商家已退款':'商家拒绝退款'}} </view> <view class="con pad30">{{orderInfo.refundStatus==1 ? "您已成功发起退款申请,请耐心等待商家处理;退款前请与商家协商一致,有助于更好的处理售后问题": orderInfo.refundStatus==2? "退款已成功受理,如商家已寄出商品请尽快退回;感谢您的支持": "拒绝原因:" + orderInfo.refundReason}}</view> </view> --> <view class='wrapper borRadius14'> <view class='item acea-row row-between'> <view>订单编号:</view> <view class='conter acea-row row-middle row-right'><text class="text-overflow">{{orderInfo.orderId}}</text> <!-- #ifndef H5 --> <text class='copy' @tap='copy'>复制</text> <!-- #endif --> <!-- #ifdef H5 --> <text class='copy copy-data' :data-clipboard-text="orderInfo.orderId">复制</text> <!-- #endif --> </view> </view> <view class='item acea-row row-between'> <view>下单时间:</view> <view class='conter'>{{(orderInfo.createTime || 0)}}</view> </view> <view class='item acea-row row-between'> <view>支付状态:</view> <view class='conter' v-if="orderInfo.paid">已支付</view> <view class='conter' v-else>未支付</view> </view> <view class='item acea-row row-between'> <view>支付方式:</view> <view class='conter'>{{orderInfo.payTypeStr}}</view> </view> <view class='item flex justify-between align-center' v-if="orderInfo.mark && orderInfo.mark.length <= 15"> <view>买家留言:</view> <view class='conter' >{{orderInfo.mark}}</view> </view> <view class='item flex justify-between' v-if="orderInfo.mark && orderInfo.mark.length > 15"> <view>买家留言:</view> <view class="flex align-center" v-show="isShow" @click="isShow=!isShow"> <view class='conter' >{{orderInfo.mark}}</view> <text class="iconfont icon-xiangyou" style="font-size: 12px;"></text> </view> <view v-show="!isShow" @click="isShow=!isShow"> <view class='mark_show' >{{orderInfo.mark}}</view> </view> </view> </view> <!-- 退款订单详情 "--> <view v-if="isGoodsReturn" class='wrapper borRadius14' > <view class='item acea-row row-between'> <view>收货人:</view> <view class='conter'>{{orderInfo.realName}}</view> </view> <view class='item acea-row row-between'> <view>联系电话:</view> <view class='conter'>{{orderInfo.userPhone}}</view> </view> <view class='item acea-row row-between'> <view>收货地址:</view> <view class='conter'>{{orderInfo.userAddress}}</view> </view> <view class='item acea-row row-between' v-if="orderInfo.refundReasonWap"> <view>退款原因:</view> <view class='conter'>{{orderInfo.refundReasonWap}}</view> </view> <view class='item acea-row row-between' v-if="orderInfo.refundReasonWapExplain"> <view>退款说明:</view> <view class='conter'>{{orderInfo.refundReasonWapExplain}}</view> </view> </view> <view v-if="orderInfo.status>0"> <view class='wrapper borRadius14' v-if='orderInfo.deliveryType=="express"'> <view class='item acea-row row-between'> <view>配送方式:</view> <view class='conter'>发货</view> </view> <view class='item acea-row row-between'> <view>快递公司:</view> <view class='conter'>{{orderInfo.deliveryName || ''}}</view> </view> <view class='item acea-row row-between'> <view>快递号:</view> <view class='conter'>{{orderInfo.deliveryId || ''}}</view> </view> </view> <view class='wrapper borRadius14' v-else-if='orderInfo.deliveryType=="send"'> <view class='item acea-row row-between'> <view>配送方式:</view> <view class='conter'>送货</view> </view> <view class='item acea-row row-between'> <view>配送人姓名:</view> <view class='conter'>{{orderInfo.deliveryName || ''}}</view> </view> <view class='item acea-row row-between'> <view>联系电话:</view> <view class='conter acea-row row-middle row-right'>{{orderInfo.deliveryId || ''}}<text class='copy' @tap='goTel'>拨打</text></view> </view> </view> <view class='wrapper borRadius14' v-else-if='orderInfo.deliveryType=="fictitious"'> <view class='item acea-row row-between'> <view>虚拟发货:</view> <view class='conter'>已发货,请注意查收</view> </view> </view> </view> <view class='wrapper borRadius14'> <view class='item acea-row row-between'> <view>商品总价:</view> <view class='conter'>¥{{orderInfo.proTotalPrice}}</view> </view> <view class='item acea-row row-between' v-if="orderInfo.payPostage > 0"> <view>运费:</view> <view class='conter'>¥{{orderInfo.payPostage}}</view> </view> <view class='item acea-row row-between' v-if='orderInfo.couponId'> <view>优惠券抵扣:</view> <view class='conter'>-¥{{orderInfo.couponPrice}}</view> </view> <view class='item acea-row row-between' v-if="orderInfo.useIntegral > 0"> <view>积分抵扣:</view> <view class='conter'>-¥{{orderInfo.deductionPrice}}</view> </view> <view class='actualPay acea-row row-right'>实付款:<text class='money'>¥{{orderInfo.payPrice}}</text></view> </view> <view style='height:120rpx;'></view> <view class='footer acea-row row-right row-middle' v-if="isGoodsReturn==false"> <!-- <view class="qs-btn" v-if="!orderInfo.paid" @click.stop="cancelOrder">取消订单</view> --> <view class='bnt bg_color' @click="btnback">返回</view> <view class='bnt bg_color' v-if="orderInfo.status == 7" @tap='lijiqys(orderInfo.orderId,orderInfo.id)'>立即签约</view> <navigator hover-class="none" :url="'/pages/users/goods_return/index?orderId='+orderInfo.orderId" class='bnt cancel' v-else-if="orderInfo.status == 4">申请退款 </navigator> <!-- <view class='bnt bg_color' v-if="orderInfo.combinationId > 0" @tap='goJoinPink'>查看拼团</view> <navigator class='bnt cancel' v-if="orderInfo.deliveryType == 'express' && orderInfo.status >0" hover-class='none' :url="'/pages/users/goods_logistics/index?orderId='+ orderInfo.orderId">查看物流 </navigator> --> <view class='bnt bg_color' v-if="orderInfo.status==4" @tap='confirmOrder'>确认收货</view> <!-- <view class='bnt cancel' v-if="orderInfo.status==3" @tap='delOrder'>删除订单</view> --> <view class='bnt bg_color' v-if="orderInfo.status==4" @tap='goOrderConfirm'>再次购买</view> </view> </view> </view> <payment :pay_close="pay_close" @onChangeFun='onChangeFun' :order_id="pay_order_id" :totalPrice='totalPrice'></payment> </view> </template> <script> import { getOrderDetail, orderTake, orderDel, orderCancel, qrcodeApi, getnowqy } from '@/api/order.js'; import kModel from '@/components/k-model/k-model.vue'; import payment from '@/components/payment'; import orderGoods from "@/components/orderGoods"; import ClipboardJS from "@/plugin/clipboard/clipboard.js"; import {toLogin} from '@/libs/login.js'; import {mapGetters} from "vuex"; // #ifdef MP import uQRCode from '@/js_sdk/Sansnn-uQRCode/uqrcode.js' // #endif import {setThemeColor} from '@/utils/setTheme.js' import {Debounce} from '@/utils/validate.js' const app = getApp(); export default { components: { payment, orderGoods, kModel }, data() { return { codeImg: '', qrcodeSize: 100, order_id: '', evaluate: 0, cartInfo: [], //购物车产品 orderInfo: { systemStore: {}, pstatus: {} }, //订单详情 system_store: {}, isGoodsReturn: false, //是否为退款订单 status: {}, //订单底部按钮状态 isClose: false, payMode: [{ name: "微信支付", icon: "icon-weixinzhifu", value: 'weixin', title: '微信快捷支付', payStatus: 1, }, { name: "余额支付", icon: "icon-yuezhifu", value: 'yue', title: '可用余额:', number: 0, payStatus: 1, }, // #ifndef MP { "name": "支付宝支付", "icon": "icon-zhifubao", value: 'alipay', title: '支付宝快捷支付', payStatus: 1, } // #endif ], pay_close: false, pay_order_id: '', totalPrice: '0', isAuto: false, //没有授权的不会自动授权 isShowAuth: false, //是否隐藏授权 id: 0, //订单id uniId: '', utils: this.$util, againStatus:0, type: 'normal', isShow:true, theme:app.globalData.theme, bgColor:'#e93323', logoflag: false, https: '', chatConfig:{ consumer_hotline:'', telephone_service_switch:'0' } //客服配置 }; }, computed: mapGetters(['isLogin', 'chatUrl', 'userInfo']), onLoad: function(options) { options.type == undefined || options.type == null ? this.type = 'normal' : this.type = options.type; if (!options.order_id && !options.uniId) return this.$util.Tips({ title: '缺少参数' }, { tab: 3, url: 1 }); this.$set(this, 'order_id', options.order_id); let that = this; that.bgColor = setThemeColor(); uni.setNavigationBarColor({ frontColor: '#ffffff', backgroundColor:that.bgColor, }); that.$set(that,'chatConfig',that.$Cache.getItem('chatConfig')); }, onShow() { if (this.isLogin) { this.getOrderInfo(); this.payMode[1].number = this.userInfo.nowMoney; this.$set(this, 'payMode', this.payMode); } else { toLogin(); } }, onHide: function() { this.isClose = true; }, onReady: function() { // #ifdef H5 this.$nextTick(function() { const clipboard = new ClipboardJS(".copy-data"); clipboard.on("success", () => { this.$util.Tips({ title: '复制成功' }); }); }); // #endif }, mounted() { // #ifdef H5 if(this.$wechat.isWeixin()) this.payMode.pop(); // #endif }, methods: { // 点击立即签约 lijiqys(id, ids) { this.$Cache.set('qyids', id) // 跳转到签署页面 // uni.navigateTo({ // url:'/pages/users/signin/index' // }) this.logoflag = true //logo显示 getnowqy(id).then(res => { this.logoflag = false //logo隐藏 this.https = res.data.url uni.navigateTo({ url: '/pages/users/inbound/index?http=' + this.https }) // #ifdef H5 window.location.href=this.https // #endif }) }, // 返回上一页 btnback(){ uni.navigateBack({ delta: 1 }) }, onClickService() { if(this.chatConfig.telephone_service_switch === '1'){ uni.makePhoneCall({ phoneNumber: this.chatConfig.consumer_hotline //仅为示例 }); }else{ // #ifdef APP-PLUS uni.navigateTo({ url: '/pages/users/web_page/index?webUel=' + this.chatUrl + '&title=客服' }) // #endif // #ifndef APP-PLUS location.href = this.chatUrl; // #endif } }, /** * 事件回调 * */ onChangeFun: function(e) { let opt = e; let action = opt.action || null; let value = opt.value != undefined ? opt.value : null; (action && this[action]) && this[action](value); }, /** * 拨打电话 */ makePhone: function() { uni.makePhoneCall({ phoneNumber: this.system_store.phone }) }, /** * 打开地图 * */ showMaoLocation: function() { if (!this.system_store.latitude || !this.system_store.longitude) return this.$util.Tips({ title: '缺少经纬度信息无法查看地图!' }); uni.openLocation({ latitude: parseFloat(this.system_store.latitude), longitude: parseFloat(this.system_store.longitude), scale: 8, name: this.system_store.name, address: this.system_store.address + this.system_store.detailedAddress, success: function() { }, }); }, /** * 关闭支付组件 * */ payClose: function() { this.pay_close = false; }, /** * 打开支付组件 * */ pay_open: function() { this.pay_close = true; this.pay_order_id = this.orderInfo.orderId; this.totalPrice = this.orderInfo.payPrice; }, /** * 支付成功回调 * */ pay_complete: function() { this.pay_close = false; this.pay_order_id = ''; this.getOrderInfo(); }, /** * 支付失败回调 * */ pay_fail: function() { this.pay_close = false; this.pay_order_id = ''; }, /** * 获取订单详细信息 * */ getOrderInfo: function() { let that = this; uni.showLoading({ title: "正在加载中" }); getOrderDetail(that.order_id).then(res => { uni.hideLoading(); that.$set(that, 'orderInfo', res.data); that.$set(that, 'evaluate', res.data.status == 2 ? 2 : 0); that.$set(that, 'system_store', res.data.systemStore); that.$set(that, 'id', res.data.id); that.$set(that, 'cartInfo', res.data.orderInfoList); if (res.data.refundStatus != 0) { that.isGoodsReturn = true; }; if (that.orderInfo.shippingType == 2 && that.orderInfo.paid) that.markCode(res.data.verifyCode); if(that.orderInfo.refundStatus>0){ uni.setNavigationBarColor({ frontColor: '#fff', backgroundColor: '#666666' }) } if(res.data.combinationId > 0 || res.data.bargainId > 0 ||res.data.seckillId > 0 ){ this.againStatus = 1; } }).catch(err => { that.$util.Tips({ title: err },{ tab: 4, url: '/pages/user/index' }); }); }, /** * * 生成二维码 */ markCode(text) { qrcodeApi({ height: '145', text: text, width: '145' }).then(res => { this.codeImg = res.data.code }); }, /** * * 剪切订单号 */ // #ifndef H5 copy: function() { let that = this; uni.setClipboardData({ data: this.orderInfo.orderId }); }, // #endif /** * 打电话 */ goTel: function() { uni.makePhoneCall({ phoneNumber: this.orderInfo.deliveryId }) }, /** * 设置底部按钮 * */ getOrderStatus: function() { let orderInfo = this.orderInfo || {}, _status = orderInfo.pstatus || { type: 0 }, status = {}; let type = parseInt(_status.type), delivery_type = orderInfo.deliveryType, seckill_id = orderInfo.seckillId ? parseInt(orderInfo.seckillId) : 0, bargain_id = orderInfo.bargainId ? parseInt(orderInfo.bargainId) : 0, combination_id = orderInfo.combinationId ? parseInt(orderInfo.combinationId) : 0; status = { type: type == 9 ? -9 : type, class_status: 0 }; if (type == 1 && combination_id > 0) status.class_status = 1; //查看拼团 if (type == 2 && delivery_type == 'express') status.class_status = 2; //查看物流 if (type == 2) status.class_status = 3; //确认收货 if (type == 4 || type == 0) status.class_status = 4; //删除订单 if (!seckill_id && !bargain_id && !combination_id && (type == 3 || type == 4)) status.class_status = 5; //再次购买 this.$set(this, 'status', status); }, /** * 去拼团详情 * */ goJoinPink: function() { uni.navigateTo({ url: '/pages/activity/goods_combination_status/index?id=' + this.orderInfo.pinkId, }); }, /** * 再此购买 * */ goOrderConfirm: Debounce(function() { this.$Order.getPreOrder("again",[{ orderNo: this.order_id }]); }), confirmOrder: Debounce(function() { let that = this; uni.showModal({ title: '确认收货', content: '为保障权益,请收到货确认无误后,再确认收货', success: function(res) { if (res.confirm) { orderTake(that.id).then(res => { return that.$util.Tips({ title: '操作成功', icon: 'success' }, function() { that.getOrderInfo(); }); }).catch(err => { return that.$util.Tips({ title: err }); }) } } }) }), /** * * 删除订单 */ delOrder: Debounce(function() { uni.showModal({ content: '确定删除该订单', cancelText: "取消", confirmText: "确定", showCancel: true, confirmColor: '#f55850', success: (res) => { if(res.confirm) { let that = this; orderDel(this.id).then(res => { return that.$util.Tips({ title: '删除成功', icon: 'success' }, { tab: 4, url: '/pages/user/index' }); }).catch(err => { return that.$util.Tips({ title: err }); }); } else { } } }) }), cancelOrder:Debounce(function(){ let self = this uni.showModal({ title: '提示', content: '确认取消该订单?', success: function(res) { if (res.confirm) { orderCancel(self.orderInfo.id) .then((data) => { self.$util.Tips({ title: '取消成功' }, { tab: 4, url: '/pages/user/index' }) }).catch((err) => { self.$util.Tips({ title: err }) self.getDetail(); }); } else if (res.cancel) { console.log('用户点击取消'); } } }); }) } } </script> <style scoped lang="scss"> page { position: relative; } .logobox { width: 100%; height: 100vh; background-color: red; position: fixed; top: 0; left: 0; opacity: .7; padding-top: 40%; box-sizing: border-box; background-color:#000; text-align: center; z-index: 1; } .logobox text{ display: block; color: #fff; font-size: 14px; z-index: 999; position: absolute; top: 55%; left: 50%; transform: translateX(-50%); } .logoicon { width: 80rpx; height: 140rpx; z-index: 99; position: absolute; top: 38%; left: 50%; transform: translateX(-50%); } #boxss{ display: block; text-align: center; padding-top: 50rpx; box-sizing: border-box; } .qs-btn { width: auto; height: 60rpx; text-align: center; line-height: 60rpx; border-radius: 50rpx; color: #fff; font-size: 27rpx; padding: 0 3%; color: #aaa; border: 1px solid #ddd; margin-right: 20rpx; } .text-overflow{ width: 300rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .shuoming{ width: 32rpx; height: 32rpx; } .mp-header{ width: 100%; @include main_bg_color(theme); } .goodCall { @include main_color(theme); text-align: center; width: 100%; height: 86rpx; padding: 0 30rpx; border-bottom: 1rpx solid #eee; font-size: 30rpx; line-height: 86rpx; background: #fff; .icon-kefu { font-size: 36rpx; margin-right: 15rpx; } /* #ifdef MP */ button { display: flex; align-items: center; justify-content: center; height: 86rpx; font-size: 30rpx; @include main_color(theme); } /* #endif */ } .justify-between { justify-content: space-between; } .align-center{ align-items: center; } .order-details .header { height: 250rpx; padding: 0 30rpx; } .bg_color{ @include main_bg_color(theme); } .order-details .header.on { background-color: #666 !important; } .order-details .header .pictrue { width: 110rpx; height: 110rpx; } .order-details .header .pictrue image { width: 100%; height: 100%; } .order-details .header .data { color: rgba(255, 255, 255, 0.8); font-size: 24rpx; margin-left: 27rpx; } .order-details .header .data.on { margin-left: 0; } .order-details .header .data .state { font-size: 30rpx; font-weight: bold; color: #fff; margin-bottom: 7rpx; } .order-details .header .data .time { margin-left: 20rpx; } .picTxt { height: 150rpx; } .order-details .nav { background-color: #fff; font-size: 26rpx; color: #282828; padding: 27rpx 0; width: 100%; border-radius: 14rpx; margin: -100rpx auto 0 auto; } .order-details .nav .navCon { padding: 0 40rpx; } .order-details .nav .on { @include main_color(theme); } .font_color{ @include main_color(theme); } .order-details .nav .progress { padding: 0 65rpx; margin-top: 10rpx; } .order-details .nav .progress .line { width: 100rpx; height: 2rpx; background-color: #939390; } .order-details .nav .progress .iconfont { font-size: 25rpx; color: #939390; margin-top: -2rpx; } .order-details .address { font-size: 26rpx; color: #868686; background-color: #fff; margin-top: 15rpx; padding: 30rpx 24rpx; } .order-details .address .name { font-size: 30rpx; color: #282828; margin-bottom: 15rpx; } .order-details .address .name .phone { margin-left: 40rpx; } .order-details .line { width: 100%; height: 3rpx; } .order-details .line image { width: 100%; height: 100%; display: block; } .order-details .wrapper { background-color: #fff; margin-top: 12rpx; padding: 30rpx 24rpx; } .order-details .wrapper .item { font-size: 28rpx; color: #282828; } .order-details .wrapper .item~.item { margin-top: 20rpx; } .order-details .wrapper .item .conter { color: #868686; width: 470rpx; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mark_show{ color: #868686; width: 470rpx; text-align: right; } .order-details .wrapper .item .conter .copy { font-size: 20rpx; color: #333; border-radius: 20rpx; border: 1rpx solid #666; padding: 3rpx 15rpx; margin-left: 24rpx; } .order-details .wrapper .actualPay { border-top: 1rpx solid #eee; margin-top: 30rpx; padding-top: 30rpx; } .order-details .wrapper .actualPay .money { font-weight: bold; font-size: 30rpx; @include price_color(theme); } .order-details .footer { width: 100%; height: 100rpx; position: fixed; bottom: 0; left: 0; background-color: #fff; padding-right: 30rpx; box-sizing: border-box; } .order-details .footer .bnt { width: 158rpx; height: 54rpx; text-align: center; line-height: 54rpx; border-radius: 50rpx; color: #fff; font-size: 27rpx; } .order-details .footer .bnt.cancel { color: #aaa; border: 1rpx solid #ddd; } .order-details .footer .bnt~.bnt { margin-left: 18rpx; } .order-details .writeOff { background-color: #fff; margin-top: 15rpx; padding-bottom: 50rpx; } .order-details .writeOff .title { font-size: 30rpx; color: #282828; height: 87rpx; border-bottom: 1px solid #f0f0f0; padding: 0 24rpx; line-height: 87rpx; } .order-details .writeOff .grayBg { background-color: #f2f5f7; width: 590rpx; height: 384rpx; border-radius: 20rpx 20rpx 0 0; margin: 50rpx auto 0 auto; padding-top: 55rpx; } .order-details .writeOff .grayBg .pictrue { width: 290rpx; height: 290rpx; margin: 0 auto; } .order-details .writeOff .grayBg .pictrue image { width: 100%; height: 100%; display: block; } .order-details .writeOff .gear { width: 590rpx; height: 30rpx; margin: 0 auto; } .order-details .writeOff .gear image { width: 100%; height: 100%; display: block; } .order-details .writeOff .num { background-color: #f0c34c; width: 590rpx; height: 84rpx; color: #282828; font-size: 48rpx; margin: 0 auto; border-radius: 0 0 20rpx 20rpx; text-align: center; padding-top: 4rpx; } .order-details .writeOff .rules { margin: 46rpx 30rpx 0 30rpx; border-top: 1px solid #f0f0f0; padding-top: 10rpx; } .order-details .writeOff .rules .item { margin-top: 20rpx; } .order-details .writeOff .rules .item .rulesTitle { font-size: 28rpx; color: #282828; } .order-details .writeOff .rules .item .rulesTitle .iconfont { font-size: 30rpx; color: #333; margin-right: 8rpx; margin-top: 5rpx; } .order-details .writeOff .rules .item .info { font-size: 28rpx; color: #999; margin-top: 7rpx; } .order-details .writeOff .rules .item .info .time { margin-left: 20rpx; } .order-details .map { height: 86rpx; font-size: 30rpx; color: #282828; line-height: 86rpx; border-bottom: 1px solid #f0f0f0; margin-top: 15rpx; background-color: #fff; padding: 0 24rpx; } .order-details .map .place { font-size: 26rpx; width: 176rpx; height: 50rpx; border-radius: 25rpx; line-height: 50rpx; text-align: center; } .order-details .map .place .iconfont { font-size: 27rpx; height: 27rpx; line-height: 27rpx; margin: 2rpx 3rpx 0 0; } .order-details .address .name .iconfont { font-size: 34rpx; margin-left: 10rpx; } .refund { padding: 0 !important; margin-top: 15rpx; background-color: #fff; .title { display: flex; align-items: center; font-size: 30rpx; color: #333; height: 86rpx; border-bottom: 1px solid #f5f5f5; font-weight: 400; padding: 0 24rpx; image { width: 32rpx; height: 32rpx; margin-right: 10rpx; } } .con { font-size: 26rpx; color: #666666; padding: 30rpx 24rpx; } } </style>