912 lines
23 KiB
Vue
912 lines
23 KiB
Vue
|
|
<template>
|
|||
|
|
<view :data-theme="theme">
|
|||
|
|
<view class='order-details'>
|
|||
|
|
<view class="gradient-bg absolute"></view>
|
|||
|
|
<!-- 给header上与data上加on为退款订单-->
|
|||
|
|
<view class='header bg-color on'>
|
|||
|
|
<view class='picTxt acea-row row-middle'>
|
|||
|
|
<view class='data on mb-60'>
|
|||
|
|
<view class="acea-row row-middle mb20">
|
|||
|
|
<view class='state line-heightOne'>{{refundInfo.refundStatus | refundStatusFilter}}</view>
|
|||
|
|
<view v-show="refundInfo.refundStatus===3"><text
|
|||
|
|
class="font-color refundPrice">{{refundInfo.refundPrice || 0 }}元</text></view>
|
|||
|
|
</view>
|
|||
|
|
<view class="line2" v-if="refundInfo.refundStatus===1">{{refundInfo.refundReason}}</view>
|
|||
|
|
<view v-else>{{refundInfo.refundStatus | orderRefundTipsStatusFilter}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 商品详情 -->
|
|||
|
|
<view class="margin-100">
|
|||
|
|
<view class="borderPad relative">
|
|||
|
|
<view class="borRadius14 wrapper relative">
|
|||
|
|
<view class="borderPad">
|
|||
|
|
<orderGoods :isShowBtn="false" :refundInfo="refundInfo" :cartInfo="[refundInfo]" :jump="true" :orderData="refundInfo">
|
|||
|
|
</orderGoods>
|
|||
|
|
</view>
|
|||
|
|
<view class="borderPad">
|
|||
|
|
<view class="return_info">
|
|||
|
|
<view class='item acea-row row-between line-heightOne'>
|
|||
|
|
<view>退款件数:</view>
|
|||
|
|
<view class='conter'>{{refundInfo.applyRefundNum || 0 }}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between line-heightOne'>
|
|||
|
|
<view>退款金额:</view>
|
|||
|
|
<view class='conter'>¥{{refundInfo.refundPrice || 0 }}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between line-heightOne'>
|
|||
|
|
<view>退款方式:</view>
|
|||
|
|
<view class='conter'>原支付返回</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between line-heightOne'>
|
|||
|
|
<view>退款原因:</view>
|
|||
|
|
<view v-if="refundInfo.promoterType==='user'" class='conter'>{{refundInfo.refundReasonWap}}</view>
|
|||
|
|
<view v-else class='conter'>商家直接退款</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 商家店铺地址 -->
|
|||
|
|
<view v-if="refundInfo.returnGoodsType ===2 && merAddress && refundInfo.refundStatus>0" class="borderPad">
|
|||
|
|
<view class="borRadius14 wrapper return_info_pad">
|
|||
|
|
<view class='item acea-row row-between mb30'>
|
|||
|
|
<view>商家退回地址:</view>
|
|||
|
|
<view class='conter acea-row row-middle row-right'>
|
|||
|
|
<!-- #ifndef H5 -->
|
|||
|
|
<text class='copy line-heightOne' @tap="handleCopy(merAddress.name+','+merAddress.phone+','+merAddress.addressDetail)">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
<!-- #ifdef H5 -->
|
|||
|
|
<text class='copy copy-data line-heightOne'
|
|||
|
|
:data-clipboard-text="merAddress.name+','+merAddress.phone+','+merAddress.addressDetail">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="text-2828 f-s-26 mb20">
|
|||
|
|
<text class="text-2828">{{merAddress.name}}</text>
|
|||
|
|
<text>{{merAddress.phone}}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="text-666 f-s-26 addressDetail">{{merAddress.addressDetail}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 商家退回地址 -->
|
|||
|
|
<view v-if="refundInfo.returnGoodsType ===1 && refundInfo.refundStatus>0 &&refundInfo.receiver&&refundInfo.receiverPhone&&refundInfo.receiverAddressDetail" class="borderPad">
|
|||
|
|
<view class="borRadius14 wrapper return_info_pad">
|
|||
|
|
<view class='item acea-row row-between mb30'>
|
|||
|
|
<view>商家退回地址:</view>
|
|||
|
|
<view class='conter acea-row row-middle row-right'>
|
|||
|
|
<!-- #ifndef H5 -->
|
|||
|
|
<text class='copy line-heightOne' @tap="handleCopy(refundInfo.receiver+','+refundInfo.receiverPhone+','+refundInfo.receiverAddressDetail)">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
<!-- #ifdef H5 -->
|
|||
|
|
<text class='copy copy-data line-heightOne'
|
|||
|
|
:data-clipboard-text="refundInfo.receiver+','+refundInfo.receiverPhone+','+refundInfo.receiverAddressDetail">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="text-2828 f-s-26 mb20">
|
|||
|
|
<text class="text-2828">{{refundInfo.receiver}}</text>
|
|||
|
|
<text>{{refundInfo.receiverPhone}}</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="text-666 f-s-26 addressDetail">{{refundInfo.receiverAddressDetail}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 退款订单详情 "-->
|
|||
|
|
<view class="borderPad">
|
|||
|
|
<view class='wrapper borRadius14 return_info_pad'>
|
|||
|
|
<view class='item acea-row row-between '>
|
|||
|
|
<view>订单单号:</view>
|
|||
|
|
<view class='conter acea-row row-middle row-right'><text
|
|||
|
|
class="text-overflow">{{refundInfo.orderNo}}</text>
|
|||
|
|
<!-- #ifndef H5 -->
|
|||
|
|
<text class='copy line-heightOne' @tap='handleCopy(refundInfo.orderNo)'>复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
<!-- #ifdef H5 -->
|
|||
|
|
<text class='copy copy-data line-heightOne'
|
|||
|
|
:data-clipboard-text="refundInfo.orderNo">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>售后单号:</view>
|
|||
|
|
<view class='conter acea-row row-middle row-right'><text
|
|||
|
|
class="text-overflow">{{refundInfo.refundOrderNo}}</text>
|
|||
|
|
<!-- #ifndef H5 -->
|
|||
|
|
<text class='copy line-heightOne' @tap='handleCopy(refundInfo.refundOrderNo)'>复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
<!-- #ifdef H5 -->
|
|||
|
|
<text class='copy copy-data line-heightOne'
|
|||
|
|
:data-clipboard-text="refundInfo.refundOrderNo">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>申请时间:</view>
|
|||
|
|
<view class='conter'>{{(refundInfo.createTime || 0)}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>售后类型:</view>
|
|||
|
|
<view class='conter'>{{refundInfo.afterSalesType===1?'仅退款':'退货退款'}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>退回方式:</view>
|
|||
|
|
<view class='conter'>
|
|||
|
|
{{refundInfo.returnGoodsType===1?'快递退回':refundInfo.returnGoodsType===2?'到店退货':'不退货'}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between' v-if="refundInfo.refundReasonWapExplain">
|
|||
|
|
<view>备注说明:</view>
|
|||
|
|
<view class='conter-refund text-left'>{{refundInfo.refundReasonWapExplain}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between' v-if="refundInfo.refundReasonWapImg">
|
|||
|
|
<view>售后凭证:</view>
|
|||
|
|
<view class='conter-refund text-left'>
|
|||
|
|
<image class="wapImg" :src="item" v-for="(item, index) in refundInfo.refundReasonWapImg.split(',')"
|
|||
|
|
:key='index'></image>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 用户到店退回信息 -->
|
|||
|
|
<view v-if="refundInfo.returnGoodsType ===2 && refundInfo.refundStatus>0 && refundInfo.telephone" class="borderPad">
|
|||
|
|
<view class="borRadius14 wrapper return_info_pad">
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>联系电话:</view>
|
|||
|
|
<view class='conter'>{{refundInfo.telephone}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 用户发货信息 -->
|
|||
|
|
<view v-if="refundInfo.returnGoodsType ===1 && refundInfo.refundStatus>0 && refundInfo.expressName && refundInfo.trackingNumber" class="borderPad">
|
|||
|
|
<view class="borRadius14 wrapper return_info_pad">
|
|||
|
|
<view class='item acea-row row-between mb30'>
|
|||
|
|
<view>物流公司:</view>
|
|||
|
|
<view class='conter'>{{refundInfo.expressName}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between mb30'>
|
|||
|
|
<view>物流单号:</view>
|
|||
|
|
<view class='conter acea-row row-middle row-right'>
|
|||
|
|
<text class="text-overflow">{{refundInfo.trackingNumber}}</text>
|
|||
|
|
<!-- #ifndef H5 -->
|
|||
|
|
<text class='copy line-heightOne' @tap='handleCopy(refundInfo.trackingNumber)'>复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
<!-- #ifdef H5 -->
|
|||
|
|
<text class='copy copy-data line-heightOne'
|
|||
|
|
:data-clipboard-text="refundInfo.trackingNumber">复制</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class='item acea-row row-between'>
|
|||
|
|
<view>联系电话:</view>
|
|||
|
|
<view class='conter'>{{refundInfo.telephone}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<!-- 操作按钮 "-->
|
|||
|
|
<view v-if="refundInfo.refundStatus === 0 || refundInfo.refundStatus === 4 || refundInfo.refundStatus === 5">
|
|||
|
|
<view class='wrapper btn-box acea-row fixed footer' style="justify-content: flex-end;">
|
|||
|
|
<view></view>
|
|||
|
|
<view
|
|||
|
|
v-if="refundInfo.refundStatus === 0 || refundInfo.refundStatus === 4 || refundInfo.refundStatus === 5"
|
|||
|
|
class="btn btn-999" @click="handleRevokeRefund(refundInfo.refundOrderNo)">撤销售后</view>
|
|||
|
|
<view v-if="refundInfo.refundStatus === 4 && refundInfo.afterSalesType === 2" style="color: #fff;"
|
|||
|
|
class="btn bg-color" @click="handleReturningRefund(refundInfo)">退回商品</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
<script>
|
|||
|
|
// +----------------------------------------------------------------------
|
|||
|
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|||
|
|
// +----------------------------------------------------------------------
|
|||
|
|
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
|||
|
|
// +----------------------------------------------------------------------
|
|||
|
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|||
|
|
// +----------------------------------------------------------------------
|
|||
|
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|||
|
|
// +----------------------------------------------------------------------
|
|||
|
|
import { orderRefundInfoApi } from '@/api/order.js';
|
|||
|
|
import {onRevokeRefund} from '@/libs/order';
|
|||
|
|
import orderGoods from "@/components/orderGoods";
|
|||
|
|
import { getMerAddressApi } from '@/api/merchant.js'
|
|||
|
|
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'
|
|||
|
|
const app = getApp();
|
|||
|
|
export default {
|
|||
|
|
components: {
|
|||
|
|
orderGoods
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
merAddress: null, //店铺地址
|
|||
|
|
refundOrderNo: '',
|
|||
|
|
refundInfo: {}, //退款单详情
|
|||
|
|
theme: app.globalData.theme,
|
|||
|
|
chatConfig: {
|
|||
|
|
consumer_hotline: '',
|
|||
|
|
telephone_service_switch: 'false'
|
|||
|
|
}, //客服配置
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
computed: mapGetters(['isLogin', 'chatUrl', 'userInfo']),
|
|||
|
|
onLoad: function(options) {
|
|||
|
|
let bgColor = setThemeColor();
|
|||
|
|
uni.setNavigationBarColor({
|
|||
|
|
frontColor: '#ffffff',
|
|||
|
|
backgroundColor:bgColor,
|
|||
|
|
});
|
|||
|
|
options.type == undefined || options.type == null ? this.type = 'normal' : this.type = options.type;
|
|||
|
|
if (!options.refundOrderNo) return this.$util.Tips({
|
|||
|
|
title: '缺少参数'
|
|||
|
|
}, {
|
|||
|
|
tab: 3,
|
|||
|
|
url: 1
|
|||
|
|
});
|
|||
|
|
this.$set(this, 'refundOrderNo', options.refundOrderNo);
|
|||
|
|
this.bgColor = setThemeColor();
|
|||
|
|
this.$set(this, 'chatConfig', this.$Cache.getItem('chatConfig'));
|
|||
|
|
},
|
|||
|
|
onShow() {
|
|||
|
|
if (this.isLogin) {
|
|||
|
|
this.orderRefundInfo();
|
|||
|
|
} else {
|
|||
|
|
toLogin();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onHide: function() {
|
|||
|
|
this.isClose = true;
|
|||
|
|
},
|
|||
|
|
// 滚动监听
|
|||
|
|
onPageScroll(e) {
|
|||
|
|
// 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件
|
|||
|
|
uni.$emit('scroll');
|
|||
|
|
},
|
|||
|
|
onReady: function() {
|
|||
|
|
// #ifdef H5
|
|||
|
|
this.$nextTick(function() {
|
|||
|
|
const clipboard = new ClipboardJS(".copy-data");
|
|||
|
|
clipboard.on("success", () => {
|
|||
|
|
this.$util.Tips({
|
|||
|
|
title: '复制成功'
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
// #endif
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
//店铺地址
|
|||
|
|
getMerAddress() {
|
|||
|
|
getMerAddressApi(this.refundInfo.merId).then(res => {
|
|||
|
|
this.$set(this, 'merAddress', res.data);
|
|||
|
|
}).catch(err => {
|
|||
|
|
return this.$util.Tips({
|
|||
|
|
title: err
|
|||
|
|
});
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
//撤销售后
|
|||
|
|
handleRevokeRefund(refundOrderNo) {
|
|||
|
|
onRevokeRefund(refundOrderNo).then(() => {
|
|||
|
|
this.orderRefundInfo()
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
//退回商品
|
|||
|
|
handleReturningRefund(item) {
|
|||
|
|
this.$Cache.set('productInfo', item)
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}`
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
serviceClick() {
|
|||
|
|
if (this.chatConfig.telephone_service_switch === 'true') {
|
|||
|
|
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
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
/**
|
|||
|
|
* 拨打电话
|
|||
|
|
*/
|
|||
|
|
makePhone: function(e) {
|
|||
|
|
uni.makePhoneCall({
|
|||
|
|
phoneNumber: e
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
/**
|
|||
|
|
* 获取退款订单详细信息
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
orderRefundInfo() {
|
|||
|
|
let that = this;
|
|||
|
|
uni.showLoading({
|
|||
|
|
title: "正在加载中"
|
|||
|
|
});
|
|||
|
|
orderRefundInfoApi(that.refundOrderNo).then(res => {
|
|||
|
|
uni.hideLoading();
|
|||
|
|
let data = res.data;
|
|||
|
|
that.$set(that, 'refundInfo', data);
|
|||
|
|
//returnGoodsType 退货类型:0-不退货 1-快递退回,2-到店退货
|
|||
|
|
if(that.refundInfo.returnGoodsType ===2)that.getMerAddress();
|
|||
|
|
}).catch(err => {
|
|||
|
|
that.$util.Tips({
|
|||
|
|
title: err
|
|||
|
|
}, {
|
|||
|
|
tab: 4,
|
|||
|
|
url: '/pages/user/index'
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
/**
|
|||
|
|
*
|
|||
|
|
* 剪切订单号
|
|||
|
|
*/
|
|||
|
|
// #ifndef H5
|
|||
|
|
handleCopy: function(orderNo) {
|
|||
|
|
let that = this;
|
|||
|
|
uni.setClipboardData({
|
|||
|
|
data: orderNo
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
// #endif
|
|||
|
|
/**
|
|||
|
|
* 打电话
|
|||
|
|
*/
|
|||
|
|
goTel: function() {
|
|||
|
|
uni.makePhoneCall({
|
|||
|
|
phoneNumber: this.refundInfo.deliveryId
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped lang="scss">
|
|||
|
|
.gradient-bg{
|
|||
|
|
top: 152rpx;
|
|||
|
|
}
|
|||
|
|
.addressDetail {
|
|||
|
|
line-height: 36rpx;
|
|||
|
|
}
|
|||
|
|
.btn-box {
|
|||
|
|
display: flex;
|
|||
|
|
padding-top: 20rpx;
|
|||
|
|
line-height: 60rpx;
|
|||
|
|
|
|||
|
|
.btn-line {
|
|||
|
|
@include main_color(theme);
|
|||
|
|
@include coupons_border_color(theme);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.btn-bg {
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.btn-999 {
|
|||
|
|
border: 1px solid #DDDDDD;
|
|||
|
|
color: #666666;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.btn {
|
|||
|
|
width: 176rpx;
|
|||
|
|
height: 60rpx;
|
|||
|
|
line-height: 56rpx;
|
|||
|
|
margin-left: 18rpx;
|
|||
|
|
text-align: center;
|
|||
|
|
border-radius: 30rpx;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.margin-100 {
|
|||
|
|
margin: -116rpx auto 0 auto;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.return_info_pad {
|
|||
|
|
padding: 30rpx 24rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.return_info {
|
|||
|
|
background-color: #fff;
|
|||
|
|
padding: 32rpx 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.refundPrice {
|
|||
|
|
font-size: 35rpx;
|
|||
|
|
font-weight: bold;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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: 392rpx;
|
|||
|
|
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-ic_customerservice {
|
|||
|
|
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 */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.align-center {
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details {
|
|||
|
|
.header {
|
|||
|
|
height: 266rpx;
|
|||
|
|
padding: 0 24rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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;
|
|||
|
|
padding-top: 30rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .header .data .state {
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
font-weight: bold;
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .header .data .time {
|
|||
|
|
margin-left: 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.picTxt {
|
|||
|
|
padding-left: 10rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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;
|
|||
|
|
padding: 30rpx 0;
|
|||
|
|
|
|||
|
|
.phone {
|
|||
|
|
margin-left: 20rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .address .name {
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
color: #333;
|
|||
|
|
margin-bottom: 15rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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: 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .wrapper .item {
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #282828;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .wrapper .item~.item {
|
|||
|
|
margin-top: 34rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .wrapper .item .conter {
|
|||
|
|
color: #282828;
|
|||
|
|
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: #666;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
background-color: #f5f5f5;
|
|||
|
|
padding: 8rpx 18rpx;
|
|||
|
|
margin-left: 10rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.footer {
|
|||
|
|
width: 100%;
|
|||
|
|
position: fixed;
|
|||
|
|
bottom: 0;
|
|||
|
|
left: 0;
|
|||
|
|
background-color: #fff;
|
|||
|
|
padding: 20rpx 24rpx;
|
|||
|
|
// padding-bottom: 20rpx;
|
|||
|
|
padding-bottom: calc(20rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
|||
|
|
padding-bottom: calc(20rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.order-details .writeOff {
|
|||
|
|
background-color: #fff;
|
|||
|
|
margin-top: 20rpx;
|
|||
|
|
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 {
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
color: #282828;
|
|||
|
|
margin-top: 20rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
padding: 0 24rpx;
|
|||
|
|
|
|||
|
|
.title {
|
|||
|
|
line-height: 86rpx;
|
|||
|
|
border-bottom: 1px solid #f0f0f0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.pictrue {
|
|||
|
|
width: 130rpx;
|
|||
|
|
height: 130rpx;
|
|||
|
|
border-radius: 14rpx;
|
|||
|
|
overflow: hidden;
|
|||
|
|
|
|||
|
|
image {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.text {
|
|||
|
|
width: 490rpx;
|
|||
|
|
|
|||
|
|
// position: relative;
|
|||
|
|
.name {
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #282828;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.attr {
|
|||
|
|
font-size: 16rpx;
|
|||
|
|
color: #868686;
|
|||
|
|
margin-top: 7rpx
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.wrapper-head {
|
|||
|
|
background-color: #fff;
|
|||
|
|
margin-top: 12rpx;
|
|||
|
|
padding: 30rpx 24rpx;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.wrapper-info {
|
|||
|
|
background-color: #fff;
|
|||
|
|
margin: -100rpx auto 0 auto;
|
|||
|
|
padding: 15px 12px;
|
|||
|
|
|
|||
|
|
.name {
|
|||
|
|
width: 414rpx;
|
|||
|
|
color: #333;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.num {
|
|||
|
|
color: #999;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.attr {
|
|||
|
|
color: #999;
|
|||
|
|
font-size: 20rpx;
|
|||
|
|
margin: 7rpx 0 16rpx 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.price {
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #E93323;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.borRadius-top {
|
|||
|
|
border-radius: 14rpx 14rpx 0px 0px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.borRadius-bottom {
|
|||
|
|
border-radius: 0px 0px 14rpx 14rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.conter-refund {
|
|||
|
|
width: 76%;
|
|||
|
|
text-align: right;
|
|||
|
|
color: #868686;
|
|||
|
|
|
|||
|
|
.wapImg {
|
|||
|
|
width: 106rpx;
|
|||
|
|
height: 106rpx;
|
|||
|
|
border-radius: 16rpx;
|
|||
|
|
margin-right: 10rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|