import { Button, Cell, CellGroup, Field, Popup, Radio, RadioGroup, showToast } from 'vant'; import { defineComponent, reactive } from 'vue'; import styles from './item.module.less'; import icon_order from '../image/icon_order.svg'; import { api_userPaymentOrderCancelPayment, api_userPaymentOrderDetail, api_userPaymentOrderRefundPayment, api_userPaymentOrderUnpaid, type_OrderTypes } from '../api'; import { postMessage } from '@/helpers/native-message'; import { state } from '@/state'; export default defineComponent({ name: 'collection-record-item', props: { item: { type: Object, default: () => ({}) } }, emits: ['refund', 'close'], setup(props, { emit }) { const data = reactive({ open: false, order: {} as any, confirmLoading: false, cancelOrderLoading: false }); const forms = reactive({ refundReason: '', refundReasonDes: '' }); const handleOpenDetail = () => { if (props.item?.orderNo) { const url = `${location.origin}${ location.pathname }#/collection-record-detail?orderNo=${props.item?.orderNo}${ props.item.isRefund ? '&userRefundOrderId=' + props.item.userRefundOrderId : '' }`; console.log('🚀 ~ url:', url); postMessage({ api: 'openWebView', content: { url, orientation: 1, isHideTitle: false } }); } }; const getDetails = async (item: any) => { if (!item.orderNo) return; const res = await api_userPaymentOrderDetail(item.orderNo); if (res?.code === 200) { data.order = res.data; } }; /** 申请退款 */ const handleCancel = async () => { await api_userPaymentOrderRefundPayment({ merOrderNo: data.order.orderNo, serviceCharge: true, paymentClient: 'STUDENT', userId: state.user?.data?.id, refundReason: forms.refundReason === '其他原因' ? forms.refundReasonDes : forms.refundReason, userPaymentOrderId: data.order.id, userRefundOrderDetails: data.order.goodsInfos ? data.order.goodsInfos .filter((n: any) => n.goodsType !== 'VIP') .map((goods: any) => ({ userPaymentOrderDetailId: goods.id, num: goods.goodsNum })) : [] }); showToast('申请退款成功'); data.open = false; emit('close'); emit('refund'); }; /** 继续支付 */ const onConfirmOrder = async () => { console.log(props.item); data.confirmLoading = true; const res = await api_userPaymentOrderUnpaid({ orderNo: props.item.orderNo, paymentType: props.item.orderType }); data.confirmLoading = false; if (res?.code === 200) { const paymentConfig = res.data.paymentConfig; const url = location.origin + location.pathname + '#/order-detail?orderNo=' + paymentConfig.orderNo + '&config=' + encodeURIComponent(JSON.stringify(paymentConfig.paymentConfig)); console.log('🚀 ~ url:', url); postMessage({ api: 'openWebView', content: { url, orientation: 1, isHideTitle: false } }); } }; /** 取消订单 */ const handleCancelOrder = async () => { data.cancelOrderLoading = true; try { await api_userPaymentOrderCancelPayment(props.item.orderNo); setTimeout(() => { showToast('取消成功'); emit('close'); }, 100); } catch { // } data.cancelOrderLoading = false; }; return () => (