2021-05-13 11:03:32 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view class="wrapper">
|
|
|
|
|
<view class="tips">我的投诉信息</view>
|
|
|
|
|
<u-cell-group>
|
2021-05-14 17:31:40 +08:00
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.goodsName" title="投诉商品"></u-cell-item>
|
|
|
|
|
<u-cell-item :arrow="false" :value="statusData[complainDetail.complainStatus]" title="投诉状态"></u-cell-item>
|
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.createTime" title="投诉时间"></u-cell-item>
|
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.complainTopic" title="投诉主题"></u-cell-item>
|
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.content" title="投诉内容"></u-cell-item>
|
|
|
|
|
<view class="row" v-if="complainDetail.orderComplaintImages">
|
|
|
|
|
<u-image width="100rpx" height="100rpx" border-radius="10" style="margin: 0 10rpx" v-for="(item, index) in complainDetail.orderComplaintImages" :key="index" :src="item"
|
|
|
|
|
@click="preview(complainDetail.orderComplaintImages, index)" />
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</view>
|
|
|
|
|
</u-cell-group>
|
|
|
|
|
<view class="tips">商家申诉信息</view>
|
|
|
|
|
<u-cell-group>
|
2021-05-14 17:31:40 +08:00
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.appealTime || '暂无'" title="申诉时间"></u-cell-item>
|
|
|
|
|
<u-cell-item :arrow="false" :value="complainDetail.appealContent || '暂无'" title="申诉内容"></u-cell-item>
|
|
|
|
|
<view class="row" v-if="complainDetail.appealImagesList">
|
|
|
|
|
<u-image width="100rpx" height="100rpx" border-radius="10" style="margin: 0 10rpx" v-for="(item, index) in complainDetail.appealImagesList"
|
|
|
|
|
@click="preview(complainDetail.appealImagesList, index)" :key="index" :src="item" />
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</view>
|
|
|
|
|
</u-cell-group>
|
|
|
|
|
<view class="tips">对话详情</view>
|
2021-05-14 17:31:40 +08:00
|
|
|
|
<view class="speak-way" v-if="complainDetail.orderComplaintCommunications">
|
|
|
|
|
<view class="speak-msg seller" :key="i" v-for="(complaint, i) in complainDetail.orderComplaintCommunications">
|
2021-05-13 11:03:32 +08:00
|
|
|
|
{{
|
|
|
|
|
complaint.owner == "PLATFORM"
|
|
|
|
|
? "平台"
|
|
|
|
|
: complaint.owner == "BUYER"
|
|
|
|
|
? "买家"
|
|
|
|
|
: "卖家"
|
|
|
|
|
}}:
|
|
|
|
|
<span>{{ complaint.content }}</span>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="speak-way" v-else>暂无对话</view>
|
2023-09-19 14:26:27 +08:00
|
|
|
|
<view class="tips">回复对话</view>
|
|
|
|
|
<view class="cell-item complain-content">
|
|
|
|
|
<view class="cell-view content">
|
|
|
|
|
<u-input type="textarea" height="70rpx" auto-height v-model="complainValue" />
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="submit-btn" @click="handleSubmit">回复</view>
|
2021-05-13 11:03:32 +08:00
|
|
|
|
<view class="tips">平台仲裁</view>
|
|
|
|
|
<u-cell-group>
|
2021-05-14 17:31:40 +08:00
|
|
|
|
<u-cell-item :arrow="false" title="仲裁意见" :value="complainDetail.arbitrationResult || '暂无'"></u-cell-item>
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</u-cell-group>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2023-09-19 14:26:27 +08:00
|
|
|
|
import { getComplainDetail, communication } from "@/api/after-sale";
|
2021-05-13 11:03:32 +08:00
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2023-09-19 14:26:27 +08:00
|
|
|
|
complainId: "",
|
|
|
|
|
complainValue: "", //回复内容
|
2021-05-14 17:31:40 +08:00
|
|
|
|
complainDetail: "", //投诉详情
|
2021-05-13 11:03:32 +08:00
|
|
|
|
statusData: {
|
2023-09-19 14:26:27 +08:00
|
|
|
|
NEW: "新投诉",
|
2021-05-13 11:03:32 +08:00
|
|
|
|
NO_APPLY: "未申请",
|
|
|
|
|
APPLYING: "申请中",
|
2023-03-02 11:39:00 +08:00
|
|
|
|
COMPLETE: "已完成",
|
|
|
|
|
EXPIRED: "已失效",
|
2021-05-13 11:03:32 +08:00
|
|
|
|
CANCEL: "已取消",
|
2023-03-02 11:39:00 +08:00
|
|
|
|
WAIT_ARBITRATION:"等待仲裁"
|
2021-05-13 11:03:32 +08:00
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
},
|
2021-05-14 17:31:40 +08:00
|
|
|
|
|
2021-05-13 11:03:32 +08:00
|
|
|
|
onLoad(option) {
|
2023-09-19 14:26:27 +08:00
|
|
|
|
this.complainId = option.id;
|
2021-05-13 11:03:32 +08:00
|
|
|
|
this.init(option.id);
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2021-05-14 17:31:40 +08:00
|
|
|
|
/**
|
|
|
|
|
* 点击图片放大或保存
|
|
|
|
|
*/
|
2021-05-13 11:03:32 +08:00
|
|
|
|
preview(urls, index) {
|
|
|
|
|
uni.previewImage({
|
|
|
|
|
current: index,
|
|
|
|
|
urls: urls,
|
|
|
|
|
longPressActions: {
|
|
|
|
|
itemList: ["保存图片"],
|
|
|
|
|
success: function (data) {},
|
|
|
|
|
fail: function (err) {},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
2023-09-19 14:26:27 +08:00
|
|
|
|
handleSubmit() {
|
|
|
|
|
if (!this.complainValue) {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: "请输入回复内容",
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none",
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
let params = {
|
|
|
|
|
content: this.complainValue,
|
|
|
|
|
complainId: this.complainId,
|
|
|
|
|
};
|
|
|
|
|
communication(params).then((res) => {
|
|
|
|
|
if (res.data.success) {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: "回复成功",
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none",
|
|
|
|
|
});
|
|
|
|
|
this.complainValue = '';
|
|
|
|
|
this.init(this.complainId);
|
|
|
|
|
} else {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: res.data.message,
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none",
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
2021-05-14 17:31:40 +08:00
|
|
|
|
/**
|
|
|
|
|
* 初始化投诉详情
|
|
|
|
|
*/
|
2021-05-13 11:03:32 +08:00
|
|
|
|
init(id) {
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
title: "加载中",
|
|
|
|
|
});
|
|
|
|
|
getComplainDetail(id).then((res) => {
|
|
|
|
|
if (res.data.success) {
|
2021-05-14 17:31:40 +08:00
|
|
|
|
this.complainDetail = res.data.result;
|
|
|
|
|
} else {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: res.data.message,
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none",
|
|
|
|
|
});
|
2021-05-13 11:03:32 +08:00
|
|
|
|
}
|
2023-04-11 18:41:34 +08:00
|
|
|
|
if (this.$store.state.isShowToast){ uni.hideLoading() };
|
2021-05-13 11:03:32 +08:00
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.row {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
2021-07-30 16:29:05 +08:00
|
|
|
|
padding: 26rpx 32rpx;
|
2021-05-13 11:03:32 +08:00
|
|
|
|
}
|
2021-07-30 16:29:05 +08:00
|
|
|
|
|
2021-05-13 11:03:32 +08:00
|
|
|
|
.speak-msg {
|
|
|
|
|
padding: 26rpx 32rpx;
|
|
|
|
|
> span {
|
|
|
|
|
color: #999 !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.admin {
|
|
|
|
|
color: $main-color;
|
|
|
|
|
}
|
|
|
|
|
.speak-way {
|
|
|
|
|
background: #fff;
|
|
|
|
|
}
|
|
|
|
|
.wrapper {
|
|
|
|
|
padding: 16rpx;
|
|
|
|
|
}
|
|
|
|
|
.tips {
|
2021-07-30 16:29:05 +08:00
|
|
|
|
margin: 40rpx 32rpx;
|
2021-05-13 11:03:32 +08:00
|
|
|
|
}
|
2023-09-19 14:26:27 +08:00
|
|
|
|
.cell {
|
|
|
|
|
width: 100%;
|
|
|
|
|
background: #fff;
|
|
|
|
|
padding: 26rpx;
|
|
|
|
|
}
|
|
|
|
|
.complain-content {
|
|
|
|
|
margin: 40rpx 32rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.content {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
.title {
|
|
|
|
|
width: 140rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.submit-btn {
|
|
|
|
|
width: 70%;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
line-height: 80rpx;
|
|
|
|
|
color: #fff;
|
|
|
|
|
text-align: center;
|
|
|
|
|
background: $light-color;
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
border-radius: 200px;
|
|
|
|
|
}
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</style>
|