128 lines
3.4 KiB
Markdown
128 lines
3.4 KiB
Markdown
|
|
# 测评师预约路由错误修复
|
||
|
|
|
||
|
|
## 问题描述
|
||
|
|
|
||
|
|
用户在测评详情页面选择测评师时,出现路由错误:
|
||
|
|
|
||
|
|
```
|
||
|
|
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
|
||
|
|
**问题级别**: 高(影响核心功能)
|
||
|
|
**修复状态**: 已完成,待测试
|