'use client'; import { useState, useEffect } from 'react'; import api from '@/lib/api'; import { Loader2, X, AlertTriangle } from 'lucide-react'; interface TicketModalProps { isOpen: boolean; onClose: () => void; onSuccess?: () => void; // 新增:成功回调,用于刷新列表 defaultOrderId?: string; } export default function TicketModal({ isOpen, onClose, onSuccess, defaultOrderId = '' }: TicketModalProps) { const [loading, setLoading] = useState(false); const [errorMsg, setErrorMsg] = useState(''); const [form, setForm] = useState({ order_id: '', type: 'refund', // 对应 API Enum: refund | dispute | change_request reason: '' }); // 初始化 useEffect(() => { if (isOpen) { setForm({ order_id: defaultOrderId || '', type: 'refund', reason: '' }); setErrorMsg(''); } }, [isOpen, defaultOrderId]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setErrorMsg(''); try { // API: /api/vas/ticket/create await api.post('/api/vas/ticket/create', form); // 成功处理 if (onSuccess) onSuccess(); // 触发父组件刷新 onClose(); } catch (error: any) { console.error(error); const msg = error.response?.data?.message || '提交失败,请稍后重试'; setErrorMsg(msg); } finally { setLoading(false); } }; if (!isOpen) return null; return (
{/* Header */}

提交工单

{errorMsg && (
{errorMsg}
)}
setForm({ ...form, order_id: e.target.value })} placeholder="请输入相关的订单编号" />