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.
163 lines
4.0 KiB
163 lines
4.0 KiB
import { cancelOrder, takeOrder, delOrder, payOrder } from "@/api/order"; |
|
import dialog from "@/utils/dialog"; |
|
import { weappPay } from "@/libs/wechat"; |
|
|
|
import { _router } from '@/utils' |
|
|
|
export function cancelOrderHandle(orderId) { |
|
return new Promise((resolve, reject) => { |
|
uni.showModal({ |
|
title: '提示', |
|
content: '确认取消该订单?', |
|
success(res) { |
|
if (res.confirm) { |
|
cancelOrder(orderId) |
|
.then(res => { |
|
uni.showToast({ |
|
title: '取消成功', icon: 'success', duration: 2000 |
|
}); |
|
resolve(res); |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: '取消失败', icon: 'none', duration: 2000 |
|
}); |
|
reject(err); |
|
}); |
|
} else if (res.cancel) { |
|
} |
|
} |
|
}) |
|
}); |
|
} |
|
|
|
export function takeOrderHandle(orderId) { |
|
return new Promise((resolve, reject) => { |
|
takeOrder(orderId) |
|
.then(res => { |
|
uni.showToast({ |
|
title: '收货成功', icon: 'success', duration: 2000 |
|
}); |
|
resolve(res); |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: '收货失败', icon: 'none', duration: 2000 |
|
}); |
|
reject(err); |
|
}); |
|
}); |
|
} |
|
|
|
export function delOrderHandle(orderId) { |
|
return new Promise((resolve, reject) => { |
|
dialog.confirm({ |
|
mes: "确认删除该订单?", |
|
opts() { |
|
delOrder(orderId) |
|
.then(res => { |
|
uni.showToast({ |
|
title: '删除成功', icon: 'success', duration: 2000 |
|
}); |
|
resolve(res); |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: '删除失败', icon: 'none', duration: 2000 |
|
}); |
|
reject(err); |
|
}); |
|
} |
|
}); |
|
}); |
|
} |
|
|
|
// 使用订单号进行支付 |
|
export function payOrderHandle(orderId, type, from) { |
|
return new Promise((resolve, reject) => { |
|
// dialog.loading.open(""); |
|
payOrder(orderId, type, from) |
|
.then(res => { |
|
handleOrderPayResults(res.data) |
|
}) |
|
.catch(err => { |
|
dialog.loading.close(); |
|
dialog.toast({ mes: err.msg || "订单支付失败" }); |
|
}); |
|
}); |
|
} |
|
|
|
// 处理调用支付接口的逻辑 |
|
// @type create(创建订单)||pay(支付订单) |
|
export function handleOrderPayResults(data, type) { |
|
switch (data.status) { |
|
// 订单号已存在 |
|
case "ORDER_EXIST": |
|
// 取消支付 |
|
case "EXTEND_ORDER": |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none", |
|
duration: 2000, |
|
}); |
|
goOrderDetails(data.result.orderId, type) |
|
break; |
|
case "PAY_DEFICIENCY": |
|
break; |
|
// 支付出错 |
|
case "PAY_ERROR": |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none", |
|
duration: 2000, |
|
}); |
|
goOrderDetails(data.result.orderId, type) |
|
break; |
|
// 未传递支付环境 |
|
case "SUCCESS": |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none", |
|
duration: 2000, |
|
}); |
|
goOrderDetails(data.result.orderId, type) |
|
break; |
|
// H5支付 |
|
case "WECHAT_H5_PAY": |
|
goOrderDetails(data.result.orderId, type) |
|
console.log(data) |
|
setTimeout(() => { |
|
// #ifdef H5 |
|
// "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx15171343713577e9f3a418b0865ef90000&package=2547890641" |
|
// location.href = data.result.jsConfig.mweb_url; |
|
// #endif |
|
}, 100); |
|
break; |
|
// 小程序支付 |
|
case "WECHAT_PAY": |
|
weappPay(data.result.jsConfig).finally(() => { |
|
goOrderDetails(data.result.orderId, type) |
|
}); |
|
break; |
|
// APP支付 |
|
case "WECHAT_APP_PAY": |
|
weappPay(data.result.jsConfig).finally(() => { |
|
goOrderDetails(data.result.orderId, type) |
|
}); |
|
break; |
|
} |
|
} |
|
|
|
|
|
export function goOrderDetails(id, type) { |
|
// 创建订单时跳转到详情 |
|
if (type == 'create') { |
|
console.log(_router) |
|
_router.replace({ |
|
path: "/pages/order/OrderDetails/index", |
|
query: { |
|
id |
|
}, |
|
}); |
|
} |
|
}
|
|
|