|
|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <el-drawer :visible.sync="showArea" size="55vw" :before-close="closeFn" custom-class="drawer-class" direction="ltr">
|
|
|
+ <el-drawer :visible.sync="showArea" size="50vw" :before-close="closeFn" custom-class="drawer-class" direction="ltr">
|
|
|
<div>
|
|
|
<div style="margin-left:10px;font-weight:bold;">售后记录</div>
|
|
|
<x-crud @load="onLoad">
|
|
|
@@ -14,23 +14,12 @@
|
|
|
</x-crud>
|
|
|
</div>
|
|
|
|
|
|
- <div class="app-content" v-if="!$util.isEmpty(refundInfo)">
|
|
|
- <div class="flex refund-item">
|
|
|
- <div class="refund-label">售后时间:</div>
|
|
|
- <div class="flex list" style="align-items: center;">
|
|
|
- <div class="flex" style="align-items: center;">{{refundInfo.addTime}}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="flex refund-item">
|
|
|
- <div class="refund-label">售后单号:</div>
|
|
|
- <div class="flex list" style="align-items: center;">
|
|
|
- <div class="flex" style="align-items: center;">{{refundInfo.refundSn}}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="app-content" v-if="!$util.isEmpty(info)">
|
|
|
+
|
|
|
<div class="flex refund-item">
|
|
|
<div class="refund-label">售后方式:</div>
|
|
|
- <div class="flex list">
|
|
|
- <div class="flex" >{{refundType==1?'退货并退款':'只退款'}}</div>
|
|
|
+ <div class="flex list" style="align-items: center;">
|
|
|
+ <div class="flex" style="align-items: center;">{{refundType==1?'退货并退款':'只退款'}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="refund-item-list" v-if="refundType==1">
|
|
|
@@ -38,21 +27,79 @@
|
|
|
<div>
|
|
|
<div class="list" v-for="(res,i) in product" :key="i">
|
|
|
<div class="flex list-title" >
|
|
|
- {{res.name}} ¥{{res.unitPrice?parseFloat(res.unitPrice):0}}*{{res.num}}{{res.unitName}}=¥{{parseFloat(res.price)}}
|
|
|
+ {{res.name}} ¥{{parseFloat(res.xhUnitPrice)}}x{{res.xhNum}}{{res.xhUnitName}}=¥{{parseFloat(res.xhPrice)}}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div class="flex refund-item">
|
|
|
+ <div class="refund-label">申请时间:</div>
|
|
|
+ <div class="flex list" style="align-items: center;">
|
|
|
+ <div class="flex" style="align-items: center;">{{ info.addTime ? info.addTime.substr(5,11):'' }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="flex refund-item">
|
|
|
+ <div class="refund-label">售后原因:</div>
|
|
|
+ <div class="flex list" style="align-items: center;">
|
|
|
+ <div class="flex" style="align-items: center;">
|
|
|
+ {{ info.cause == 0 ? '质量原因' : '多开错开'}} <span style="margin-left:20px;color:#3385FF;cursor: pointer;" @click="changeCause(info)">修改</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="flex refund-item">
|
|
|
+ <div class="refund-label">售后单号:</div>
|
|
|
+ <div class="flex list" style="align-items: center;">
|
|
|
+ <div class="flex" style="align-items: center;">{{info.orderSn}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="flex refund-item">
|
|
|
<div class="refund-label">售后金额:</div>
|
|
|
- <div class="list">¥{{refundPrice}}</div>
|
|
|
+ <div class="list">
|
|
|
+ ¥{{refundPrice}}
|
|
|
+ <span style="margin-left:8px;font-size:16px;" v-if="Number(info.refundPackCost)>0">(含退打包费{{ info.refundPackCost?parseFloat(info.refundPackCost):0 }}元)</span>
|
|
|
+ <span style="margin-left:8px;font-size:16px;" v-if="Number(info.refundSendCost)>0">(含退运费{{ info.refundSendCost?parseFloat(info.refundSendCost):0 }}元)</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class=" refund-item">
|
|
|
+ <div class="refund-label" style="color:red;font-weight:bold;">退款状态:</div>
|
|
|
+ <div class="list" style="color:red;font-weight:bold;">{{ info.status==0?'待审核':info.status==1?'已通过':info.status==2?'已驳回':info.status==3 ? '已取消':'' }}</div>
|
|
|
+ </div>
|
|
|
+ <div class=" refund-item">
|
|
|
+ <div class="refund-label">操作人员:</div>
|
|
|
+ <div class="list">{{ info.shopAdminName||'' }}</div>
|
|
|
</div>
|
|
|
- <div class=" refund-item" v-if="!$util.isEmpty(remark)">
|
|
|
+ <div class=" refund-item">
|
|
|
+ <div class="refund-label" style="color:red;font-weight:bold;" v-if="!$util.isEmpty(info.rejectReason)">驳回原因:</div>
|
|
|
+ <div class="list" style="color:red;font-weight:bold;">{{info.rejectReason?info.rejectReason:''}}</div>
|
|
|
+ </div>
|
|
|
+ <div class=" refund-item" v-if="!$util.isEmpty(info.remark)">
|
|
|
<div class="refund-label" style="color:red;font-weight:bold;">备注信息:</div>
|
|
|
- <div class="list" style="color:red;font-weight:bold;">{{remark}}</div>
|
|
|
+ <div class="list" style="color:red;font-weight:bold;">{{info.remark?info.remark:''}}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class=" refund-item" v-if="info.smallImgList && !$util.isEmpty(info.smallImgList)">
|
|
|
+ <div class="refund-label" style="color:red;font-weight:bold;">售后图片:</div>
|
|
|
+ <div class="list" style="color:red;font-weight:bold;">
|
|
|
+ <span v-for="(itemImg, indexImg) in info.smallImgList" :key="indexImg">
|
|
|
+ <img :src="itemImg" style="width:30px;height:30px;float:left;margin-left:9px;margin-bottom:4px;" />
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
+
|
|
|
+ <div style="margin-left:80px;margin-top:20px;">
|
|
|
+ <el-button @click="closeFn" style="margin-left:120px;">关闭</el-button>
|
|
|
+
|
|
|
+ <el-button @click="reject()" type="primary" style="margin-left:120px;" v-if="info.status==0">驳回</el-button>
|
|
|
+
|
|
|
+ <el-popconfirm title="确认通过?" @confirm="pass(0)" @onConfirm="pass(0)" style="margin-left:180px;" v-if="info.status==0">
|
|
|
+ <el-button type="primary" slot="reference">通过</el-button>
|
|
|
+ </el-popconfirm>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
</el-drawer>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -72,23 +119,55 @@ export default {
|
|
|
refundPrice:0,
|
|
|
refundType:1,
|
|
|
remark:'',
|
|
|
- refundInfo:{}
|
|
|
+ info:[],
|
|
|
+ rejectReason:'',
|
|
|
+ from:0,
|
|
|
+ refundAmount:''
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- getDetail(info){
|
|
|
- this.$service.cgRefund.getRefundFullInfo({ id: info.id }).then(data => {
|
|
|
- this.refundInfo = data.info
|
|
|
+ reject(){
|
|
|
+ this.$message.error('开发中')
|
|
|
+ },
|
|
|
+ pass(confirm){
|
|
|
+ this.$message.error('开发中')
|
|
|
+ // let that = this
|
|
|
+ // this.$util.confirmModal({content:'确认通过?'},() => {
|
|
|
+ // uni.showLoading({mask:true})
|
|
|
+ // passRefund({id: this.option.id,version:1,confirm:confirm}).then(res=>{
|
|
|
+ // uni.hideLoading()
|
|
|
+ // if(res.code == 1){
|
|
|
+ // if(res.data.error && res.data.error == 'notFirstApply'){
|
|
|
+ // that.$util.confirmModal({content:'本单第二次售后,确认要通过?'},() => {
|
|
|
+ // that.pass(1)
|
|
|
+ // })
|
|
|
+ // }else if(res.data.error && res.data.error == 'hasUnClearOrder'){
|
|
|
+ // that.needCancelRemind(res.data.clearId)
|
|
|
+ // }else{
|
|
|
+ // that.$msg('操作成功')
|
|
|
+ // that.init()
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ },
|
|
|
+ changeCause(info){
|
|
|
+ this.$message.error('开发中')
|
|
|
+ },
|
|
|
+ getDetail(ret){
|
|
|
+ this.$service.refund.detail({ id: ret.id }).then(data => {
|
|
|
this.product = data.itemList||[];
|
|
|
this.refundType = data.info.refundType||0;
|
|
|
- this.refundPrice = data.info.refundPrice?parseFloat(data.info.refundPrice):0
|
|
|
- this.remark = data.info.remark?data.info.remark:''
|
|
|
+ this.refundPrice = data.info.refundPrice ? parseFloat(data.info.refundPrice) : 0
|
|
|
+ this.remark = data.info.remark;
|
|
|
+ this.info = data.info
|
|
|
})
|
|
|
},
|
|
|
init() {
|
|
|
this.showArea = true
|
|
|
+ this.info = []
|
|
|
if(this.app){
|
|
|
- this.app.refresh({relateOrderSn:this.currentData.orderSn})
|
|
|
+ this.app.refresh({orderSn:this.currentData.orderSn})
|
|
|
}
|
|
|
},
|
|
|
closeFn() {
|
|
|
@@ -96,7 +175,7 @@ export default {
|
|
|
},
|
|
|
onLoad({ ctx, app }) {
|
|
|
this.app = app;
|
|
|
- ctx.service(this.$service.cgRefund)
|
|
|
+ ctx.service(this.$service.refund)
|
|
|
.set('table', {
|
|
|
columns: [
|
|
|
{
|
|
|
@@ -106,7 +185,7 @@ export default {
|
|
|
},
|
|
|
{
|
|
|
label: '单号',
|
|
|
- prop: 'refundSn',
|
|
|
+ prop: 'orderSn',
|
|
|
align: 'center',
|
|
|
},
|
|
|
{
|
|
|
@@ -140,8 +219,11 @@ export default {
|
|
|
[ 'data-table' ],
|
|
|
['flex1', 'pagination']
|
|
|
])
|
|
|
+ .set('pagination', {
|
|
|
+ size:4
|
|
|
+ })
|
|
|
.done()
|
|
|
- app.refresh({relateOrderSn:this.currentData.orderSn})
|
|
|
+ app.refresh({orderSn:this.currentData.orderSn})
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -152,7 +234,7 @@ export default {
|
|
|
}
|
|
|
.app-content{
|
|
|
height: calc(100vh - 30px * 2);
|
|
|
- padding: 30px;
|
|
|
+ padding:0 10px 10px 30px;
|
|
|
margin-left:100px;
|
|
|
background: #FFFFFF;
|
|
|
.radioBtn{
|