236 lines
5.9 KiB
Vue
236 lines
5.9 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<view class="after-sales-detail">
|
|||
|
<view class="after-sales-header">
|
|||
|
<view class="after-sales-status white lg">
|
|||
|
{{afterSale.status_text}}
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="return-address-contain flex bg-white m-t-20">
|
|||
|
<view class="address-title">退货地址:</view>
|
|||
|
<view class="sm address flex-1">{{afterSale.shop.address}}, {{afterSale.shop.contact}},
|
|||
|
{{afterSale.shop.mobile}}</view>
|
|||
|
<view class="xs copy-btn flex-none row-center" @tap="onCopy">复制</view>
|
|||
|
</view>
|
|||
|
<view class="goods-container bg-white m-t-20">
|
|||
|
<view class="m-l-20">
|
|||
|
<shop-title :shop="{name: afterSale.shop_name, id: afterSale.sid}"></shop-title>
|
|||
|
</view>
|
|||
|
<view class="goods-item flex">
|
|||
|
<view class="goods-img">
|
|||
|
<u-image width="180rpx" height="180rpx" border-radius="10rpx"
|
|||
|
:src="afterSale.order_goods.image"></u-image>
|
|||
|
</view>
|
|||
|
<view class="goods-info flex-1 m-l-24">
|
|||
|
<view class="line-2">{{afterSale.order_goods.goods_name}}</view>
|
|||
|
<view class="m-t-10 xs line-1 muted">{{afterSale.order_goods.spec_value}}</view>
|
|||
|
<view class="flex row-between m-t-20">
|
|||
|
<price-format :price="afterSale.order_goods.goods_price" :first-size="30" :second-size="30"
|
|||
|
:subscript-size="30" />
|
|||
|
<view>x{{afterSale.order_goods.goods_num}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="return-goods-container bg-white m-t-20">
|
|||
|
<view class="return-goods-item flex sm">
|
|||
|
<view class="return-title">退款方式:</view>
|
|||
|
<view class="return-explain">{{afterSale.refund_type_text}}</view>
|
|||
|
</view>
|
|||
|
<view class="return-goods-item flex sm m-t-20">
|
|||
|
<view class="return-title">退款原因:</view>
|
|||
|
<view class="return-explain">{{afterSale.refund_reason}}</view>
|
|||
|
</view>
|
|||
|
<view class="return-goods-item flex sm m-t-20">
|
|||
|
<view class="return-title">退款金额:</view>
|
|||
|
<view class="return-explain primary">¥{{afterSale.refund_price}}</view>
|
|||
|
</view>
|
|||
|
<view class="return-goods-item flex sm m-t-20">
|
|||
|
<view class="return-title">退款编号:</view>
|
|||
|
<view class="return-explain">{{afterSale.sn}}</view>
|
|||
|
</view>
|
|||
|
<view class="return-goods-item flex sm m-t-20">
|
|||
|
<view class="return-title">申请时间:</view>
|
|||
|
<view class="return-explain">{{afterSale.create_time}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="btn-group fixed bg-white flex row-right" v-if="afterSale.status != 6">
|
|||
|
<view class="m-r-20 btn br60" @tap="confirmDialog=true">撤销申请</view>
|
|||
|
<router-link :to="{path: '/bundle/pages/apply_refund/apply_refund', query: {after_sale_id: afterSale.id,
|
|||
|
order_id: afterSale.order_goods.order_id,
|
|||
|
item_id: afterSale.order_goods.item_id}}">
|
|||
|
<view class="m-r-20 btn br60 primary" v-if="(afterSale.status == 4 || afterSale.status == 1)">重新申请
|
|||
|
</view>
|
|||
|
</router-link>
|
|||
|
<router-link
|
|||
|
:to="{path: '/bundle/pages/input_express_info/input_express_info', query: {id: afterSale.id}}">
|
|||
|
<view class="m-r-20 btn br60" v-if="afterSale.status == 2">
|
|||
|
填写快递单号
|
|||
|
</view>
|
|||
|
</router-link>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<u-modal v-model="confirmDialog" confirm-text="确定" :showCancelButton="true" :confirm-color="colorConfig.primary"
|
|||
|
@confirm="cancelApplyFun">
|
|||
|
<view class="flex-col col-center tips-dialog" style="padding: 30rpx 0;">
|
|||
|
<image class="icon-lg" src="/static/images/icon_warning.png"></image>
|
|||
|
<view class="m-t-30">是否要撤销申请?</view>
|
|||
|
</view>
|
|||
|
</u-modal>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import {
|
|||
|
afterSaleDetail,
|
|||
|
cancelApply
|
|||
|
} from "@/api/user";
|
|||
|
import {
|
|||
|
trottle,
|
|||
|
copy
|
|||
|
} from "@/utils/tools.js";
|
|||
|
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
afterSale: {
|
|||
|
shop: {},
|
|||
|
order_goods: {}
|
|||
|
},
|
|||
|
confirmDialog: false
|
|||
|
};
|
|||
|
},
|
|||
|
onLoad(options) {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
onShow() {
|
|||
|
this.id = this.$Route.query.id
|
|||
|
this.afterSaleDetailFun();
|
|||
|
},
|
|||
|
|
|||
|
methods: {
|
|||
|
onCopy() {
|
|||
|
const {
|
|||
|
afterSale
|
|||
|
} = this;
|
|||
|
const {
|
|||
|
address,
|
|||
|
contact,
|
|||
|
mobile
|
|||
|
} = afterSale.shop;
|
|||
|
copy(`${address},${contact},${mobile}`)
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
cancelApplyFun() {
|
|||
|
cancelApply({
|
|||
|
id: this.id
|
|||
|
}).then(res => {
|
|||
|
if (res.code == 1) {
|
|||
|
|
|||
|
uni.$emit("refreshsale")
|
|||
|
this.$toast({
|
|||
|
title: res.msg
|
|||
|
}, {
|
|||
|
tab: 3,
|
|||
|
url: 1
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
|
|||
|
afterSaleDetailFun() {
|
|||
|
afterSaleDetail({
|
|||
|
id: this.id
|
|||
|
}).then(res => {
|
|||
|
if (res.code == 1) {
|
|||
|
this.afterSale = res.data
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
};
|
|||
|
</script>
|
|||
|
<style lang="scss">
|
|||
|
.after-sales-detail {
|
|||
|
padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
|
|||
|
|
|||
|
.after-sales-header {
|
|||
|
.after-sales-status {
|
|||
|
padding: 48rpx 30rpx;
|
|||
|
background-color: #555555;
|
|||
|
}
|
|||
|
|
|||
|
.after-sales-explain {
|
|||
|
padding: 20rpx 30rpx 24rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.return-goods-container {
|
|||
|
padding: 20rpx 24rpx 55rpx;
|
|||
|
|
|||
|
.return-goods-item {
|
|||
|
line-height: 40rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.btn-group {
|
|||
|
padding: 0rpx 24rpx;
|
|||
|
position: fixed;
|
|||
|
left: 0;
|
|||
|
right: 0;
|
|||
|
bottom: 0;
|
|||
|
height: 100rpx;
|
|||
|
padding-bottom: env(safe-area-inset-bottom);
|
|||
|
box-sizing: content-box;
|
|||
|
.btn {
|
|||
|
padding: 10rpx 34rpx;
|
|||
|
border: 1px solid #999999;
|
|||
|
|
|||
|
&.primary {
|
|||
|
border-color: $-color-primary;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.goods-container {
|
|||
|
.goods-item {
|
|||
|
padding: 25rpx 24rpx;
|
|||
|
.goods-info {
|
|||
|
min-width: 500rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.return-address-contain {
|
|||
|
padding: 20rpx 24rpx 28rpx 30rpx;
|
|||
|
|
|||
|
.address {
|
|||
|
flex: 1;
|
|||
|
line-height: 38rpx;
|
|||
|
}
|
|||
|
|
|||
|
.address-title {
|
|||
|
width: 150rpx;
|
|||
|
align-self: flex-start;
|
|||
|
line-height: 40rpx;
|
|||
|
}
|
|||
|
|
|||
|
.copy-btn {
|
|||
|
background-color: #F4F4F4;
|
|||
|
color: #555555;
|
|||
|
padding: 3rpx 16rpx;
|
|||
|
margin-left: 12rpx;
|
|||
|
border-radius: 4rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.tips-dialog {
|
|||
|
height: 230rpx;
|
|||
|
width: 100%;
|
|||
|
}
|
|||
|
</style>
|