@if (message()) {

{{ message() }}

} @if (error()) { }
会员总数{{ page()?.summary?.total || 0 }}已排除陪练与管理账号
今日新增{{ page()?.summary?.todayNew || 0 }}按真实注册时间统计
近 7 日新增{{ page()?.summary?.sevenDayNew || 0 }}新会员承接情况
学习中{{ page()?.summary?.studying || 0 }}仍有正式学习任务
待跟进{{ page()?.summary?.followUp || 0 }}尚未开始或存在风险
正式会员{{ page()?.total || 0 }} 人
{{ page()?.sourceStatus?.message || page()?.sync?.label || '同步状态未知' }} · 最后刷新:{{ lastRefreshedAt() | date:'HH:mm:ss' }} · 注册时间倒序
@if (loading() && !page()) {
正在加载会员…
} @else {
@for (row of page()?.items || []; track row.objectId) { } @empty { }
会员手机号学习状态注册时间所属门店/代理剩余课时最近上课下次预约风险账号操作
{{ row.displayName }}ID {{ row.userId || '—' }} · {{ row.nickname || row.username }}
{{ row.mobile || row.mobileMasked || '—' }}{{ row.learningStatusLabel }}{{ row.learningStatusReason }}{{ row.parentDisplayName || '未绑定' }}{{ row.periods30 | number }} × 30分
{{ row.periods60 | number }} × 60分
{{ row.trialPeriods | number }} × 体验
{{ row.lastLessonAt ? (row.lastLessonAt | date:'MM-dd HH:mm') : '暂无' }}{{ row.nextAppointmentAt ? (row.nextAppointmentAt | date:'MM-dd HH:mm') : '待排课' }}
@for (item of row.riskFlags || []; track item) { {{ item }} } @empty { 正常 }
{{ row.statusLabel }}
没有符合条件的会员
@for (row of page()?.items || []; track row.objectId) {
{{ row.displayName }}ID {{ row.userId || '—' }} · {{ row.mobile || row.mobileMasked || '—' }}
{{ row.statusLabel }}
{{ row.learningStatusLabel }}@for (item of row.riskFlags || []; track item) { {{ item }} }
注册时间
{{ row.registeredAt | date:'yyyy-MM-dd HH:mm' }}
所属代理
{{ row.parentDisplayName || '未绑定' }}
剩余课时
{{ row.periods30 }}×30分 · {{ row.periods60 }}×60分
下次预约
{{ row.nextAppointmentAt ? (row.nextAppointmentAt | date:'MM-dd HH:mm') : '待排课' }}
} @empty {
没有符合条件的会员
}
}
@if (createOpen()) {
} @if (importOpen()) {
}