import React, { useState } from 'react'; import { useParams } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { Card, Row, Col, Tag, Typography, Select, Space, Badge, Descriptions, Empty, List, Drawer, Button, Form, Input, InputNumber, DatePicker, Divider, Segmented, } from 'antd'; import { FileImageOutlined, CheckCircleOutlined, LoadingOutlined, CloseCircleOutlined, EditOutlined, ZoomInOutlined, } from '@ant-design/icons'; import type { EvidenceImage, SourceApp, PageType } from '../../types'; import { fetchImages } from '../../services/api'; const appLabel: Record = { wechat: { label: '微信', color: 'green' }, alipay: { label: '支付宝', color: 'blue' }, bank: { label: '银行', color: 'purple' }, digital_wallet: { label: '数字钱包', color: 'orange' }, other: { label: '其他', color: 'default' }, }; const pageTypeLabel: Record = { bill_list: '账单列表', bill_detail: '账单详情', transfer_receipt: '转账凭证', sms_notice: '短信通知', balance: '余额页', unknown: '未识别', }; const ocrStatusIcon: Record = { done: , processing: , failed: , pending: , }; const Screenshots: React.FC = () => { const { id = '1' } = useParams(); const [filterApp, setFilterApp] = useState('all'); const [selectedImage, setSelectedImage] = useState(null); const [drawerOpen, setDrawerOpen] = useState(false); const { data: allImages = [] } = useQuery({ queryKey: ['images', id], queryFn: () => fetchImages(id), }); const filtered = filterApp === 'all' ? allImages : allImages.filter((img: EvidenceImage) => img.sourceApp === filterApp); const appCounts = allImages.reduce>((acc, img: EvidenceImage) => { acc[img.sourceApp] = (acc[img.sourceApp] || 0) + 1; return acc; }, {}); const handleSelect = (img: EvidenceImage) => { setSelectedImage(img); setDrawerOpen(true); }; const mockOcrFields = [ { label: '交易时间', value: '2026-03-06 10:25:00', confidence: 0.97 }, { label: '交易金额', value: '¥50,000.00', confidence: 0.99 }, { label: '交易方向', value: '支出', confidence: 0.95 }, { label: '对方账户', value: '李*华 (138****5678)', confidence: 0.88 }, { label: '订单号', value: 'AL20260306002', confidence: 0.96 }, { label: '备注', value: '投资款', confidence: 0.92 }, ]; return (
截图管理 {allImages.length} 张 } extra={