Files
yshop-pro-uniapp/hooks/useOrder.js

154 lines
4.1 KiB
JavaScript

import { computed, ref, unref } from "vue";
import { cancelAfterVerification, orderCancel, orderDelete } from "@/api/order";
import { useRouter } from "@/hooks/useRouter";
import { useInterface } from "@/hooks/useInterface";
const {toast} = useInterface();
export function useOrder(handleOrderInfo = () => {
}) {
const checkOffCodeRef = ref()
const modalRef = ref()
const modalType = ref(0) // 0删除 1取消 2确认收货
const {push} = useRouter()
const modalTitle = computed(() => {
const tipsArr = ['确认删除订单吗?', '确认取消订单吗?', '确认要确认收货吗?', "确认取消订单吗?"]
return tipsArr[modalType.value]
})
const MODAL_TYPE = {
DELETE: 0, // 删除
CANCEL: 1, // 撤销
CONFIRM: 2, // 确认收货
CANCEL_CHECK: 3 // 核销订单取消
}
/**
* 打开弹窗
* @param {number} type 0删除记录 1撤销申请 2确认收货
*/
function showModal(type) {
modalType.value = type
unref(modalRef).show()
}
/**
* 确认取消订单
* @returns {Promise<void>}
*/
async function cancelOrder(item) {
return new Promise((resolve, reject) => {
orderCancel({
id: item.orderId
}).then(res => {
toast({title: '已取消'});
resolve()
})
})
}
/**
* 确认删除订单
* @returns {Promise<void>}
*/
function deleteOrder(item) {
return new Promise((resolve, reject) => {
orderDelete({
uni: item.orderId
}).then(res => {
toast({title: '删除成功'});
resolve()
})
})
}
/**
* 去评价
*/
const toEvaluate = (unique, orderId, isRedirectTo) => {
let config = {
data: {
unique: unique,
orderId: orderId
}
}
if (isRedirectTo) {
config.type = 'redirectTo'
}
push({url: '/pages/evaluate/evaluate'}, config)
}
/**
* 申请退款
*/
const toSelectRefundGood = (id) => {
push({url: '/pages/selectRefundGood/selectRefundGood'}, {
data: {
id: id
}
})
}
/**
* 微信确认收货弹窗
* @param params
* @returns {Promise<void>}
*/
const showWsReceipt = (transactionId) => {
return new Promise((resolve, reject) => {
// // #ifdef MP-WEIXIN
// //拉起确认收货组件
// if (wx.openBusinessView) {
// wx.openBusinessView({
// businessType: 'weappOrderConfirm',
// extraData: {
// // merchant_id: '',//用户交易商户号
// // merchant_trade_no: "",//商户订单号
// transaction_id: transactionId //用户交易单号
// },
// success: (e) => {
// resolve('success');
// }, fail: e => {
// resolve('success');
// }
// });
//
// } else {
// //引导用户升级微信版本
// uni.showToast({
// title: "请升级微信版本",
// duration: 3000,
// icon: "none",
// });
// }
//
//
// // #endif
// // #ifndef MP-WEIXIN
// resolve('success');
// // #endif
resolve('success');
})
}
const checkOffCode = (offCode) => {
checkOffCodeRef.value.open(offCode)
}
return {
MODAL_TYPE,
modalRef,
checkOffCodeRef,
modalType,
modalTitle,
showModal,
cancelOrder,
deleteOrder,
toEvaluate,
toSelectRefundGood,
showWsReceipt,
checkOffCode
}
}