import { api } from '@nice/client'; import { Button, Input, Pagination, Space, Modal, Form, message, Switch } from 'antd'; import { SearchOutlined, EditOutlined, DeleteOutlined, PlusOutlined } from '@ant-design/icons'; import React, { useState, useRef, useEffect } from 'react'; // 定义 Staff 接口 interface Staff { id: string; username: string; showname: string; absent: boolean; // trainSituations: TrainSituation[]; } interface PaginatedResponse { items: Staff[]; total: number; } const TestPage: React.FC = () => { const [currentPage, setCurrentPage] = useState(1); const [searchText, setSearchText] = useState(''); const [isModalVisible, setIsModalVisible] = useState(false); const [editingStaff, setEditingStaff] = useState(null); const [form] = Form.useForm(); const pageSize = 10; // 修改查询逻辑 const { data, isLoading, refetch } = api.staff.findManyWithPagination.useQuery({ page: currentPage, pageSize: pageSize, where: { deletedAt: null, OR: searchText ? [ { username: { contains: searchText } }, { showname: { contains: searchText } } ] : undefined }, select: { id: true, username: true, showname: true, absent: true, } }, { // 移除 enabled 控制 refetchOnWindowFocus: false, keepPreviousData: true, }); // 删除方法 const deleteMutation = api.staff.softDeleteByIds.useMutation({ onSuccess: () => { message.success('删除成功'); refetch(); }, onError: (error) => { message.error('删除失败:' + error.message); } }); // 更新方法 const updateMutation = api.staff.update.useMutation({ onSuccess: () => { message.success('更新成功'); setIsModalVisible(false); refetch(); } }); // 创建方法 const createMutation = api.staff.create.useMutation({ onSuccess: () => { message.success('创建成功'); setIsModalVisible(false); refetch(); } }); // 修改搜索处理函数 const handleSearch = () => { setCurrentPage(1); refetch(); }; // 修改分页处理 const handlePageChange = (page: number) => { setCurrentPage(page); refetch(); }; useEffect(() => { // 组件首次加载时执行查询 refetch(); }, []); // 处理删除的函数 const handleDelete = async (id: string) => { Modal.confirm({ title: '确认删除', content: '确定要删除这条记录吗?', onOk: async () => { try { await deleteMutation.mutateAsync({ ids: [id], data: {} // 添加空的 data 对象 }); } catch (error) { console.error('删除失败:', error); } } }); }; const handleEdit = (staff: Staff) => { setEditingStaff(staff); form.setFieldsValue(staff); setIsModalVisible(true); }; const handleAdd = () => { setEditingStaff(null); form.resetFields(); setIsModalVisible(true); }; const handleModalOk = () => { form.validateFields().then(values => { if (editingStaff) { updateMutation.mutate({ where: { id: editingStaff.id }, data: values }); } else { createMutation.mutate({ data: values }); } }); }; return (

培训情况记录

{/* 搜索和添加按钮 */}
setSearchText(e.target.value)} onPressEnter={handleSearch} prefix={} />
{/* 修改表格,添加操作列 */}
{(data?.items || []).map((staff) => ( ))}
用户名 名称 是否在位 操作
{staff.username} {staff.showname} {staff.absent ? '在位' : '不在位'}
{/* 编辑/添加模态框 */} setIsModalVisible(false)} >
`共 ${total} 条记录`} showSizeChanger={false} showQuickJumper />
); }; export default TestPage;