@if(data()?.workflowIssues?.length){
结课凭据待核对(最近 200 条) @for(issue of data()?.workflowIssues; track issue.appointmentGeneralId){

预约 {{issue.appointmentGeneralId}}:{{issue.message}}

}
}
@if(data()?.dataDateTo){}
@if(loading()){
{{data()?'正在更新排课数据':'正在加载排课数据'}} 正在读取所选日期、陪练和预约状态,数据较多时请稍候。
}
{{visibleAppointments().length}}条筛选结果当前范围共 {{data()?.appointments?.length||0}} 条
@if(message()){

{{message()}}

} @if(error()){} @if(data()&&!data()?.liveSourceAvailable){

{{data()?.liveSourceMessage}}

} @if(data()?.source!=='database'&&data()?.sync?.state!=='synced'&&data()){

旧系统持久化同步尚未追平。{{data()?.liveSourceAvailable?'本页已读取旧系统当前排课':'本页暂时无法核对旧系统当前排课'}};刷新页面不等于新数据库已同步,未核实记录不能据此认定缺课或结算工资。

}
预约到完课流程排课、上课、结课与评价
老师一次结课,学生随后评价
  1. 1
    运营创建预约选择学员已绑定课程、时间和陪练
    状态 0
  2. 2
    陪练开始上课预约当天均可开始,记录实际上课时间
    上课中
  3. 3
    老师结课并生成报告课堂结果、反馈与课时扣减一次完成
    已结课
  4. 4
    学生评价学生查看报告后评分;未评价不阻塞结课
    评价独立
当前范围课程{{data()?activeAppointments():'—'}}{{range().from}} 至 {{range().to}}
待分配{{data()?unassignedCount():'—'}}未分配老师时不能开始
在岗陪练{{data()?.coaches?.length??'—'}}未配置可用时间会提示
历史排课总量{{data()?.totalAppointments??'—'}}{{data()?.dataDateFrom||'—'}} 至 {{data()?.dataDateTo||'—'}}
数据库更新{{data()?.refreshedAt|date:'MM-dd HH:mm:ss'}}新排课程、教学状态以新库为准
{{view()==='list'?'预约明细':'陪练排课泳道'}}{{loading()?'加载中…':'点击排课查看明细与可用操作'}}
待开始 上课中 陪练已结束 学员已确认 已完课 已归档 逾期未完成 状态待核对 已取消
@if(view()==='list'){
@for(item of visibleAppointments();track item.targetId){} @empty{}
时间会员陪练课程课型状态操作
{{item.startsAt|date:'MM-dd HH:mm'}}–{{item.endsAt|date:'HH:mm'}}{{item.studentName}}{{item.coachName}}@if(item.coachAccountMissing){历史陪练账号已失效}{{item.courseName}}{{item.classTypeLabel}}@if(item.readOnly){旧系统数据}{{statusDisplayLabel(item)}}
@if(!item.readOnly){}@if(item.readOnly){原业务端维护}@else{@if(rowActions(item);as actions){@if(actions.canEdit){}@if(actions.canRestore){}@if(actions.canCancel){}@if(actions.canComplete){}@if(!actions.canEdit&&!actions.canRestore&&!actions.canCancel&&!actions.canComplete&&item.statusCode<11){按业务端状态流转}}}
{{error()?'课表未能加载,请重试':hasScheduleFilters()?'没有符合筛选条件的排课':'当前范围暂无排课;历史数据范围为 '+(data()?.dataDateFrom||'—')+' 至 '+(data()?.dataDateTo||'—')}}
} @else {
@for(coach of visibleCoaches();track coach.userId){
{{coach.displayName}}当前 {{visibleCoachCount(coach.userId)}} 节排课@if(!coach.availabilityConfigured){未设置可用时间}
@for(item of visibleAppointments();track item.targetId){@if(item.coachId===coach.userId&&!item.coachAccountMissing){}}
} @empty{
{{error()?'课表未能加载,请重试':'当前范围暂无已排课的陪练'}}
} @if(unassignedCount()){
待分配 / 历史账号{{data()?unassignedCount():'—'}} 节
@for(item of visibleAppointments();track item.targetId){@if(!item.coachId||item.coachAccountMissing){}}
}
}
@if(detail();as item){
} @if(drawerOpen()){
} @if(feedback();as report){
}