peixue-dev/Archive/[一次性]审核状态页面修复-2026-01-28.md

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)
  // ...
}

修改理由

  1. 提交申请时只保存到本地 - 所以本地存储是主要数据源
  2. 后端API可能不存在 - 因为是模拟提交,没有真正调用后端
  3. 本地存储更可靠 - 在当前实现下,本地存储是唯一的数据来源

测试步骤

1. 清除缓存

  • 微信开发者工具 → 工具 → 清缓存 → 清除全部缓存

2. 重新编译

  • 保存文件后会自动编译

3. 测试流程

  1. 填写陪伴员申请表单
  2. 点击"提交申请"
  3. 看到"提交成功"弹窗
  4. 点击"查看审核状态"
  5. 应该能看到申请信息,不再显示"未找到申请信息"

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. 状态更新

  • 管理员审核通过/拒绝后,通过推送通知用户
  • 用户打开页面时,自动刷新最新状态

注意事项

  1. 本地存储可能丢失 - 用户清除缓存或卸载小程序后会丢失
  2. 无法跨设备同步 - 换设备后看不到申请状态
  3. 管理员无法审核 - 因为数据只在本地,管理员看不到申请

这些问题都需要通过实现真实的后端API来解决。

创建时间

2026-01-28

修复人员

Kiro AI Assistant