'use client'; import { useState, useEffect } from 'react'; import api from '@/lib/api'; import { Loader2, X, AlertTriangle } from 'lucide-react'; // 1. 引入 Hook import { useLanguage } from '@/lib/i18n/LanguageContext'; interface TicketModalProps { isOpen: boolean; onClose: () => void; onSuccess?: () => void; defaultOrderId?: string; } export default function TicketModal({ isOpen, onClose, onSuccess, defaultOrderId = '' }: TicketModalProps) { // 2. 获取翻译函数 const { t } = useLanguage(); const [loading, setLoading] = useState(false); const [errorMsg, setErrorMsg] = useState(''); const [form, setForm] = useState({ order_id: '', type: 'refund', 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 { await api.post('/api/vas/ticket/create', form); if (onSuccess) onSuccess(); onClose(); } catch (error: any) { console.error(error); const msg = error.response?.data?.message || t('ticket.submit_error_default'); setErrorMsg(msg); } finally { setLoading(false); } }; if (!isOpen) return null; return (
{/* Header */}

{t('ticket.submit_modal_title')}

{errorMsg && (
{errorMsg}
)}
setForm({ ...form, order_id: e.target.value })} placeholder={t('ticket.order_id_placeholder')} />