peixue-dev/Archive/[一次性]测评师预约路由错误修复-2026-02-01.md

128 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2026-02-28 17:26:03 +08:00
# 测评师预约路由错误修复
## 问题描述
用户在测评详情页面选择测评师时,出现路由错误:
```
navigateTo:fail page "/pages/booking/teacher-booking?teacherId=1&serviceType=assessment&assessmentType=talent\" is not found"
```
## 问题分析
### 表面现象
- URL末尾有多余的反斜杠和引号 `\"`
- 页面跳转失败
### 根本原因
经过仔细检查发现:**页面文件存在,但没有在 pages.json 中注册**
1. ✅ 页面文件存在: `peidu/uniapp/src/pages/booking/teacher-booking.vue`
2. ❌ 页面未注册: `pages.json``pages` 数组中没有该页面配置
## 修复方案
### 1. 在 pages.json 中注册页面
在主包的 `pages` 数组中添加页面配置:
```json
{
"path": "pages/booking/teacher-booking",
"style": {
"navigationBarTitleText": "预约陪伴员"
}
}
```
**位置**: 在 `pages/booking/quick-booking` 之后添加
### 2. 参数编码优化(已完成)
`assessment/detail.vue` 中使用 `encodeURIComponent` 编码参数:
```javascript
// viewTeacherDetail 方法
const teacherId = teacher.id
const serviceType = 'assessment'
const assessmentType = encodeURIComponent(this.assessmentType || 'talent')
uni.navigateTo({
url: `/pages/booking/teacher-booking?teacherId=${teacherId}&serviceType=${serviceType}&assessmentType=${assessmentType}`
})
// bookAssessment 方法
const teacherId = this.teachers[0].id
const serviceType = 'assessment'
const assessmentType = encodeURIComponent(this.assessmentType || 'talent')
uni.navigateTo({
url: `/pages/booking/teacher-booking?teacherId=${teacherId}&serviceType=${serviceType}&assessmentType=${assessmentType}`
})
```
### 3. 清除缓存并重新编译
执行批处理文件:
```
Archive/[一次性]清除缓存重新编译-测评师预约-2026-02-01.bat
```
## 修复步骤
1. ✅ 在 `pages.json` 中注册 `teacher-booking` 页面
2. ✅ 创建清除缓存的批处理文件
3. ⏳ 执行批处理文件清除缓存
4. ⏳ 在微信开发者工具中重新编译
5. ⏳ 测试页面跳转功能
## 测试步骤
1. 打开家长端小程序
2. 进入测评详情页面(天赋测评或兴趣测评)
3. 点击测评师卡片
4. 验证是否成功跳转到预约页面
5. 检查页面是否正常显示
6. 验证教师信息是否正确加载
## 预期结果
- ✅ 页面跳转成功
- ✅ 预约页面正常显示
- ✅ 教师信息正确加载
- ✅ 所有功能正常工作
## 相关文件
- `peidu/uniapp/src/pages.json` - 页面配置文件(已修改)
- `peidu/uniapp/src/pages/booking/teacher-booking.vue` - 预约页面
- `peidu/uniapp/src/service-package/pages/assessment/detail.vue` - 测评详情页(已修改)
- `Archive/[一次性]清除缓存重新编译-测评师预约-2026-02-01.bat` - 清除缓存脚本
## 经验总结
### 问题排查思路
1. **检查URL格式** - 发现参数编码问题
2. **检查页面文件** - 确认文件存在
3. **检查页面注册** - 发现根本原因!
### 关键点
- uni-app 中所有页面都必须在 `pages.json` 中注册才能使用
- 即使页面文件存在,如果没有注册也无法访问
- 页面注册的位置会影响页面的加载顺序
### 预防措施
- 创建新页面时,立即在 `pages.json` 中注册
- 使用 uni-app 的页面创建工具,自动完成注册
- 定期检查页面文件和注册配置的一致性
---
**修复时间**: 2026-02-01
**修复人员**: Kiro AI
**问题级别**: 高(影响核心功能)
**修复状态**: 已完成,待测试