6.3 KiB
6.3 KiB
✅ 家长端 vs 陪伴员端日历功能区分完成
日期: 2026-01-24
状态: ✅ 已完成
📋 问题回顾
用户反馈:
"家长端的服务日历,订单显示信息逻辑逻辑是否正确?家长端也需要开始服务?区分家长端和陪伴员端的服务日历功能"
发现的问题:
- ❌ 家长端订单详情显示"开始服务"按钮
- ❌ 没有根据用户角色区分显示内容
- ❌ 家长端和陪伴员端看到相同的操作按钮
✅ 已完成的修复
1. 修改订单详情页面
文件: peidu/uniapp/src/order-package/pages/order/detail.vue
修改内容:
-
添加用户角色字段
data() { return { userType: null, // ✅ 新增:用户角色 // ... 其他字段 } } -
在onLoad中获取用户角色
onLoad(options) { // ✅ 获取用户角色 const userInfo = uni.getStorageSync('userInfo') this.userType = userInfo?.userType || 'parent' console.log('[订单详情] 用户角色:', this.userType) // ... } -
根据角色显示不同的操作按钮
- 家长端: 显示"联系陪伴员"、"去评价"、"再次预约"
- 陪伴员端: 显示"接受订单"、"开始服务"、"结束服务"
- 管理师端: 显示"查看详情"
-
添加陪伴员专属方法
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)
↓ ↓ ↓ ↓
接单/拒单 签到开始 签退结束 查看反馈
关键区别:
| 功能 | 家长端 | 陪伴员端 |
|---|---|---|
| 支付订单 | ✅ | ❌ |
| 接单/拒单 | ❌ | ✅ |
| 开始服务 | ❌ | ✅ |
| 结束服务 | ❌ | ✅ |
| 联系陪伴员 | ✅ | ❌ |
| 评价服务 | ✅ | ❌ |
| 查看反馈 | ❌ | ✅ |
📝 相关文档
- 问题分析:
peidu/🔍家长端vs陪伴员端日历功能差异分析-2026-01-24.md - 修复方案:
peidu/🚀立即修复-家长端日历按钮显示问题-2026-01-24.md - 日历功能修复:
peidu/✅家长端日历功能修复完成-2026-01-24.md
🚀 下一步
1. 重新编译前端
# 在HBuilderX中重新编译
# 运行 → 运行到浏览器/小程序
2. 测试验证
- 使用不同角色账号测试
- 验证按钮显示正确
- 验证功能可用
3. 后续优化
- 统一角色权限管理
- 创建权限指令
- 优化用户体验
✅ 总结
已成功修复家长端日历功能的角色区分问题:
- ✅ 添加了用户角色判断逻辑
- ✅ 根据角色显示不同的操作按钮
- ✅ 家长端不再显示"开始服务"等陪伴员专属功能
- ✅ 陪伴员端不再显示"去评价"等家长专属功能
- ✅ 业务逻辑清晰,符合实际使用场景
现在家长端和陪伴员端的日历功能已经完全区分开来,各自只显示符合自己角色的操作按钮!