|
|
@@ -1,11 +1,14 @@
|
|
|
+<a class="coach-back-link" routerLink="/admin/coaches"><lucide-icon [img]="icons.ArrowLeft" [size]="17"/>返回陪练老师</a>
|
|
|
<header class="page-header coach-detail-header">
|
|
|
- <div>
|
|
|
- <a class="back-link" routerLink="/admin/coaches"><lucide-icon [img]="icons.ArrowLeft" [size]="17"/>返回陪练老师</a>
|
|
|
- <p>COACH PROFILE</p>
|
|
|
- <h1>{{data()?.coach?.displayName||'陪练详情'}}</h1>
|
|
|
- <span>@if(data();as detail){ID {{detail.coach.userId}} · {{detail.profile.storeName||'未绑定门店'}} · {{detail.profile.statusLabel}}}</span>
|
|
|
+ <div class="coach-heading">
|
|
|
+ <div class="coach-avatar">{{(data()?.coach?.displayName||'陪').slice(0,1)}}</div>
|
|
|
+ <div>
|
|
|
+ <p>COACH PROFILE</p>
|
|
|
+ <h1>{{data()?.coach?.displayName||'陪练详情'}}</h1>
|
|
|
+ @if(data();as detail){<div class="coach-header-meta"><span>ID {{detail.coach.userId}}</span><span><lucide-icon [img]="icons.Building2" [size]="13"/>{{detail.profile.storeName||'未绑定门店'}}</span><strong>{{detail.profile.statusLabel}}</strong></div>}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <button class="ui-button secondary" type="button" (click)="load(true)" [disabled]="loading()"><lucide-icon [img]="icons.RefreshCw" [size]="17" [class.spin]="loading()"/>{{loading()?'正在刷新':'刷新实时数据'}}</button>
|
|
|
+ <button class="ui-button secondary refresh-action" type="button" (click)="load(true)" [disabled]="loading()"><lucide-icon [img]="icons.RefreshCw" [size]="17" [class.spin]="loading()"/>{{loading()?'正在刷新':'刷新实时数据'}}</button>
|
|
|
</header>
|
|
|
|
|
|
@if(message()){<p class="notice" role="status">{{message()}}</p>}
|
|
|
@@ -16,20 +19,7 @@
|
|
|
}
|
|
|
|
|
|
@if(data();as detail){
|
|
|
- <section class="source-strip" [class.cache]="detail.payrollSourceStatus.mode==='cache'" role="status">
|
|
|
- <span></span>
|
|
|
- <strong>{{detail.payrollMonth}} 收益数据</strong>
|
|
|
- <em>{{detail.payrollSourceStatus.mode==='live'?'旧系统实时上课记录':'迁移库缓存记录'}}</em>
|
|
|
- <small>更新于 {{detail.refreshedAt|date:'MM-dd HH:mm:ss'}}</small>
|
|
|
- </section>
|
|
|
-
|
|
|
<section class="coach-profile-card">
|
|
|
- <div class="coach-avatar">{{detail.coach.displayName.slice(0,1)}}</div>
|
|
|
- <div class="coach-identity">
|
|
|
- <span>陪练老师</span>
|
|
|
- <h2>{{detail.coach.displayName}}</h2>
|
|
|
- <p>{{detail.profile.sourceLabel||'新系统账号'}} · {{detail.coach.statusLabel}}</p>
|
|
|
- </div>
|
|
|
<dl>
|
|
|
<div><dt><lucide-icon [img]="icons.UserRound" [size]="16"/>登录账号</dt><dd>{{detail.profile.username||'历史账号未同步'}}</dd></div>
|
|
|
<div><dt><lucide-icon [img]="icons.Phone" [size]="16"/>手机号码</dt><dd>{{detail.profile.mobile||'未登记'}}</dd></div>
|
|
|
@@ -38,6 +28,13 @@
|
|
|
</dl>
|
|
|
</section>
|
|
|
|
|
|
+ <section class="source-strip" [class.cache]="detail.payrollSourceStatus.mode==='cache'" role="status">
|
|
|
+ <span></span>
|
|
|
+ <strong>{{detail.payrollMonth}} 收益数据</strong>
|
|
|
+ <em>{{detail.payrollSourceStatus.mode==='live'?'旧系统实时上课记录':'迁移库缓存记录'}}</em>
|
|
|
+ <small>更新于 {{detail.refreshedAt|date:'MM-dd HH:mm:ss'}}</small>
|
|
|
+ </section>
|
|
|
+
|
|
|
<section class="summary-grid coach-summary">
|
|
|
<article class="summary-card"><span>今日排课</span><strong>{{detail.coach.todayAppointments}}</strong><small>未来待完成 {{upcomingCount()}} 节</small></article>
|
|
|
<article class="summary-card"><span>{{detail.payrollMonth}} 有效课次</span><strong>{{detail.currentPayroll.lessonCount}}</strong><small>30分钟 {{detail.currentPayroll.type30Count}} · 60分钟 {{detail.currentPayroll.type60Count}}</small></article>
|