3.8 KiB
3.8 KiB
审核状态页面"未找到申请信息"问题修复
问题现象
- 提交陪伴员申请后,弹窗显示"审核中" ✅
- 点击"查看审核状态"进入审核状态页面,显示"未找到申请信息" ❌
问题原因
根本原因
数据读取顺序错误
原来的逻辑:
1. 先尝试从后端API获取数据
2. API失败后,才从本地存储读取
但实际情况:
1. 提交申请时,只保存到本地存储(模拟提交,没有调用后端API)
2. 查询时,先调用后端API → 失败(API不存在或返回空)
3. 降级到本地存储 → 但可能已被清除或丢失
4. 最终显示"未找到申请信息"
代码分析
提交申请 (teacher/apply.vue):
// 模拟提交,只保存到本地
const application = {
...this.form,
role: 'teacher',
status: 'pending',
applyTime: new Date().toISOString()
}
uni.setStorageSync('teacherApplication', application)
查询状态 (application-status.vue):
// 原来的逻辑:先调用API,失败后才读本地
const res = await this.$http.get('/api/teacher/application/status')
if (res && res.code === 200) {
// 使用API数据
} else {
// 降级到本地存储
const localData = uni.getStorageSync('teacherApplication')
}
解决方案
修改文件
peidu/uniapp/src/common-package/pages/auth/application-status.vue
修改内容
调整数据读取顺序:优先从本地存储读取,如果本地没有再调用API
async loadApplication() {
// 🔥 修复:优先从本地存储读取
const storageKey = `${this.role}Application`
const localData = uni.getStorageSync(storageKey)
if (localData) {
console.log('从本地存储读取申请信息:', localData)
this.application = localData
return
}
// 如果本地没有,尝试从后端API获取
const res = await this.$http.get(apiUrl)
// ...
}
修改理由
- 提交申请时只保存到本地 - 所以本地存储是主要数据源
- 后端API可能不存在 - 因为是模拟提交,没有真正调用后端
- 本地存储更可靠 - 在当前实现下,本地存储是唯一的数据来源
测试步骤
1. 清除缓存
- 微信开发者工具 → 工具 → 清缓存 → 清除全部缓存
2. 重新编译
- 保存文件后会自动编译
3. 测试流程
- 填写陪伴员申请表单
- 点击"提交申请"
- 看到"提交成功"弹窗
- 点击"查看审核状态"
- 应该能看到申请信息,不再显示"未找到申请信息"
4. 验证内容
- 申请角色: 陪伴员 ✅
- 申请时间: 显示提交时间 ✅
- 联系电话: 显示填写的手机号 ✅
- 状态: 审核中 ✅
后续优化建议
1. 实现真实的后端API
目前是模拟提交,建议实现真实的后端接口:
@PostMapping("/api/teacher/application/submit")
public Result<Long> submitApplication(@RequestBody TeacherApplicationDTO dto) {
// 保存到数据库
// 返回申请ID
}
@GetMapping("/api/teacher/application/status")
public Result<TeacherApplicationVO> getApplicationStatus(@CurrentUser Long userId) {
// 从数据库查询
// 返回申请状态
}
2. 数据同步
- 提交时同时保存到本地和后端
- 查询时优先从后端获取最新状态
- 本地存储作为缓存和降级方案
3. 状态更新
- 管理员审核通过/拒绝后,通过推送通知用户
- 用户打开页面时,自动刷新最新状态
注意事项
- 本地存储可能丢失 - 用户清除缓存或卸载小程序后会丢失
- 无法跨设备同步 - 换设备后看不到申请状态
- 管理员无法审核 - 因为数据只在本地,管理员看不到申请
这些问题都需要通过实现真实的后端API来解决。
创建时间
2026-01-28
修复人员
Kiro AI Assistant