# 删除确认弹窗迁移文档 ## 已完成修改的文件 1. ✅ `/components/machinery/driver/DriverList.tsx` - 驾驶员列表删除 2. ✅ `/components/machinery/MachineryList.tsx` - 农机列表删除 3. ✅ `/components/machinery/TagManagement.tsx` - 标签管理删除 ## 待修改的文件列表 ### 农机管理模块 4. `/components/machinery/scheduling/TaskAssignment.tsx` - 任务删除 5. `/components/machinery/security/GeoFence.tsx` - 围栏删除 6. `/components/machinery/load/LoadDevice.tsx` - 设备拆卸 7. `/components/machinery/load/LoadType.tsx` - 设备类型删除 8. `/components/machinery/MaintenanceRecords.tsx` - 维护记录删除 9. `/components/machinery/ChangeHistoryExamples.tsx` - 变更历史清除 ### 配置管理模块 10. `/components/config/MenuManagement.tsx` - 菜单删除 11. `/components/config/RoleManagement.tsx` - 角色删除 12. `/components/config/EmployeeManagement.tsx` - 员工删除和密码重置 13. `/components/config/UserManagement.tsx` - 用户删除和密码重置 14. `/components/config/PermissionManagement.tsx` - 权限删除 15. `/components/config/MessageSend.tsx` - 消息取消和删除 ### 地块管理模块 16. `/components/field/FieldList.tsx` - 地块删除 ## 修改模式 ### 1. 导入 AlertDialog 组件 ```typescript import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../ui/alert-dialog'; ``` ### 2. 添加状态管理 ```typescript const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [deletingId, setDeletingId] = useState(''); const handleDeleteClick = (id: string) => { setDeletingId(id); setDeleteDialogOpen(true); }; const confirmDelete = () => { onDelete(deletingId); // 或具体的删除逻辑 setDeleteDialogOpen(false); setDeletingId(''); }; ``` ### 3. 替换 confirm 调用 ```typescript // 旧代码 if (confirm('确定要删除吗?')) { onDelete(id); } // 新代码 onClick={() => handleDeleteClick(id)} ``` ### 4. 添加 AlertDialog 组件 ```tsx 确认删除 确定要删除这条记录吗?此操作无法撤销。 取消 删除 ``` ## 注意事项 1. 确保导入路径正确(`../ui/alert-dialog` 或 `../../ui/alert-dialog`) 2. 对于需要传递额外参数的删除操作,使用 state 保存 3. 对于有多个删除操作的页面,可能需要多个 state 或使用对象/类型区分 4. 确保 AlertDialog 放在正确的位置(通常在主容器的末尾)