生产管理系统前端 - 更新瓦力提交的产品原型到参考目录
This commit is contained in:
186
src/CREATE_ROUTE_FIX.md
Normal file
186
src/CREATE_ROUTE_FIX.md
Normal file
@@ -0,0 +1,186 @@
|
||||
# ✅ 修复"新建规划"按钮无操作问题
|
||||
|
||||
## 🐛 问题描述
|
||||
|
||||
**症状**: 点击"新建规划"按钮无任何反应
|
||||
|
||||
**原因**: 在之前的代码修改中,`createNewRoute` 函数被意外删除
|
||||
|
||||
---
|
||||
|
||||
## 🔧 修复内容
|
||||
|
||||
### 1️⃣ **重新添加 createNewRoute 函数**
|
||||
|
||||
```typescript
|
||||
// 创建新路线 - 直接创建,在地图区域选择地块
|
||||
const createNewRoute = () => {
|
||||
if (hasUnsavedChanges) {
|
||||
toast.error('当前路线有未保存的更改,请先保存');
|
||||
return;
|
||||
}
|
||||
|
||||
// 直接创建空路线,不弹窗
|
||||
const newRoute: RoutePlan = {
|
||||
id: `route-${Date.now()}`,
|
||||
name: `路线规划${routes.length + 1}`,
|
||||
fieldId: undefined, // 未关联地块
|
||||
fieldName: undefined, // 未关联地块
|
||||
fieldBoundary: [], // 空边界
|
||||
obstacles: [],
|
||||
workingLines: [],
|
||||
params: routeParams,
|
||||
stats: {
|
||||
totalRows: 0,
|
||||
totalDistance: 0,
|
||||
workingArea: 0,
|
||||
estimatedTime: 0,
|
||||
fuelEstimate: 0,
|
||||
efficiency: 0,
|
||||
},
|
||||
createdAt: new Date().toISOString(),
|
||||
status: 'draft',
|
||||
};
|
||||
|
||||
setRoutes([...routes, newRoute]);
|
||||
setSelectedRoute(newRoute);
|
||||
toast.success('新建路线规划成功,请在地图区域选择关联地块');
|
||||
};
|
||||
```
|
||||
|
||||
### 2️⃣ **函数位置**
|
||||
|
||||
将函数添加在 `drawMap()` 函数之前,在 `useEffect` hooks 之后。
|
||||
|
||||
---
|
||||
|
||||
## ✅ 修复后的行为
|
||||
|
||||
### 点击"新建规划"按钮后
|
||||
|
||||
1. ✅ 检查是否有未保存的更改
|
||||
2. ✅ 创建新路线对象
|
||||
3. ✅ 添加到路线列表
|
||||
4. ✅ 自动选中新路线
|
||||
5. ✅ 显示Toast提示
|
||||
6. ✅ 显示地块选择卡片
|
||||
|
||||
### Toast 提示
|
||||
|
||||
```
|
||||
✅ "新建路线规划成功,请在地图区域选择关联地块"
|
||||
```
|
||||
|
||||
### 路线列表显示
|
||||
|
||||
```
|
||||
┌─────────────────────────────────┐
|
||||
│ 路线列表 │
|
||||
├─────────────────────────────────┤
|
||||
│ ● 路线规划1 [草稿] │
|
||||
│ 0行 · 0km │
|
||||
│ [编辑] [删除] │
|
||||
└─────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 地图区域显示
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ 📍 关联地块 │
|
||||
├─────────────────────────────────────┤
|
||||
│ ⚠️ 该路线未关联地块,请选择地块 │
|
||||
│ 作业路线规划必须关联地块信息 │
|
||||
│ │
|
||||
│ [请选择地块 ▼] │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试步骤
|
||||
|
||||
### 测试1: 正常创建
|
||||
|
||||
```
|
||||
1. 点击"新建规划"按钮
|
||||
✅ 应该创建新路线
|
||||
|
||||
2. 检查路线列表
|
||||
✅ 应该显示"路线规划1"
|
||||
|
||||
3. 检查Toast提示
|
||||
✅ 应该显示"新建路线规划成功,请在地图区域选择关联地块"
|
||||
|
||||
4. 检查地图区域
|
||||
✅ 应该显示"关联地块"卡片
|
||||
✅ 应该显示橙色警告提示
|
||||
```
|
||||
|
||||
### 测试2: 有未保存更改时创建
|
||||
|
||||
```
|
||||
1. 选择一个路线并修改
|
||||
✅ 显示"未保存"标识
|
||||
|
||||
2. 点击"新建规划"按钮
|
||||
✅ 应该显示错误提示
|
||||
✅ "当前路线有未保存的更改,请先保存"
|
||||
|
||||
3. 不应该创建新路线
|
||||
✅ 路线列表不变
|
||||
```
|
||||
|
||||
### 测试3: 连续创建多个路线
|
||||
|
||||
```
|
||||
1. 点击"新建规划"
|
||||
✅ 创建"路线规划1"
|
||||
|
||||
2. 再次点击"新建规划"
|
||||
✅ 创建"路线规划2"
|
||||
|
||||
3. 第三次点击"新建规划"
|
||||
✅ 创建"路线规划3"
|
||||
|
||||
4. 检查路线列表
|
||||
✅ 应该显示3条路线
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 代码变更总结
|
||||
|
||||
### 修改文件
|
||||
- `/components/machinery/operation/RoutePlanning.tsx`
|
||||
|
||||
### 变更内容
|
||||
- ✅ 重新添加 `createNewRoute` 函数
|
||||
- ✅ 函数逻辑:直接创建空路线,不弹窗
|
||||
- ✅ 创建后提示用户在地图区域选择地块
|
||||
|
||||
### 未改变的内容
|
||||
- ✅ "新建规划"按钮的 onClick 绑定(正常)
|
||||
- ✅ 其他相关功能(正常)
|
||||
|
||||
---
|
||||
|
||||
## ✅ 修复完成
|
||||
|
||||
**状态**: ✅ 已修复
|
||||
|
||||
**问题**: "新建规划"按钮无操作
|
||||
**原因**: createNewRoute 函数缺失
|
||||
**解决**: 重新添加函数
|
||||
|
||||
**验证**:
|
||||
- [x] 点击按钮可以创建路线
|
||||
- [x] Toast提示正常
|
||||
- [x] 路线列表正常
|
||||
- [x] 地块选择卡片正常
|
||||
- [x] 未保存检查正常
|
||||
|
||||
---
|
||||
|
||||
**修复时间**: 2025-10-17
|
||||
**状态**: ✅ **已解决,功能正常**
|
||||
Reference in New Issue
Block a user