182 lines
4.7 KiB
Vue
182 lines
4.7 KiB
Vue
<template>
|
|
<view>
|
|
<view class="seller-view" v-for="(item, index) in complaionData" :key="index">
|
|
<view class="seller-info u-flex u-row-between">
|
|
<view class="seller-name">
|
|
<view class="name">{{ item.storeName }}</view>
|
|
</view>
|
|
<view class="order-sn">{{ statusData[item.complainStatus] }}</view>
|
|
</view>
|
|
<u-line color="#DCDFE6"></u-line>
|
|
<view class="goods-item-view">
|
|
<view class="goods-img" @click="handleToGoods(item)">
|
|
<u-image border-radius="6" width="131rpx" height="131rpx" :src="item.goodsImage"></u-image>
|
|
</view>
|
|
<view class="goods-info" @click="handleToGoods(item)">
|
|
<view class="goods-title u-line-2">{{ item.goodsName }}</view>
|
|
<view class="goods-price">
|
|
¥{{ item.goodsPrice | unitPrice }}
|
|
<!-- <span>+{{ '1' }}积分</span> -->
|
|
</view>
|
|
</view>
|
|
<view class="goods-num">
|
|
<view>x{{ item.num }}</view>
|
|
</view>
|
|
</view>
|
|
<view class="complain-item-view">
|
|
<view class="complain-time"> {{ item.createTime }} </view>
|
|
<view class="complain-speak"> {{ item.complainTopic }} </view>
|
|
</view>
|
|
<view class="complain-btn">
|
|
<u-tag mode="plain" @click="handleClear(item)" class="complain-tag" text="撤销投诉" type="info" v-if="
|
|
item.complainStatus != 'EXPIRED' && item.complainStatus != 'CANCEL'
|
|
" />
|
|
<u-tag mode="plain" @click="handleInfo(item)" class="complain-tag" text="投诉详情" type="info" />
|
|
</view>
|
|
</view>
|
|
|
|
<u-empty v-if="empty" :style="{'marginTop':complaionDetail.total == 0 ? '200rpx':'0rpx'}" class="empty" style="" text="暂无投诉列表" mode="list"></u-empty>
|
|
|
|
<u-modal show-cancel-button @confirm="handleClearConfirm" v-model="show" :content="content"></u-modal>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { getComplain, clearComplain } from "@/api/after-sale";
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
statusData: {
|
|
NEW: "新订单",
|
|
NO_APPLY: "未申请",
|
|
APPLYING: "申请中",
|
|
COMPLETE: "已完成",
|
|
EXPIRED: "已失效",
|
|
CANCEL: "已取消",
|
|
},
|
|
show: false,
|
|
content: "是否撤销投诉?",
|
|
params: {
|
|
pageNumber: 1,
|
|
pageSize: 20,
|
|
},
|
|
complaionDetail: "", //返回的整个response
|
|
complaionData: [], //投诉列表
|
|
empty: false,
|
|
checkComplainData: "", //存储投诉信息
|
|
};
|
|
},
|
|
mounted() {
|
|
this.init();
|
|
},
|
|
/**
|
|
* 触底加载
|
|
*/
|
|
onReachBottom() {
|
|
if (
|
|
this.complaionDetail &&
|
|
this.complaionDetail.total < this.params.pageNumber * this.params.pageSize
|
|
) {
|
|
this.params.pageNumber++;
|
|
this.init();
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
// 点击跳转到商品
|
|
handleToGoods(val) {
|
|
uni.navigateTo({
|
|
url: "/pages/product/goods?id=" + val.skuId + "&goodsId=" + val.goodsId,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 点击撤销投诉
|
|
*/
|
|
handleClear(val) {
|
|
this.show = true;
|
|
this.checkComplainData = val;
|
|
},
|
|
/**
|
|
* 执行撤销
|
|
*/
|
|
handleClearConfirm() {
|
|
clearComplain(this.checkComplainData.id).then((res) => {
|
|
if (res.data.success) {
|
|
uni.showToast({
|
|
title: "撤销成功",
|
|
duration: 2000,
|
|
icon: "none",
|
|
});
|
|
this.complaionData = [];
|
|
this.params.pageNumber = 1;
|
|
this.init();
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 查看详情
|
|
*/
|
|
handleInfo(val) {
|
|
uni.navigateTo({
|
|
url: "./complainInfo?id=" + val.id,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 初始化投诉列表
|
|
*/
|
|
init() {
|
|
uni.showLoading({
|
|
title: "加载中",
|
|
});
|
|
getComplain(this.params).then((res) => {
|
|
this.complaionDetail = res.data.result;
|
|
if (res.data.result.records.length >= 1) {
|
|
this.complaionData.push(...res.data.result.records);
|
|
} else {
|
|
this.empty = true;
|
|
}
|
|
uni.hideLoading();
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import "../goods.scss";
|
|
|
|
.complain-item-view {
|
|
border-bottom: 2rpx solid #f5f7fa;
|
|
border-top: 2rpx solid #f5f7fa;
|
|
padding: 20rpx 30rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.complain-time {
|
|
font-size: 24rpx;
|
|
color: #999;
|
|
}
|
|
/deep/ .seller-name {
|
|
width: auto !important;
|
|
}
|
|
.complain-btn {
|
|
padding: 20rpx 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
margin-right: 30rpx;
|
|
}
|
|
.complain-tag {
|
|
margin-left: 10rpx;
|
|
}
|
|
.empty {
|
|
margin-top: 40rpx;
|
|
}
|
|
</style>
|