peixue-dev/Archive/peidu-temp-files/docs/✅家长端vs陪伴员端日历功能区分完成-2026-01-24.md

6.3 KiB

家长端 vs 陪伴员端日历功能区分完成

日期: 2026-01-24
状态: 已完成


📋 问题回顾

用户反馈:

"家长端的服务日历,订单显示信息逻辑逻辑是否正确?家长端也需要开始服务?区分家长端和陪伴员端的服务日历功能"

发现的问题:

  1. 家长端订单详情显示"开始服务"按钮
  2. 没有根据用户角色区分显示内容
  3. 家长端和陪伴员端看到相同的操作按钮

已完成的修复

1. 修改订单详情页面

文件: peidu/uniapp/src/order-package/pages/order/detail.vue

修改内容:

  1. 添加用户角色字段

    data() {
      return {
        userType: null, // ✅ 新增:用户角色
        // ... 其他字段
      }
    }
    
  2. 在onLoad中获取用户角色

    onLoad(options) {
      // ✅ 获取用户角色
      const userInfo = uni.getStorageSync('userInfo')
      this.userType = userInfo?.userType || 'parent'
      console.log('[订单详情] 用户角色:', this.userType)
      // ...
    }
    
  3. 根据角色显示不同的操作按钮

    • 家长端: 显示"联系陪伴员"、"去评价"、"再次预约"
    • 陪伴员端: 显示"接受订单"、"开始服务"、"结束服务"
    • 管理师端: 显示"查看详情"
  4. 添加陪伴员专属方法

    • acceptOrder() - 接受订单
    • rejectOrder() - 拒绝订单
    • startService() - 开始服务
    • endService() - 结束服务
    • viewFeedback() - 查看反馈

🎯 功能区分说明

家长端功能 (userType = 'parent' 或 'user')

订单状态与操作:

状态 状态码 显示按钮 说明
待支付 0 取消订单、立即支付 等待家长支付
待接单 1 返回、联系客服 已支付,等待陪伴员接单
待服务 2 返回、联系陪伴员 已接单,等待服务开始
服务中 3 返回、联系陪伴员 服务进行中
已完成 4 返回、去评价/再次预约 服务已完成
已取消 -1 返回、重新预约 订单已取消

核心功能:

  • 查看服务安排
  • 联系陪伴员
  • 评价服务
  • 再次预约
  • 取消订单
  • 不显示"开始服务"、"结束服务"等陪伴员操作

陪伴员端功能 (userType = 'teacher')

订单状态与操作:

状态 状态码 显示按钮 说明
待接单 1 拒绝接单、接受订单 等待陪伴员接单
待服务 2 返回、开始服务 已接单,等待签到
服务中 3 返回、结束服务 已签到,服务中
已完成 4 返回、查看反馈 服务已完成
其他 - 返回 其他状态

核心功能:

  • 接单/拒单
  • 开始服务(签到)
  • 结束服务(签退)
  • 查看学生信息
  • 提交服务反馈
  • 不显示"去评价"等家长操作

管理师端功能 (userType = 'manager')

订单状态与操作:

状态 显示按钮 说明
所有状态 返回、查看详情 查看订单信息

核心功能:

  • 查看订单详情
  • 监控订单状态
  • 处理异常订单

🧪 测试验证

测试场景:

1. 家长端测试

登录家长账号 → 进入日历 → 点击订单
预期结果:
- ✅ 待服务订单显示"联系陪伴员"按钮
- ✅ 已完成订单显示"去评价"按钮
- ❌ 不显示"开始服务"按钮

2. 陪伴员端测试

登录陪伴员账号 → 进入日历 → 点击订单
预期结果:
- ✅ 待接单订单显示"接受订单"按钮
- ✅ 待服务订单显示"开始服务"按钮
- ❌ 不显示"去评价"按钮

3. 管理师端测试

登录管理师账号 → 查看订单
预期结果:
- ✅ 显示"查看详情"按钮
- ✅ 可以查看所有订单信息

📊 修改对比

修改前:

<!-- 所有用户看到相同的按钮 -->
<template v-if="order.status === 2">
  <button @click="startService">开始服务</button>
</template>

修改后:

<!-- 根据用户角色显示不同按钮 -->
<template v-if="userType === 'parent'">
  <template v-if="order.status === 2">
    <button @click="contactTeacher">联系陪伴员</button>
  </template>
</template>

<template v-else-if="userType === 'teacher'">
  <template v-if="order.status === 2">
    <button @click="startService">开始服务</button>
  </template>
</template>

🎯 业务逻辑说明

订单状态流转:

家长视角:
待支付(0) → 待接单(1) → 待服务(2) → 服务中(3) → 已完成(4)
   ↓           ↓           ↓           ↓           ↓
 支付      等待接单    等待服务    服务中      可评价

陪伴员视角:
待接单(1) → 待服务(2) → 服务中(3) → 已完成(4)
   ↓           ↓           ↓           ↓
 接单/拒单   签到开始    签退结束    查看反馈

关键区别:

功能 家长端 陪伴员端
支付订单
接单/拒单
开始服务
结束服务
联系陪伴员
评价服务
查看反馈

📝 相关文档

  1. 问题分析: peidu/🔍家长端vs陪伴员端日历功能差异分析-2026-01-24.md
  2. 修复方案: peidu/🚀立即修复-家长端日历按钮显示问题-2026-01-24.md
  3. 日历功能修复: peidu/✅家长端日历功能修复完成-2026-01-24.md

🚀 下一步

1. 重新编译前端

# 在HBuilderX中重新编译
# 运行 → 运行到浏览器/小程序

2. 测试验证

  • 使用不同角色账号测试
  • 验证按钮显示正确
  • 验证功能可用

3. 后续优化

  • 统一角色权限管理
  • 创建权限指令
  • 优化用户体验

总结

已成功修复家长端日历功能的角色区分问题:

  1. 添加了用户角色判断逻辑
  2. 根据角色显示不同的操作按钮
  3. 家长端不再显示"开始服务"等陪伴员专属功能
  4. 陪伴员端不再显示"去评价"等家长专属功能
  5. 业务逻辑清晰,符合实际使用场景

现在家长端和陪伴员端的日历功能已经完全区分开来,各自只显示符合自己角色的操作按钮!