80 lines
1.2 KiB
Vue
80 lines
1.2 KiB
Vue
<template>
|
|
<u-modal v-model="show" :show-cancel-button ="true" :content="getTipsText" @confirm="onConfirm" confirm-color="#ff2c3c"></u-modal>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
cancelOrder,
|
|
delOrder,
|
|
confirmOrder
|
|
} from '@/api/order';
|
|
export default {
|
|
props: {
|
|
type: Number,
|
|
orderId: [Number, String]
|
|
},
|
|
data() {
|
|
return {
|
|
show: false
|
|
};
|
|
},
|
|
methods: {
|
|
open() {
|
|
this.show = true
|
|
},
|
|
close() {
|
|
this.show = false
|
|
},
|
|
async onConfirm() {
|
|
const {
|
|
type,
|
|
orderId
|
|
} = this;
|
|
let res = null;
|
|
|
|
switch (type) {
|
|
case 0:
|
|
res = await cancelOrder(orderId);
|
|
break;
|
|
|
|
case 1:
|
|
res = await delOrder(orderId);
|
|
break;
|
|
|
|
case 2:
|
|
res = await confirmOrder(orderId);
|
|
break;
|
|
}
|
|
|
|
if (res.code == 1) {
|
|
this.close()
|
|
this.$emit("refresh")
|
|
this.$toast({
|
|
title: res.msg
|
|
});
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
|
|
getTipsText() {
|
|
const {
|
|
type
|
|
} = this
|
|
switch (type) {
|
|
case 0:
|
|
return "确认取消订单吗?"
|
|
case 1:
|
|
return "确认删除订单吗?"
|
|
case 2:
|
|
return "确认收货吗?"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
|
|
</style>
|