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