This commit is contained in:
parent
00567505c2
commit
66e606e417
|
@ -2,6 +2,7 @@
|
|||
import { ref, watch, nextTick } from "vue";
|
||||
import { orderCreateApi, orderStatusApi, orderPayApi } from "@/api/store.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { audioplay } from "@/utils/audio.js";
|
||||
|
||||
const drawer = ref(false);
|
||||
const active = ref(1);
|
||||
|
@ -39,7 +40,7 @@ const emit = defineEmits(["paySuccess"]);
|
|||
|
||||
const reLoad = ref(false);
|
||||
|
||||
let timeout = 0; //刷新间隔
|
||||
let timecount = 0; //刷新间隔
|
||||
|
||||
const order_id = ref("");
|
||||
// 支付
|
||||
|
@ -57,18 +58,28 @@ const handleEnter = () => {
|
|||
source: 300,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.status==200&& res.message=='支付成功') {
|
||||
if (res.status == 200 && res.message == "支付成功") {
|
||||
drawer.value = false;
|
||||
ElMessage({
|
||||
message: res.message,
|
||||
type: "success",
|
||||
});
|
||||
audioplay(res.data.message);
|
||||
beforeClose();
|
||||
} else {
|
||||
order_id.value = res.data.group_order_id;
|
||||
count.value = 0;
|
||||
timeout = 0;
|
||||
getOrderStatus(res.data.group_order_sn);
|
||||
if (!res.data.group_order_sn) {
|
||||
order_id.value = res.data.result.order_id;
|
||||
loading.value = false;
|
||||
return ElMessage({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
} else {
|
||||
order_id.value = res.data.group_order_id;
|
||||
count.value = 0;
|
||||
timecount = 0;
|
||||
getOrderStatus(res.data.group_order_sn);
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
@ -85,17 +96,18 @@ const orderPay = (id) => {
|
|||
auth_code: input.value,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.status == "success") {
|
||||
if (res.status == 200 && res.message == "支付成功") {
|
||||
drawer.value = false;
|
||||
ElMessage({
|
||||
message: res.message,
|
||||
type: "success",
|
||||
});
|
||||
audioplay(res.data.message);
|
||||
beforeClose();
|
||||
} else {
|
||||
order_id.value = res.data.group_order_id;
|
||||
count.value = 0;
|
||||
timeout = 0;
|
||||
timecount = 0;
|
||||
getOrderStatus(res.data.group_order_sn);
|
||||
}
|
||||
})
|
||||
|
@ -111,7 +123,7 @@ const orderPay = (id) => {
|
|||
const count = ref(0); // 累计请求3次, 如果3次都失败, 则只能重新支付
|
||||
const getOrderStatus = (id) => {
|
||||
count.value++;
|
||||
timeout+=5000;
|
||||
timecount += 5000;
|
||||
orderStatusApi({
|
||||
order_sn: id,
|
||||
})
|
||||
|
@ -121,6 +133,7 @@ const getOrderStatus = (id) => {
|
|||
message: res.message,
|
||||
type: "success",
|
||||
});
|
||||
audioplay(res.data.message);
|
||||
beforeClose();
|
||||
} else {
|
||||
ElMessage({
|
||||
|
@ -138,7 +151,7 @@ const getOrderStatus = (id) => {
|
|||
if (reLoad.value && count.value < 3)
|
||||
setTimeout(() => {
|
||||
getOrderStatus(id);
|
||||
}, timeout);
|
||||
}, 15000 - timecount > 0 ? 15000 - timecount : 0);
|
||||
else {
|
||||
input.value = "";
|
||||
loading.value = false;
|
||||
|
@ -163,7 +176,7 @@ const loading = ref(false);
|
|||
defineExpose({
|
||||
drawer,
|
||||
setForm,
|
||||
setRePay
|
||||
setRePay,
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
export const audioplay = (text) => {
|
||||
let ssu = new window.SpeechSynthesisUtterance(text);
|
||||
window.speechSynthesis.speak(ssu);
|
||||
}
|
|
@ -5,6 +5,7 @@ import {
|
|||
groupOrderListApi,
|
||||
orderStatusApi,
|
||||
orderLadingApi,
|
||||
cartListApi
|
||||
} from "@/api/store.js";
|
||||
import { useUserStore } from "@/store/user.js";
|
||||
import pay from "@/components/pay.vue";
|
||||
|
@ -39,6 +40,17 @@ const getOrderList = () => {
|
|||
|
||||
getOrderList();
|
||||
|
||||
|
||||
const cartCount = ref(0);
|
||||
const getCartList = () => {
|
||||
cartListApi({
|
||||
source: 300,
|
||||
}).then((res) => {
|
||||
cartCount.value = res.data.list?.length;
|
||||
});
|
||||
};
|
||||
getCartList();
|
||||
|
||||
const changeTabPosition = (e) => {
|
||||
where.value.page = 1;
|
||||
getOrderList();
|
||||
|
@ -182,10 +194,11 @@ const goHome = ()=>{
|
|||
<span>提单前请清空购物车, 避免提单的商品与购物车商品混合, 请确保购物车内无数据后再进行提单</span>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="goHome">
|
||||
前去查看购物车
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button v-if="cartCount>0" @click="goHome">
|
||||
前去清空购物车
|
||||
</el-button>
|
||||
<el-button type="primary" @click="orderLading">
|
||||
<el-button v-else type="primary" @click="orderLading">
|
||||
确认提单
|
||||
</el-button>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue