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.
 
 
 
 
 
 

215 lines
6.9 KiB

<template>
<el-dialog
class="afterSealsAdd"
:close-on-click-modal="false"
:visible.sync="visible"
width="800px">
<div class="checkForm">
<span>订单详情</span>
<el-form ref="form" :model="checkForm" size="small" label-width="100px">
<el-form-item label="订单号:">
<el-input v-model="checkForm.orderCode" disabled />
</el-form-item>
<el-form-item label="售后类型:">
<el-input v-if="checkForm.serviceType === 0" :value="'仅退款'" disabled />
<el-input v-if="checkForm.serviceType === 1" :value="'退货退款'" disabled />
</el-form-item>
<el-form-item label="售后原因:">
<el-input v-model="checkForm.reasons" disabled />
</el-form-item>
<el-form-item label="售后说明:">
<el-input v-model="checkForm.explains" disabled />
</el-form-item>
<el-form-item label="原因图片:">
<div v-if="!checkForm.explainImg">
<b>用户未上传图片</b>
</div>
<div v-else>
<el-image
v-for="(item,index) in checkForm.explainImg.split(',')"
:key="index"
style="width: 100px; height: 100px"
:src="item"
:preview-src-list="[item]">
</el-image>
</div>
</el-form-item>
<el-form-item label="提交时间:">
<el-input v-model="checkForm.createTime" disabled />
</el-form-item>
<div v-for="item in checkForm.cartInfo"
:key="item.id">
<el-form-item label="售后商品:">
<el-input v-model="item.productInfo.storeName" disabled />
</el-form-item>
<el-form-item label="商品图片:">
<el-image
:src="item.productInfo.image"
style="width: 100px; height: 100px">
<div slot="placeholder" class="image-slot">
加载中<b class="dot">...</b>
</div>
</el-image>
</el-form-item>
<el-form-item label="规格:">
<el-input v-model="item.productInfo.attrInfo.sku" disabled />
</el-form-item>
<el-form-item label="商品单价">
<el-input v-model="item.truePrice" disabled />
</el-form-item>
<el-form-item label="商品数量">
<el-input v-model="item.cartNum" disabled />
</el-form-item>
<el-form-item label="邮费:">
<el-input v-model="item.productInfo.postage" disabled />
</el-form-item>
</div>
</el-form>
</div>
<div v-if="serviceType === 0 && isShow">
<span>该订单为仅退款订单,审核通过之后将直接退款,是否审核通过?</span>
</div>
<div v-if="serviceType === 1 && isShow">
<span>该订单为退货退款,请输入退货地址:</span>
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="收货人" prop="consignee">
<el-input v-model="form.consignee" />
</el-form-item>
<el-form-item label="手机号" prop="phoneNumber">
<el-input v-model="form.phoneNumber" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" />
</el-form-item>
</el-form>
</div>
<div v-if="serviceType === 1&& (this.checkForm.state===2||this.checkForm.state===3)">
<span>退货物流查看</span>
<el-timeline :reverse="reverse">
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
:timestamp="activity.acceptTime">
{{activity.AcceptStation}}
</el-timeline-item>
</el-timeline>
<span v-if="this.activities==null">{{this.reason}}</span>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="refuse" type="danger" v-if="isShow" :loading="loading" @click="submit(1)">拒绝</el-button>
<el-button class="check" type="primary" v-if="isShow" :loading="loading" @click="submit(0)">确认</el-button>
</div>
</el-dialog>
</template>
<script>
import {getRefundInfo, salesCheck} from '@/api/bxg/yxStoreAfterSales.js'
export default {
props: {
},
data () {
return {
visible: false,
isShow: false,
loading: false,
serviceType: '',
checkForm: {},
form: {
salesId: '', // 售后id
orderCode: '', // 订单编号
approvalStatus: '', // 审核状态0成功1失败
consignee: '', // 收货人
phoneNumber: '', // 手机号
address: '' // 地址
},
activities:[],
reason:'',
rules: {
consignee: [{ required: true, message: '请输入收货人', trigger: 'blur' }],
phoneNumber: [{ required: true, message: '请输入收货人手机号', trigger: 'blur' }],
address: [{ required: true, message: '请输入收货地址', trigger: 'blur' }]
},
}
},
mounted() {
//查看退货的物流信息
this.getRefundInfo()
},
methods: {
getRefundInfo(){
let data={
//订单编号
orderCode:this.checkForm.orderCode,
//快递公司编码
shipperCode:this.checkForm.shipperCode,
//物流单号
logisticCode:this.checkForm.deliverySn
}
getRefundInfo(data).then(res=>{
console.log('res',res)
this.activities=res.Traces
this.reason=res.Reason
})
},
cancel() {
this.visible = false
this.$refs['form'].resetFields()
},
submit(type) {
this.loading = true
if (this.serviceType === 0) {
this.form.consignee = ''
this.form.phoneNumber = ''
this.form.address = ''
}
this.form.approvalStatus = type // 0成功 1失败
// var res = salesCheck(this.form)
// if (res) {
// this.$message.success('审核成功')
// this.visible = false
// this.$emit('checkSuccess')
// } else {
// this.$message.error(res.message || '审核失败!')
// }
// this.loading = false
salesCheck(this.form).then(res => {
if (res) {
this.$message.success('审核成功')
this.visible = false
this.$emit('checkSuccess')
} else {
this.$message.error(res.message || '审核失败!')
}
}).finally(
this.loading = false
)
}
}
}
</script>
<style lang="scss" scoped>
.afterSealsAdd{
padding-bottom: 10vh;
span{
color: #F56C6C;
line-height: 40px;
font-size: 18px;
font-weight: bold;
margin: 25px 0;
}
}
.afterSealsAdd ::v-deep.el-input.is-disabled .el-input__inner{
color: #333333;
}
.afterSealsAdd ::v-deep .dialog-footer{
display: flex;
justify-content: space-around;
.el-button{
width: 120px;
height: 40px;
}
.refuse{}
.check{}
}
</style>