齐采药WEB端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

322 lines
7.5 KiB

<template>
<!-- 售后退款 -->
<div class="user-order-list">
<div class="user-com-tab">
<span
class="item"
:class="{ on: tabCur === item.key }"
v-for="(item, index) in tabList"
:key="index"
@click="bindTab(item)"
>{{ item.name }}</span>
</div>
<div class="order-list">
<ul>
<li v-for="(item, index) in orderList" :key="index">
<div class="bd" @click="goDetail(item)">
<div class="order-txt">订单日期: {{ item.add_time }}</div>
<div class="content">
<div class="goods-item" v-for="(goods, index) in item.cartInfo" :key="index">
<div class="img-box" v-if="goods.productInfo.attrInfo">
<img :src="goods.productInfo.attrInfo.image" alt />
</div>
<div class="img-box" v-else>
<img :src="goods.productInfo.image" alt />
</div>
<div class="txtCon acea-row row-between-wrapper">
<div class="info-txt">
<div class="title line2">{{ goods.productInfo.store_name }}</div>
<div
class="info"
v-if="goods.productInfo.attrInfo"
>{{ goods.productInfo.attrInfo.suk }}</div>
</div>
<div class="cartInfo">
<div>¥{{goods.productInfo.attrInfo?goods.productInfo.attrInfo.price:goods.productInfo.price}}</div>
<div class="num">x{{ goods.cart_num }}</div>
</div>
</div>
</div>
</div>
</div>
<div class="foot">
<p>
共{{ item.refund_num || 0 }}件商品,总金额
<span>¥{{ item.refund_price }}</span>
</p>
</div>
<div
class="refund-icon iconfont icon-shenqingzhong powder"
v-if="item.refund_type==1 ||item.refund_type==2"
></div>
<div class="refund-icon iconfont icon-yijujue" v-if="item.refund_type==3"></div>
<div class="refund-icon iconfont icon-daituihuo1 powder" v-if="item.refund_type==4"></div>
<div class="refund-icon iconfont icon-tuikuanzhong powder" v-if="item.refund_type==5"></div>
<div class="refund-icon iconfont icon-yituikuan" v-if="item.refund_type==6"></div>
</li>
</ul>
<div class="pages-box" v-if="total > 0">
<el-pagination
background
layout="prev, pager, next"
@current-change="bindPageCur"
:total="total"
:current-page="page"
></el-pagination>
</div>
<div class="empty-box" v-if="orderList.length == 0">
<img src="~assets/images/noorder.png" alt />
<p>暂无订单信息哟~</p>
</div>
</div>
</div>
</template>
<script>
export default {
name: "refundList",
auth: "guest",
scrollToTop: true,
data() {
return {
tabList: [
{
key: 0,
name: "全部"
},
{
key: 1,
name: "申请中"
},
{
key: 2,
name: "待退货"
},
{
key: 3,
name: "退款中"
},
{
key: 4,
name: "已退款"
}
],
orderStatus: -3, //订单状态
tabCur: 0,
orderList: [],
total: 0,
page: 1,
limit: 10
};
},
fetch({ store }) {
store.commit("isHeader", true);
store.commit("isFooter", true);
},
head() {
return {
title: "售后/退款-" + this.$store.state.titleCon
};
},
created() {},
mounted() {
Promise.all([this.getList()]);
},
methods: {
// 选项卡
bindTab(item) {
this.tabCur = item.key;
this.page = 1;
this.getList();
},
// 获取订单列表
getList() {
this.$axios
.get("/pc/order/refund/list", {
params: {
type: this.orderStatus,
refund_type: this.tabCur,
page: this.page,
limit: this.limit
}
})
.then(res => {
this.orderList = res.data.list;
this.total = res.data.count;
})
.catch(err => {
this.$message.error(err);
});
},
// 查看详情
goDetail(item) {
this.$router.push({
path: `/order_detail`,
query: {
orderId: item.order_id,
isReturen: 1
}
});
},
// 分页点击
bindPageCur(data) {
this.page = data;
this.getList();
}
}
};
</script>
<style lang="scss" scoped>
.user-com-tab {
.item {
padding: 0 10px;
}
}
.user-order-list {
li {
position: relative;
padding: 30px 0 26px;
border-bottom: 1px solid #ececec;
.refund-icon {
position: absolute;
right: 40px;
top: 20px;
font-size: 70px;
color: rgba(40, 40, 40, 0.2);
&.powder {
color: rgba(233, 51, 35, 0.3);
}
}
.bd {
padding-right: 40px;
border-bottom: 1px dashed #e1e1e1;
cursor: pointer;
.order-txt {
color: #282828;
font-size: 14px;
.status {
float: right;
color: #e93323;
}
}
.content {
margin-top: 20px;
.goods-item {
display: flex;
position: relative;
margin-bottom: 20px;
.img-box {
width: 120px;
height: 120px;
img {
display: block;
width: 100%;
height: 100%;
}
}
.txtCon {
width: 795px;
}
.cartInfo {
font-size: 14px;
color: #999;
text-align: right;
.num {
font-size: 12px;
margin-top: 2px;
}
}
.info-txt {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
width: 500px;
margin-left: 24px;
font-size: 14px;
.info {
font-size: 12px;
color: #aaa;
margin-top: 4px;
}
.return {
color: #e93323;
font-size: 12px;
margin-top: 3px;
}
.price {
margin-top: 15px;
color: #e93323;
}
.num {
position: absolute;
right: 0;
top: 60%;
transform: translateY(-50%);
color: #999999;
}
}
}
}
}
.foot {
padding-top: 26px;
padding-right: 32px;
p {
text-align: right;
color: #666;
font-size: 14px;
span {
color: #e93323;
}
}
.btn-wrapper {
display: flex;
justify-content: flex-end;
margin-top: 20px;
div {
width: 110px;
height: 36px;
text-align: center;
line-height: 34px;
margin-left: 20px;
border: 1px solid #999999;
border-radius: 4px;
font-size: 14px;
color: #666666;
cursor: pointer;
&.pay {
border-color: #e93323;
background: #e93323;
color: #fff;
}
}
}
}
}
}
.pages-box {
margin-top: 30px;
text-align: right;
}
</style>