Просмотр исходного кода

fix: reuse the shared calendar in lesson history filters

彭峰 2 дней назад
Родитель
Сommit
791d5cc7e7

+ 1 - 1
projects/xiaoshu-admin/src/app/pages/lesson-records.component.html

@@ -2,7 +2,7 @@
 <header class="page-header"><div><h1>{{embedded?'上课记录':'记录管理 · 上课记录'}}</h1><p>查询完整上课历史、查看课堂反馈与转交抗遗忘复习</p></div><button class="ui-button secondary" (click)="export()" [disabled]="exporting()||busy()">{{exporting()?'正在导出…':'导出 Excel'}}</button></header>
 <form class="lesson-filters" (ngSubmit)="query()">
 @if(!embedded){<label>学员姓名<input name="search" [(ngModel)]="search" placeholder="输入学员姓名"></label><label>会员 ID<input name="member" [(ngModel)]="memberId" inputmode="numeric" placeholder="精确查询"></label>}
-<label>授课老师<input name="coach" [(ngModel)]="coachName" placeholder="老师姓名"></label><label>门店<input name="store" [(ngModel)]="storeName" placeholder="门店名称"></label><label>课程<input name="course" [(ngModel)]="courseName" placeholder="课程名称"></label><label>开始日期<input type="date" name="from" [(ngModel)]="dateFrom"></label><label>结束日期<input type="date" name="to" [(ngModel)]="dateTo"></label>
+<label>授课老师<input name="coach" [(ngModel)]="coachName" placeholder="老师姓名"></label><label>门店<input name="store" [(ngModel)]="storeName" placeholder="门店名称"></label><label>课程<input name="course" [(ngModel)]="courseName" placeholder="课程名称"></label><app-operations-date-filter class="start-date-filter" label="开始日期" [value]="dateFrom" (valueChange)="dateFrom=$event" /><app-operations-date-filter label="结束日期" [value]="dateTo" (valueChange)="dateTo=$event" />
 <div class="filter-actions"><button type="submit" class="ui-button" [disabled]="busy()">查询</button><button type="button" class="ui-button secondary" [disabled]="busy()" (click)="reset()">重置</button></div></form>
 @if(error()){<p role="alert" class="notice error">{{error()}}</p>}@if(busy()){<p class="notice" role="status">正在查询上课记录…</p>}
 @if(data();as d){<div class="record-count"><strong>累计已上课 {{d.cumulativeTotal}} 节</strong><span>当前筛选 {{d.total}} 节 · 时间均为北京时间</span><label>每页<select [(ngModel)]="pageSize" (ngModelChange)="query()" [disabled]="busy()"><option [ngValue]="20">20 条</option><option [ngValue]="50">50 条</option><option [ngValue]="100">100 条</option></select></label>@if(studentId||memberId){<button class="ui-button secondary" [disabled]="busy()" (click)="showAll()">查看该学员全部结果</button>}</div>

+ 2 - 1
projects/xiaoshu-admin/src/app/pages/lesson-records.component.ts

@@ -3,9 +3,10 @@ import {Component,ChangeDetectionStrategy,Input,OnChanges,OnInit,inject,signal}
 import {FormsModule} from '@angular/forms';
 import {ActivatedRoute} from '@angular/router';
 import {OperationsService} from '../operations.service';
+import {OperationsDateFilterComponent} from '../components/operations-date-filter.component';
 import {LessonRecordDetailComponent} from './lesson-record-detail.component';
 import {LessonHistoryPage,LessonHistoryRow} from './lesson-record.models';
-@Component({selector:'app-lesson-records',standalone:true,imports:[CommonModule,FormsModule,LessonRecordDetailComponent],templateUrl:'./lesson-records.component.html',styleUrls:['./operations-professional.scss','./lesson-records.component.scss'],changeDetection:ChangeDetectionStrategy.OnPush})
+@Component({selector:'app-lesson-records',standalone:true,imports:[CommonModule,FormsModule,LessonRecordDetailComponent,OperationsDateFilterComponent],templateUrl:'./lesson-records.component.html',styleUrls:['./operations-professional.scss','./lesson-records.component.scss'],changeDetection:ChangeDetectionStrategy.OnPush})
 export class LessonRecordsComponent implements OnInit,OnChanges {
  @Input() studentId=0;@Input() embedded=false;@Input() refreshVersion=0;
  readonly data=signal<LessonHistoryPage|null>(null);readonly busy=signal(false);readonly error=signal('');readonly detailId=signal('');readonly exporting=signal(false);