0235711 1 dienu atpakaļ
vecāks
revīzija
7b50a0f3e1

+ 7 - 0
src/app/pages/team-leader/dashboard/dashboard.html

@@ -164,6 +164,13 @@
           <option value="vip">VIP会员</option>
           <option value="normal">普通会员</option>
         </select>
+        <!-- 新增:四大板块筛选 -->
+        <select [(ngModel)]="selectedCorePhase" (change)="onCorePhaseChange($event)" class="custom-select">
+          <option value="all">全部板块</option>
+          @for (core of corePhases; track core.id) {
+            <option [value]="core.id">{{ core.name }}</option>
+          }
+        </select>
         <!-- 支持数百项目的下拉筛选 -->
         <select [(ngModel)]="selectedProjectId" (change)="selectProject()" class="custom-select project-selector">
           <option value="">选择项目</option>

+ 16 - 2
src/app/pages/team-leader/dashboard/dashboard.ts

@@ -90,6 +90,8 @@ export class Dashboard implements OnInit, OnDestroy {
   // 新增:时间窗筛选
   selectedTimeWindow: 'all' | 'today' | 'threeDays' | 'sevenDays' = 'all';
   designers: string[] = [];
+  // 新增:四大板块筛选
+  selectedCorePhase: 'all' | 'order' | 'requirements' | 'delivery' | 'aftercare' = 'all';
   
   // 设计师画像(用于智能推荐)
   designerProfiles: any[] = [
@@ -453,8 +455,15 @@ export class Dashboard implements OnInit, OnDestroy {
 
   // 新增:会员类型筛选下拉事件处理
   onMemberTypeChange(event: Event): void {
-    const target = event.target as HTMLSelectElement;
-    this.selectedMemberType = (target && target.value ? target.value : 'all') as any;
+    const select = event.target as HTMLSelectElement;
+    this.selectedMemberType = select.value as any;
+    this.applyFilters();
+  }
+
+  // 新增:四大板块改变
+  onCorePhaseChange(event: Event): void {
+    const select = event.target as HTMLSelectElement;
+    this.selectedCorePhase = select.value as any;
     this.applyFilters();
   }
 
@@ -560,6 +569,11 @@ export class Dashboard implements OnInit, OnDestroy {
       }
     }
 
+    // 新增:四大板块筛选
+    if (this.selectedCorePhase !== 'all') {
+      result = result.filter(p => this.mapStageToCorePhase(p.currentStage) === this.selectedCorePhase);
+    }
+
     // 设计师筛选
     if (this.selectedDesigner !== 'all') {
       result = result.filter(p => p.designerName === this.selectedDesigner);