You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
4.8 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="floor">
<div v-if="saleDetails.after_sale && saleDetails.after_sale != '' && saleDetails.after_sale">
<div class="list">
<div class="name">申请类型:</div>
<div class="text">{{ ['', '退货退款', '换货'][saleDetails.after_sale.apply_type] }}</div>
</div>
<div class="list">
<div class="name">申请原因:</div>
<div class="text"
v-if="afterSaleEnumsList && saleDetails && saleDetails.after_sale && saleDetails.after_sale.apply_type && saleDetails.after_sale.apply_reason && afterSaleEnumsList[saleDetails.after_sale.apply_type] && afterSaleEnumsList[saleDetails.after_sale.apply_type][saleDetails.after_sale.apply_reason]">
{{ afterSaleEnumsList[saleDetails.after_sale.apply_type][saleDetails.after_sale.apply_reason].label }}
</div>
<div v-else>
--
</div>
</div>
<div class="list" v-if="saleDetails.after_sale.apply_files != ''">
<div class="name">图片描述:</div>
<image style="width: 100px; height: 100px;margin-right: 15px;"
v-for="(img, i) in saleDetails.after_sale.apply_files" :key="i" :src="img" :zoom-rate="1.2"
:preview-src-list="saleDetails.after_sale.apply_files" fit="cover">
</image>
</div>
<div class="list" v-if="saleDetails.after_sale.apply_type == 1">
<div class="name">退款金额:</div>
<div class="text">{{ saleDetails.after_sale.refund_amount }}</div>
</div>
<div v-if="saleDetails.after_sale.apply_type == 2">
<div class="list">
<div class="name">换货类型:</div>
<div class="text">
<div v-for="item in saleDetails.after_sale.goods_json.goods_sku_json" :key="item.attr_group_id">
{{ item.group_name }}{{ item.name }}</div>
</div>
</div>
<div class="list">
<div class="name">换货数量:</div>
<div class="text">
{{ saleDetails.after_sale.goods_json.num }}
</div>
</div>
<div class="list" v-if="saleDetails.after_sale.address_json">
<div class="name">买家地址:</div>
<div class="text">
<div>收货人:{{ saleDetails.after_sale.address_json.name }}</div>
<div>收货电话:{{ saleDetails.after_sale.address_json.mobile }}</div>
<div>收货地址:{{ saleDetails.after_sale.address_json.address }}</div>
</div>
</div>
<div class="list" v-if="saleDetails.after_sale.apply_type == 2 && saleDetails.after_sale.shop_express_json">
<div class="name">快递公司:</div>
<div class="text">
{{ express_company }}
</div>
</div>
<div class="list" v-if="saleDetails.after_sale.apply_type == 2 && saleDetails.after_sale.shop_express_json">
<div class="name">快递单号:</div>
<div class="text">
{{ saleDetails.after_sale.shop_express_json.express_number }}
</div>
</div>
</div>
<div class="list">
<div class="name">售后状态:</div>
<div class="text">{{ saleDetails.after_sale.status_text }}</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import order from '@/api/store/order.js';
const saleDetails = ref({})
// 匹配快递公司
const express_company = ref()
const express = async () => {
try {
const res = await order.after_sale.express()
if (res.code !== 0) throw new Error(res.message)
res.data.forEach((item) => {
if (item.value == saleDetails.value.after_sale.shop_express_json.express_company) {
express_company.value = item.label;
}
})
} catch (error) {
console.dir(error)
}
}
onLoad(({ id }) => {
const getSaleDetail = async ({ id }) => {
try {
const res = await order.after_sale.show({ id })
console.log(res)
if (res.code !== 0) throw new Error(res.message)
saleDetails.value = res.data;
express();
} catch (error) {
console.dir(error)
}
}
getSaleDetail({ id });
})
const afterSaleEnumsList = ref([])
const afterSaleEnums = async () => {
try {
const res = await order.after_sale.enums()
if (res.code !== 0) throw new Error(res.message)
afterSaleEnumsList.value = res.data.reasonMap
} catch (error) {
console.dir(error)
}
}
afterSaleEnums();
</script>
<style scoped lang="scss">
.floor {
background: #fff;
padding: 30px 50px;
height: 100%;
.list {
display: flex;
justify-content: flex-start;
padding-bottom: 15px;
font-size: 14px;
line-height: 36px;
.name {
padding-right: 20px;
color: #888;
}
text {
margin-right: 20px;
}
img {
width: 300px;
}
}
}
</style>