订单部分退款

This commit is contained in:
zzyuan 2025-06-12 14:29:55 +08:00
parent d0a08f85db
commit 894ee06e8e
7 changed files with 166 additions and 181 deletions

View File

@ -33,7 +33,7 @@ export function orderDetailInfoApi(data) {
// 订单-部分退款
export function refundOrderPartApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/part/refund',
url: '/smart-canteen/order/part_refund',
method: 'post',
headers: {
"merchant-id":"378915229716713472",

View File

@ -31,7 +31,7 @@ export function orderDetailInfoApi(data) {
// 订单-部分退款
export function refundOrderPartApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/part/refund',
url: '/smart-canteen/order/part_refund',
method: 'post',
headers: {
"merchant-id":"378915229716713472",

View File

@ -126,7 +126,7 @@ export function orderDetailInfoApi(data) {
// 订单-部分退款
export function refundOrderPartApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/part/refund',
url: '/smart-canteen/order/part_refund',
method: 'post',
headers: {
"merchant-id":"378915229716713472",
@ -150,7 +150,7 @@ export function refundOrderApi(data) {
// 订单-核销
export function writeOffOrderApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/write/off',
url: '/smart-canteen/order/write-off',
method: 'post',
headers: {
"merchant-id":"378915229716713472",

View File

@ -123,7 +123,7 @@ export function orderDetailInfoApi(data) {
// 订单-部分退款
export function refundOrderPartApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/part/refund',
url: '/smart-canteen/order/part_refund',
method: 'post',
headers: {
"merchant-id":"378915229716713472",
@ -147,7 +147,7 @@ export function refundOrderApi(data) {
// 订单-核销
export function writeOffOrderApi(data) {
return request({
url: '/smart-canteen/api/v2/web/order/write/off',
url: '/smart-canteen/order/write-off',
method: 'post',
headers: {
"merchant-id":"378915229716713472",

View File

@ -162,7 +162,7 @@
</el-table-column>
<el-table-column label="实付金额" align="center" prop="realAmount" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.realAmount/100).toFixed(2) }}</span>
<span>{{ ((scope.row.payableAmount-scope.row.refundAmount)/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" width="80"/>
@ -189,14 +189,14 @@
type="text"
@click="handleView(scope.row)"
>详情</el-button>
<!-- <el-button
<el-button
size="mini"
type="text" v-if="scope.row.orderStateMix==1||scope.row.orderStateMix==11"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==2"
@click="handleRefundPart(scope.row)"
>部分退款</el-button>-->
>部分退款</el-button>
<el-button
size="mini"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==4"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==2||scope.row.orderState==4"
@click="handleRefund(scope.row)"
>退单</el-button>
<!-- <el-button
@ -296,11 +296,6 @@
<template slot="label"> 餐次</template>
{{ orderInfoData.mealtimeName }}
</el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 餐桌名称</template>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 订单金额</template>
{{ (orderInfoData.payableAmount/100).toFixed(2) }}
@ -315,16 +310,13 @@
{{ (orderInfoData.couponAmount/100).toFixed(2) }}
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 实付金额</template>
{{ (orderInfoData.realAmount/100).toFixed(2) }}
<template slot="label"> 实付金额</template>
{{ ((orderInfoData.payableAmount-orderInfoData.refundAmount)/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 退款金额</template>
{{ (orderInfoData.refundAmount/100).toFixed(2) }}
</el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 核身方式</template>
<div v-for="item in nuclearModeOptions" :key="item.key" v-if="item.key==orderInfoData.nuClearMode">
{{ item.value }}
</div>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 支付方式</template>
<dict-tag :options="dict.type.sm_order_pay_type" :value="orderInfoData.payType"/>
@ -402,17 +394,17 @@
<el-col :span="22">
<el-radio-group v-model="refundType" @change="choseRefundTypeRadio">
<el-radio label="1" style="font-size: 14px;margin-bottom: 10px;">按数量退款</el-radio>
<el-radio label="2" style="font-size: 14px;margin-bottom: 10px;">按金额退款</el-radio>
<!-- <el-radio label="2" style="font-size: 14px;margin-bottom: 10px;">按金额退款</el-radio> -->
</el-radio-group>
</el-col>
</el-row>
<el-table :data="orderDetailList" @selection-change="handleSelectionChange" v-if="refundType==1">
<el-table-column type="selection" width="50" align="center"/>
<el-table :data="orderDetailList" @selection-change="handleSelectionChange" :row-key="(row)=>{return row.detailId}" v-if="refundType==1">
<el-table-column type="selection" width="50" align="center" :selectable="selectable"/>
<el-table-column label="菜品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
<el-table-column label="菜品" align="center" prop="prefPrice" :show-overflow-tooltip="true">
<el-table-column label="菜品价" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.prefPrice/100).toFixed(2) }}</span>
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="菜品数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
@ -421,7 +413,7 @@
<span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="可退款数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
<el-table-column label="可退款数量" align="center" prop="unRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="已退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
<el-table-column label="退款金额" align="center" prop="refundAmount" :show-overflow-tooltip="true">
<template slot-scope="scope">
@ -429,9 +421,9 @@
</template>
</el-table-column>
<el-table-column label="退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true" width="100">
<el-table-column label="退款数量" align="center" prop="goRefundNum" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.refundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.refundNum=v.replace(/[^\d]/g,''))"/>
<el-input v-model="scope.row.goRefundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.goRefundNum=v.replace(/[^\d]/g,''))"/>
</template>
</el-table-column>
<el-table-column label="退款金额" align="center" prop="refundMoney" :show-overflow-tooltip="true" width="100">
@ -671,7 +663,7 @@
this.loading = true;
let param = {
...this.queryParams,
"orderTypeList":[4,11],
"orderTypeList":[11],
"startDate":this.formatDate(this.dateRange[0]),
"endDate":this.formatDate(this.dateRange[1])
}
@ -705,29 +697,31 @@
this.$set(this.rowData,"refundMoney","")
console.log(this.rowData)
this.orderDetailList.forEach((item,index)=>{
this.$set(this.orderDetailList[index],"refundNum",item.quantity)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.prefPrice).toFixed(2))
this.$set(this.orderDetailList[index],"unRefundNum",item.quantity-item.refundNum)
this.$set(this.orderDetailList[index],"goRefundNum",item.unRefundNum)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.salePrice).toFixed(2))
})
this.refundList=[]
this.openPart = true;
},
inputNum(row){
if(Number(row.refundNum)>row.quantity){
if(Number(row.goRefundNum)>row.unRefundNum){
this.$modal.msgError("退款数量不能大于可退款数量!");
row.refundNum=row.quantity
row.goRefundNum=row.unRefundNum
}
row.refundMoney = Number(row.refundNum)*(row.prefPrice).toFixed(2)
},
choseRefundTypeRadio(e){
row.refundMoney = Number(row.goRefundNum)*(row.salePrice).toFixed(2)
},
choseRefundTypeRadio(e){},
handleSelectionChange(selection){
console.log(selection)
this.refundList = selection.map((item) => {
let obj = {'detailId':item.detailId,'quantity':item.refundNum}
let obj = {'detailId':item.detailId,'quantity':item.goRefundNum}
return obj
})
},
selectable(row){
return row.unRefundNum>0
},
confirmRefund(){
if(this.refundType==1){
if(this.refundList.length==0){
@ -735,11 +729,11 @@
}else{
console.log(this.refundList)
let param = {
detailRefundList:this.refundList,
orderPartRefundDetailList:this.refundList,
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.data.resultCode==10000){
if(response.code==200){
this.$modal.msgSuccess("退款成功");
}
this.getList()
@ -755,7 +749,7 @@
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.data.resultCode==10000){
if(response.code==200){
this.$modal.msgSuccess("退款成功");
}
this.getList()
@ -808,7 +802,7 @@
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1||item.orderStateMix==11){
if(item.orderState==1||item.orderState==2){
this.ableList.push(item)
}else{
this.unableList.push(item)
@ -822,7 +816,7 @@
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1){
if(item.orderState==1){
this.ableList.push(item)
}else{
this.unableList.push(item)

View File

@ -110,20 +110,22 @@
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
size="mini" :disabled="multiple"
@click="handleBatchRefund"
>批量退单</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
size="mini" :disabled="multiple"
@click="handleBatchWriteOff"
>批量核销</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
size="mini" :disabled="multiple"
@click="handleBatchWriteOff"
>批量核销</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
size="mini" :disabled="multiple"
@click="handleBatchRefund"
>批量退单</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button
type="primary"
@ -157,20 +159,10 @@
<template slot-scope="scope">
<span>{{ (scope.row.payableAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="配送费" align="center" prop="deliveryAmount" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.deliveryAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="包装费" align="center" prop="packingAmount" :show-overflow-tooltip="true" width="80">
<el-table-column label="实付金额" align="center" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.packingAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="实付金额" align="center" prop="realAmount" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.realAmount/100).toFixed(2) }}</span>
<span>{{ ((scope.row.payableAmount-scope.row.refundAmount)/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="支付方式" align="center" prop="payType" :show-overflow-tooltip="true" width="100">
@ -201,11 +193,11 @@
type="text"
@click="handleView(scope.row)"
>详情</el-button>
<!-- <el-button
<el-button
size="mini"
type="text" v-if="scope.row.orderStateMix==1||scope.row.orderStateMix==11"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==2"
@click="handleRefundPart(scope.row)"
>部分退款</el-button>-->
>部分退款</el-button>
<el-button
size="mini"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==2||scope.row.orderState==4"
@ -290,7 +282,15 @@
<el-descriptions-item>
<template slot="label"> 订单金额</template>
{{ (orderInfoData.payableAmount/100).toFixed(2) }}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 实付金额</template>
{{ ((orderInfoData.payableAmount-orderInfoData.refundAmount)/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 退款金额</template>
{{ (orderInfoData.refundAmount/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 配送费</template>
{{ (orderInfoData.deliveryAmount/100).toFixed(2) }}
@ -300,10 +300,6 @@
<template slot="label"> 包装费</template>
{{ (orderInfoData.packingAmount/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 实付金额</template>
{{ (orderInfoData.realAmount/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 支付方式</template>
<dict-tag :options="dict.type.sm_order_pay_type" :value="orderInfoData.payType"/>
@ -368,17 +364,17 @@
<el-col :span="22">
<el-radio-group v-model="refundType" @change="choseRefundTypeRadio">
<el-radio label="1" style="font-size: 14px;margin-bottom: 10px;">按数量退款</el-radio>
<el-radio label="2" style="font-size: 14px;margin-bottom: 10px;">按金额退款</el-radio>
<!-- <el-radio label="2" style="font-size: 14px;margin-bottom: 10px;">按金额退款</el-radio> -->
</el-radio-group>
</el-col>
</el-row>
<el-table :data="orderDetailList" @selection-change="handleSelectionChange" v-if="refundType==1">
<el-table-column type="selection" width="50" align="center"/>
<el-table-column label="菜品名称" align="center" prop="goodsDishesName" :show-overflow-tooltip="true"/>
<el-table-column label="菜品" align="center" prop="prefPrice" :show-overflow-tooltip="true">
<el-table :data="orderDetailList" @selection-change="handleSelectionChange" :row-key="(row)=>{return row.detailId}" v-if="refundType==1">
<el-table-column type="selection" width="50" align="center" :selectable="selectable"/>
<el-table-column label="菜品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
<el-table-column label="菜品价" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.prefPrice/100).toFixed(2) }}</span>
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="菜品数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
@ -387,17 +383,17 @@
<span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="可退款数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
<el-table-column label="已退款数量" align="center" prop="goodsRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="可退款数量" align="center" prop="unRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="已退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
<el-table-column label="退款金额" align="center" prop="refundAmount" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.refundAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true" width="100">
<el-table-column label="退款数量" align="center" prop="goRefundNum" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.refundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.refundNum=v.replace(/[^\d]/g,''))"/>
<el-input v-model="scope.row.goRefundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.goRefundNum=v.replace(/[^\d]/g,''))"/>
</template>
</el-table-column>
<el-table-column label="退款金额" align="center" prop="refundMoney" :show-overflow-tooltip="true" width="100">
@ -669,29 +665,34 @@ export default {
this.$set(this.rowData,"refundMoney","")
console.log(this.rowData)
this.orderDetailList.forEach((item,index)=>{
this.$set(this.orderDetailList[index],"refundNum",item.quantity)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.prefPrice).toFixed(2))
this.$set(this.orderDetailList[index],"unRefundNum",item.quantity-item.refundNum)
this.$set(this.orderDetailList[index],"goRefundNum",item.unRefundNum)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.salePrice).toFixed(2))
})
this.refundList=[]
this.openPart = true;
},
inputNum(row){
if(Number(row.refundNum)>row.quantity){
if(Number(row.goRefundNum)>row.unRefundNum){
this.$modal.msgError("退款数量不能大于可退款数量!");
row.refundNum=row.quantity
row.goRefundNum=row.unRefundNum
}
row.refundMoney = Number(row.refundNum)*(row.prefPrice).toFixed(2)
},
choseRefundTypeRadio(e){
row.refundMoney = Number(row.goRefundNum)*(row.salePrice).toFixed(2)
},
//退/退
choseRefundTypeRadio(e){},
//退
handleSelectionChange(selection){
console.log(selection)
this.refundList = selection.map((item) => {
let obj = {'detailId':item.detailId,'quantity':item.refundNum}
let obj = {'detailId':item.detailId,'quantity':item.goRefundNum}
return obj
})
},
selectable(row){
return row.unRefundNum>0
},
//退
confirmRefund(){
if(this.refundType==1){
if(this.refundList.length==0){
@ -699,11 +700,11 @@ export default {
}else{
console.log(this.refundList)
let param = {
detailRefundList:this.refundList,
orderPartRefundDetailList:this.refundList,
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.data.resultCode==10000){
if(response.code==200){
this.$modal.msgSuccess("退款成功");
}
this.getList()
@ -719,7 +720,7 @@ export default {
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.data.resultCode==10000){
if(response.code==200){
this.$modal.msgSuccess("退款成功");
}
this.getList()
@ -772,7 +773,7 @@ export default {
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1||item.orderStateMix==11){
if(item.orderState==1||item.orderState==2){
this.ableList.push(item)
}else{
this.unableList.push(item)
@ -786,7 +787,7 @@ export default {
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1){
if(item.orderState==1){
this.ableList.push(item)
}else{
this.unableList.push(item)
@ -800,8 +801,6 @@ export default {
if(this.handleType=="退单"){
this.ableList.forEach(item=>{
let param = {
backType: 1,
macOrderId:item.macOrderId,
orderId:item.orderId
}
refundOrderApi(param).then(response => {
@ -815,7 +814,7 @@ export default {
if(this.handleType=="核销"){
this.ableList.forEach(item=>{
let param = {
orderId:item.orderId
orderIdList:[item.orderId ]
}
writeOffOrderApi(param).then(response => {
if(response.code!=200){
@ -825,9 +824,10 @@ export default {
})
this.$modal.msgSuccess("核销成功");
}
this.openRemind = true
this.$refs.multipleTable.clearSelection()
setTimeout(()=>{
this.getList()
this.$refs.multipleTable.clearSelection()
this.getList()
},1000)
}
},

View File

@ -128,14 +128,9 @@
<span>{{ (scope.row.payableAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="配送费" align="center" prop="deliveryAmount" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.deliveryAmount/100).toFixed(2) }}</span>
</template>
</el-table-column> -->
<el-table-column label="实付金额" align="center" prop="realAmount" :show-overflow-tooltip="true" width="80">
<template slot-scope="scope">
<span>{{ (scope.row.realAmount/100).toFixed(2) }}</span>
<span>{{ ((scope.row.payableAmount-scope.row.refundAmount)/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="支付方式" align="center" prop="payType" :show-overflow-tooltip="true" width="100">
@ -167,15 +162,15 @@
type="text" v-if="scope.row.orderState==1||scope.row.orderState==4"
@click="handleRefund(scope.row)"
>退单</el-button>
<!-- <el-button
<el-button
size="mini"
type="text" v-if="scope.row.orderStateMix==1||scope.row.orderStateMix==11"
type="text" v-if="scope.row.orderState==1||scope.row.orderState==2"
@click="handleRefundPart(scope.row)"
>部分退款</el-button>
<!--
<el-button
size="mini"
type="text" v-if="scope.row.orderStateMix==1"
type="text" v-if="scope.row.orderState==1"
@click="writeOffOrder(scope.row)"
>核销</el-button> -->
@ -234,21 +229,15 @@
<el-descriptions-item>
<template slot="label"> 订单金额</template>
{{ (orderInfoData.payableAmount/100).toFixed(2) }}
</el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 配送费</template>
{{ (orderInfoData.deliveryAmount/100).toFixed(2) }}
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 实付金额</template>
{{ (orderInfoData.realAmount/100).toFixed(2) }}
</el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 配送方式</template>
<div v-for="item in deliveryTypeOptions" :key="item.key" v-if="item.key==orderInfoData.deliveryType">
{{ item.value }}
</div>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 实付金额</template>
{{ ((orderInfoData.payableAmount-orderInfoData.refundAmount)/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 退款金额</template>
{{ (orderInfoData.refundAmount/100).toFixed(2) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 支付方式</template>
<dict-tag :options="dict.type.sm_order_pay_type" :value="orderInfoData.payType"/>
@ -279,9 +268,9 @@
<div style="margin: 10px 0;font-weight: bold;font-size: 16px;color: #000;">商品信息</div>
<el-table :data="orderInfoData.orderDetailList">
<el-table-column label="商品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
<el-table-column label="单价(元)" align="center" prop="prefPrice" :show-overflow-tooltip="true">
<el-table-column label="单价(元)" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.prefPrice/100).toFixed(2) }}</span>
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
@ -290,7 +279,7 @@
<span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="退款数量" align="center" prop="goodsRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
<el-table-column label="退款金额(元)" align="center" prop="refundAmount" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.refundAmount/100).toFixed(2) }}</span>
@ -307,11 +296,12 @@
<!-- 部分退款对话框 -->
<el-dialog title="部分退款" :visible.sync="openPart" width="80%" append-to-body>
<el-table :data="orderDetailList">
<el-table :data="orderDetailList" @selection-change="handleSelectionChange" :row-key="(row)=>{return row.detailId}">
<el-table-column type="selection" width="50" align="center" :selectable="selectable"/>
<el-table-column label="商品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
<el-table-column label="商品单价" align="center" prop="prefPrice" :show-overflow-tooltip="true">
<el-table-column label="商品单价" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.prefPrice/100).toFixed(2) }}</span>
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="商品数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
@ -320,17 +310,17 @@
<span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="可退款数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
<el-table-column label="已退款数量" align="center" prop="goodsRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="可退款数量" align="center" prop="unRefundNum" :show-overflow-tooltip="true"/>
<el-table-column label="已退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
<el-table-column label="已退款金额" align="center" prop="refundAmount" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.refundAmount/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true" width="100">
<el-table-column label="退款数量" align="center" prop="goRefundNum" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.refundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.refundNum=v.replace(/[^\d]/g,''))"/>
<el-input v-model="scope.row.goRefundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)" @input="(v)=>(scope.row.goRefundNum=v.replace(/[^\d]/g,''))"/>
</template>
</el-table-column>
<el-table-column label="退款金额" align="center" prop="refundMoney" :show-overflow-tooltip="true" width="100">
@ -350,18 +340,9 @@
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<!-- <el-button
size="mini" style="color: red;"
type="text"
@click="refundPartMoney(scope.row)"
>退款</el-button> -->
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="openPart=false"> </el-button>
<el-button type="primary" @click="confirmRefund"> </el-button>
<el-button @click="openPart=false"> </el-button>
</div>
</el-dialog>
@ -458,6 +439,7 @@
orderInfoData: {},
//退
openPart:false,
refundList:[],
orderDetailList:[],
rowData:{},
refundRules:{
@ -573,39 +555,48 @@
this.$set(this.rowData,"refundMoney","")
console.log(this.rowData)
this.orderDetailList.forEach((item,index)=>{
this.$set(this.orderDetailList[index],"refundNum",item.quantity)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.prefPrice).toFixed(2))
this.$set(this.orderDetailList[index],"unRefundNum",item.quantity-item.refundNum)
this.$set(this.orderDetailList[index],"goRefundNum",item.unRefundNum)
this.$set(this.orderDetailList[index],"refundMoney",Number(item.quantity)*(item.salePrice).toFixed(2))
})
this.refundList=[]
this.openPart = true;
},
inputNum(row){
if(Number(row.refundNum)>row.quantity){
this.$modal.msgError("退款数量不能大于可退款数量!");
row.refundNum=row.quantity
if(Number(row.goRefundNum)>row.unRefundNum){
this.$modal.msgError("退款数量不能大于可退款数量!");
row.goRefundNum=row.unRefundNum
}
row.refundMoney = Number(row.refundNum)*(row.prefPrice).toFixed(2)
row.refundMoney = Number(row.goRefundNum)*(row.salePrice).toFixed(2)
},
refundPartMoney(){
selectable(row){
return row.unRefundNum>0
},
//退
handleSelectionChange(selection){
console.log(selection)
this.refundList = selection.map((item) => {
let obj = {'detailId':item.detailId,'quantity':item.goRefundNum}
return obj
})
},
confirmRefund(){
if(this.refundList.length==0){
this.$modal.msgError("请先勾选退款商品!");
}else{
console.log(this.refundList)
let param = {
detailRefundList:this.refundList,
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.data.resultCode==10000){
this.$modal.msgSuccess("退款成功");
}
this.getList()
this.openPart = false;
});
if(this.refundList.length==0){
this.$modal.msgError("请先勾选退款商品!");
}else{
console.log(this.refundList)
let param = {
orderPartRefundDetailList:this.refundList,
orderId:this.rowData.orderId
}
refundOrderPartApi(param).then(response => {
if(response.code==200){
this.$modal.msgSuccess("退款成功");
}
this.getList()
this.openPart = false;
});
}
},
/** 退单按钮操作 */
handleRefund(row) {
@ -646,7 +637,7 @@
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1||item.orderStateMix==11){
if(item.orderState==1||item.orderState==2){
this.ableList.push(item)
}else{
this.unableList.push(item)
@ -660,7 +651,7 @@
this.ableList = []
this.unableList = []
this.batchList.forEach(item=>{
if(item.orderStateMix==1){
if(item.orderState==1){
this.ableList.push(item)
}else{
this.unableList.push(item)