# 🔄 数据重置功能使用指南 ## 📅 更新时间 2025-10-16 ## 🎯 问题说明 当修改了示例数据(如将第7条任务状态改为"已取消")后,如果浏览器 localStorage 中已经保存了旧数据,页面不会自动显示新的示例数据。 ### 为什么看不到变化? ```typescript // 数据加载逻辑 const tasksData = localStorage.getItem('smart_agriculture_driver_tasks'); if (tasksData) { // ❌ 如果 localStorage 有数据,直接加载旧数据 setTasks(JSON.parse(tasksData)); } else { // ✅ 只有 localStorage 为空时,才加载新的示例数据 setTasks(mockTasks); } ``` **原因**: - localStorage 保存了旧的任务数据 - 代码优先从 localStorage 加载,不会重新加载示例数据 - 需要清除 localStorage 才能看到新数据 ## ✨ 解决方案 ### 方案1: 使用重置按钮(推荐)⭐ 我已经在驾驶员任务管理页面添加了"重置示例数据"按钮! #### 使用步骤: ``` 1️⃣ 进入"驾驶员任务管理"页面 2️⃣ 点击右上角"重置示例数据"按钮 3️⃣ 页面自动刷新,显示最新示例数据 ``` #### 按钮位置: ``` ┌────────────────────────────────────────────────┐ │ 驾驶员任务管理 [重置示例数据] [创建任务] │ │ 创建、分配和跟踪驾驶员作业任务 ↑ ↑ │ │ 新增按钮 原有按钮 │ └────────────────────────────────────────────────┘ ``` #### 功能说明: ```typescript const handleResetData = () => { // 1. 清除 localStorage 中的任务数据 localStorage.removeItem('smart_agriculture_driver_tasks'); // 2. 重新加载数据(会加载最新示例数据) loadData(); // 3. 显示成功提示 toast.success('示例数据已重置'); }; ``` **效果**: - ✅ 一键清除旧数据 - ✅ 自动加载新示例数据 - ✅ 显示成功提示 - ✅ 立即看到更新 ### 方案2: 浏览器控制台 如果你想手动清除数据: #### 步骤: 1. **打开浏览器开发者工具** - Windows: `F12` 或 `Ctrl + Shift + I` - Mac: `Cmd + Option + I` 2. **切换到 Console 标签** 3. **执行清除命令** ```javascript localStorage.removeItem('smart_agriculture_driver_tasks'); ``` 4. **刷新页面** - `F5` 或 `Ctrl + R` #### 效果: ``` Before: 显示旧数据(task-7 状态为"进行中") After: 显示新数据(task-7 状态为"已取消") ``` ### 方案3: 清除所有 localStorage **警告**: 这会清除所有保存的数据! ```javascript // 清除所有 localStorage 数据 localStorage.clear(); ``` **影响范围**: - ❌ 任务数据 - ❌ 驾驶员数据 - ❌ 农机数据 - ❌ 地块数据 - ❌ 用户登录状态 - ❌ 所有其他保存的数据 **不推荐**,除非你想完全重置系统。 ## 📊 第7条任务更新详情 ### 修改内容 | 字段 | 修改前 | 修改后 | |------|--------|--------| | 状态 | 进行中 | **已取消** | | 注释 | 进行中任务(有问题上报) | **已取消任务(有问题上报)** | ### 任务信息 ```typescript { id: 'task-7', taskNumber: 'T202510160007', driverName: '周九', machineryName: '约翰迪尔拖拉机', fieldName: '南七地块', operationType: '灌溉', description: '滴灌作业,确保灌溉均匀', status: '已取消', // ← 已更新 issues: [ { type: '设备故障', description: '滴灌管道出现破损,需要更换' } ] } ``` ### 预期显示 重置数据后,第7条任务应该显示: ``` ┌────────────────────────────────────────────────────┐ │ T202510160007 │ 周九 │ 约翰迪尔拖拉机 │ 南七地块 │ │ 灌溉 │ 10-16 06:00 │ - │ 中 🟡 │ │ 已取消 🔴 │ ⚠️ 1个待处理问题 │ └────────────────────────────────────────────────────┘ ``` **状态徽章**: ```tsx 已取消 ``` ## 🎯 使用场景对比 ### 场景1: 查看示例数据更新 **目标**: 查看第7条任务状态已改为"已取消" **操作**: ``` 1. 点击"重置示例数据"按钮 2. 查看任务列表第7条 3. 确认状态显示为"已取消" 🔴 ``` **优势**: - ✅ 快速简单 - ✅ 一键操作 - ✅ 有成功提示 - ✅ 不影响其他数据 ### 场景2: 开发测试 **目标**: 反复测试功能,需要重置数据 **操作**: ``` 1. 进行各种操作(创建、修改任务) 2. 想要恢复到初始状态 3. 点击"重置示例数据" 4. 数据恢复到示例状态 ``` **优势**: - ✅ 快速恢复初始状态 - ✅ 无需刷新页面 - ✅ 立即生效 - ✅ 保留其他数据 ### 场景3: 演示展示 **目标**: 向他人展示系统,需要干净的示例数据 **操作**: ``` 1. 演示前点击"重置示例数据" 2. 获得完整的示例数据 3. 开始演示 ``` **优势**: - ✅ 数据完整规范 - ✅ 展示效果好 - ✅ 各种状态都有 - ✅ 包含问题示例 ## 📁 修改文件 ### 核心文件 1. ✅ `/components/machinery/driver/DriverTask.tsx` - 新增 `handleResetData()` 函数 - 在页面顶部添加"重置示例数据"按钮 ### 代码变更 ```typescript // 新增重置函数 const handleResetData = () => { localStorage.removeItem('smart_agriculture_driver_tasks'); loadData(); toast.success('示例数据已重置'); }; // 新增按钮
``` ## 💡 最佳实践 ### 1. 何时使用重置功能 **适合使用**: - ✅ 代码更新了示例数据 - ✅ 数据测试后想恢复 - ✅ 演示前准备 - ✅ 学习系统功能 **不需要使用**: - ❌ 正常创建/修改任务 - ❌ 日常使用系统 - ❌ 数据没有问题时 ### 2. 数据安全提示 **重置功能只影响**: - ✅ 驾驶员任务数据 - ✅ localStorage 中的任务列表 **不影响**: - ✅ 驾驶员档案 - ✅ 农机档案 - ✅ 地块信息 - ✅ 其他系统数据 ### 3. 重置后的数据 重置后会加载完整的示例数据,包含: | 状态类型 | 数量 | 说明 | |---------|------|------| | 待接收 | 3条 | 展示任务分配流程 | | 已接收 | 1条 | 展示接收状态 | | 进行中 | 2条 | 展示执行状态 | | 已取消 | 3条 | 展示取消场景(包含task-7)| | 已完成 | 3条 | 展示完成记录 | **特殊示例**: - ✅ task-7: 已取消 + 设备故障问题 - ✅ task-11: 已取消 + 天气问题 - ✅ task-12: 已取消 + 地块问题 ## 🐛 常见问题 ### Q1: 点击重置按钮后没有变化? **A**: 检查以下几点: 1. **刷新页面** ``` 按 F5 或 Ctrl+R 刷新 ``` 2. **检查控制台** ``` 打开 F12,查看是否有错误 ``` 3. **确认 localStorage 已清除** ```javascript // 在控制台检查 localStorage.getItem('smart_agriculture_driver_tasks') // 应该返回 null ``` ### Q2: 重置后数据还是旧的? **A**: 可能是缓存问题: 1. **硬刷新页面** ``` Ctrl + Shift + R (Windows) Cmd + Shift + R (Mac) ``` 2. **清除���览器缓存** ``` 设置 → 隐私和安全 → 清除浏览数据 ``` ### Q3: 重置会丢失我创建的任务吗? **A**: 是的!重置会清除所有任务数据。 **解决方案**: - 重置前导出重要数据 - 或者不使用重置功能 - 手动修改需要的任务 ### Q4: 能否只重置某一条数据? **A**: 当前重置功能会清除所有任务数据。 **替代方案**: - 在任务列表中找到 task-7 - 手动编辑状态改为"已取消" - 或者使用浏览器开发工具手动修改 localStorage ### Q5: 其他页面有重置功能吗? **A**: 目前只在驾驶员任务管理页面添加了重置功能。 **其他数据重置**: ```javascript // 驾驶员数据 localStorage.removeItem('smart_agriculture_drivers'); // 农机数据 localStorage.removeItem('smart_agriculture_machinery'); // 地块数据 localStorage.removeItem('smart_agriculture_fields'); ``` ## ✅ 验证清单 ### 功能验证 - [x] "重置示例数据"按钮正常显示 - [x] 点击按钮后清除 localStorage - [x] 自动加载新示例数据 - [x] 显示成功提示消息 - [x] 任务列表立即更新 ### 数据验证 - [x] task-7 状态显示为"已取消" - [x] 状态徽章颜色为红色 - [x] 包含设备故障问题 - [x] 其他任务数据完整 - [x] 总共12条示例数据 ### 视觉验证 - [x] 按钮位于页面右上角 - [x] 使用 outline 样式 - [x] 尺寸为 sm - [x] 与"创建任务"按钮对齐 - [x] 间距合适 ## 🎉 总结 现在你有两种方式查看第7条任务的更新: ### 推荐方式 ⭐ ``` 1. 进入"驾驶员任务管理"页面 2. 点击右上角"重置示例数据"按钮 3. 立即看到 task-7 状态为"已取消" 🔴 ``` ### 手动方式 ``` 1. 打开浏览器控制台 (F12) 2. 执行: localStorage.removeItem('smart_agriculture_driver_tasks') 3. 刷新页面 (F5) ``` **第7条任务更新内容**: - ✅ 状态: 进行中 → **已取消** - ✅ 原因: 设备故障(滴灌管道破损) - ✅ 徽章: 🔴 红色"已取消" - ✅ 问题: ⚠️ 1个待处理问题 现在点击"重置示例数据"按钮,就能看到更新后的第7条任务了!🎊 --- **更新人**: AI助手 **更新日期**: 2025-10-16 **版本**: v1.0 **影响范围**: 驾驶员任务管理页面