import { useState } from 'react'; import { Button, Card, Col, Form, Input, InputNumber, Row, Space, Tabs, Typography, message, } from 'antd'; import { MOCK_SMS_FIXED_CODE } from '@dukang/shared-types'; import { request } from '../lib/api'; type ApiResult = Record; function ResultBox({ data }: { data: ApiResult | null }) { if (!data) return 调用后在此显示结果; return (
      {JSON.stringify(data, null, 2)}
    
); } export default function RedeemDebugPage() { const [createForm] = Form.useForm(); const [previewForm] = Form.useForm(); const [confirmForm] = Form.useForm(); const [phoneLookupForm] = Form.useForm(); const [phoneBalanceForm] = Form.useForm(); const [phonePrepareForm] = Form.useForm(); const [phoneConfirmForm] = Form.useForm(); const [loading, setLoading] = useState(false); const [createResult, setCreateResult] = useState(null); const [previewResult, setPreviewResult] = useState(null); const [confirmResult, setConfirmResult] = useState(null); const [phoneLookupResult, setPhoneLookupResult] = useState(null); const [phoneBalanceResult, setPhoneBalanceResult] = useState(null); const [phonePrepareResult, setPhonePrepareResult] = useState(null); const [phoneConfirmResult, setPhoneConfirmResult] = useState(null); async function invoke( path: string, body: unknown, setResult: (v: ApiResult | null) => void, successMsg: string, onSuccess?: (res: ApiResult) => void, ) { setLoading(true); setResult(null); try { const res = await request(path, { method: 'POST', body: JSON.stringify(body), }); setResult(res); message.success(successMsg); onSuccess?.(res); if (path.includes('create-token') && res.token) { previewForm.setFieldsValue({ token: res.token }); confirmForm.setFieldsValue({ token: res.token }); } if (path.includes('phone/balance') && res.sessionId) { phonePrepareForm.setFieldsValue({ storeId: phoneBalanceForm.getFieldValue('storeId'), sessionId: res.sessionId, }); phoneConfirmForm.setFieldsValue({ storeId: phoneBalanceForm.getFieldValue('storeId'), sessionId: res.sessionId, }); } } catch (e) { message.error(e instanceof Error ? e.message : '调用失败'); } finally { setLoading(false); } } const tokenTabItems = [ { key: 'create', label: '1. 生成核销码', children: (
), }, { key: 'preview', label: '2. 预览核销', children: (
), }, { key: 'confirm', label: '3. 确认核销', children: (
), }, ]; const phoneTabItems = [ { key: 'phone-lookup', label: '1. 发送查权益验证码', children: (
), }, { key: 'phone-balance', label: '2. 验证并查权益', children: (
), }, { key: 'phone-prepare', label: '3. 发送核销确认码', children: (
), }, { key: 'phone-confirm', label: '4. 确认核销', children: (
), }, ]; return (
核销调试 , }, { key: 'phone', label: '手机号核销', children: , }, ]} />
); }