6.1 KiB
删除确认弹窗更新总结
✅ 已完成更新的文件(共6个)
1. /components/machinery/driver/DriverList.tsx
- 修改内容: 驾驶员列表删除确认
- 状态: ✅ 完成
- 更改: 将
confirm()替换为 AlertDialog 组件
2. /components/machinery/MachineryList.tsx
- 修改内容: 农机列表删除确认
- 状态: ✅ 完成
- 更改: 将
confirm()替换为 AlertDialog 组件
3. /components/machinery/TagManagement.tsx
- 修改内容: 标签管理删除确认
- 状态: ✅ 完成
- 更改: 将
confirm()替换为 AlertDialog 组件
4. /components/field/FieldList.tsx
- 修改内容: 地块列表删除确认
- 状态: ✅ 完成
- 更改: 将
confirm()替换为 AlertDialog 组件
5. /components/machinery/driver/DriverTask.tsx 🆕
- 修改内容: 驾驶员任务管理操作确认(接收/取消/完成/终止)
- 状态: ✅ 完成
- 更改:
- 接收任务:从无确认 → AlertDialog 确认(绿色)
- 取消任务:从
confirm()→ AlertDialog 确认(红色) - 完成任务:从无确认 → AlertDialog 确认(紫色)
- 终止任务:从无确认 → AlertDialog 确认(橙色)🆕
- 新增"已终止"任务状态 🆕
- 添加任务列表分页功能 🆕
- 详细说明:
/TASK_ALERT_DIALOG_UPDATE.md和/TASK_TERMINATE_UPDATE.md
⚠️ 待更新的文件(共11个)
由于文件数量较多,建议分批处理。以下是剩余需要更新的文件列表:
农机管理模块(5个)
-
/components/machinery/scheduling/TaskAssignment.tsx- 行号: 132
- 内容:
if (confirm('确定要删除此任务吗?'))
-
/components/machinery/security/GeoFence.tsx- 行号: 136
- 内容:
if (confirm('确定要删除此围栏吗?'))
-
/components/machinery/load/LoadDevice.tsx- 行号: 267
- 内容:
if (confirm('确定要拆卸此设备吗?'))
-
/components/machinery/load/LoadType.tsx- 行号: 257
- 内容:
if (confirm('确定要删除此设备类型吗?'))
-
/components/machinery/MaintenanceRecords.tsx- 行号: 115
- 内容:
if (confirm('确定要删除这条维护记录吗?'))
-
/components/machinery/ChangeHistoryExamples.tsx- 行号: 48
- 内容:
if (confirm('确定要清除所有变更历史示例数据吗?'))
配置管理模块(6个)
-
/components/config/MenuManagement.tsx- 行号: 414
- 内容:
if (!confirm(\确定要删除菜单"${menu.name}"吗?`))`
-
/components/config/RoleManagement.tsx- 行号: 494
- 内容:
if (!confirm('确定要删除该角色吗?'))
-
/components/config/EmployeeManagement.tsx- 行号: 184, 205
- 内容:
if (!confirm('确定要删除该员工吗?'))if (!confirm(\确定要重置 ${employee.name} 的密码吗?`))`
-
/components/config/UserManagement.tsx- 行号: 189, 210
- 内容:
if (!confirm('确定要删除该用户吗?'))if (!confirm(\确定要重置 ${user.name} 的密码吗?`))`
-
/components/config/PermissionManagement.tsx- 行号: 337
- 内容:
if (!confirm("确定要删除该权限吗?"))
-
/components/config/MessageSend.tsx- 行号: 274, 284
- 内容:
if (!confirm('确定要取消该定时消息吗?'))if (!confirm('确定要删除该发送记录吗?'))
📝 更新模板
每个文件需要进行以下4个步骤的修改:
步骤1: 导入 AlertDialog 组件
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
} from '../ui/alert-dialog'; // 或 '../../ui/alert-dialog'
步骤2: 添加状态管理
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
const [deletingId, setDeletingId] = useState<string>('');
const handleDeleteClick = (id: string) => {
setDeletingId(id);
setDeleteDialogOpen(true);
};
const confirmDelete = () => {
// 原来的删除逻辑
onDelete(deletingId);
setDeleteDialogOpen(false);
setDeletingId('');
};
步骤3: 替换 onClick 事件
// 旧代码
onClick={() => {
if (confirm('确定要删除吗?')) {
handleDelete(id);
}
}}
// 新代码
onClick={() => handleDeleteClick(id)}
步骤4: 添加 AlertDialog 组件
<AlertDialog open={deleteDialogOpen} onOpenChange={setDeleteDialogOpen}>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>确认删除</AlertDialogTitle>
<AlertDialogDescription>
确定要删除这条记录吗?此操作无法撤销。
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>取消</AlertDialogCancel>
<AlertDialogAction
className="bg-red-600 hover:bg-red-700"
onClick={confirmDelete}
>
删除
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
🎯 下一步操作建议
-
优先级1(用户交互频繁):
- TaskAssignment.tsx
- LoadDevice.tsx
- MaintenanceRecords.tsx
-
优先级2(管理功能):
- RoleManagement.tsx
- UserManagement.tsx
- EmployeeManagement.tsx
-
优先级3(其他):
- 剩余文件
🔍 验证清单
更新完成后,请验证:
- AlertDialog 样式显示正常
- 取消按钮功能正常
- 删除按钮功能正常
- 删除操作执行成功
- Toast 提示显示正常
- 没有控制台错误
💡 注意事项
-
多操作场景: 有些文件(如 EmployeeManagement、UserManagement、MessageSend)有多个 confirm 操作,需要:
- 区分不同操作类型(删除、重置密码、取消等)
- 可以使用不同的状态变量或操作类型标识
-
特殊提示语: 保持原有的个性化提示信息(如包含名称、数量等动态内容)
-
样式一致性: 所有删除类操作使用红色按钮(
bg-red-600 hover:bg-red-700) -
对话框位置: AlertDialog 组件通常放在主容器的末尾,return 语句的最后部分