| 
					
				 | 
			
			
				@@ -1,11 +1,190 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { Component } from '@angular/core'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Component, OnInit, afterNextRender } from '@angular/core'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { CommonModule } from '@angular/common'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { RouterModule } from '@angular/router'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faCat,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faBell,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faUser,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faTrashAlt,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faLightbulb,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faCheck,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faSpinner,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faHome,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faSearch,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faBookOpen,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  faShoppingCart  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from '@fortawesome/free-solid-svg-icons'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Chart } from 'chart.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { CartItemComponent } from './components/cart-item/cart-item.component/cart-item.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { NutritionChartComponent } from './components/nutrition-chart/nutrition-chart.component/nutrition-chart.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { BudgetProgressComponent } from './components/budget-progress/budget-progress.component/budget-progress.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { SuggestionItemComponent } from './components/suggestion-item/suggestion-item.component/suggestion-item.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { HistoryItemComponent } from './components/history-item/history-item.component/history-item.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Component({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   selector: 'app-page-order', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  imports: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  templateUrl: './page-order.html', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  styleUrl: './page-order.scss' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  standalone: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  imports: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CommonModule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RouterModule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FontAwesomeModule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CartItemComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NutritionChartComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    BudgetProgressComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SuggestionItemComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HistoryItemComponent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  templateUrl: './page-order.component.html', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  styleUrls: ['./page-order.component.scss'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export class PageOrder { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export class PageOrderComponent implements OnInit { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Icons 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  icons = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faCat, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faBell, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faUser, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faTrashAlt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faLightbulb, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faCheck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faSpinner, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faHome, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faSearch, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faBookOpen, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    faShoppingCart 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Cart items data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cartItems = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 1, name: '招牌酸菜鱼', price: 68, quantity: 1, initial: '酸' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 2, name: '香辣小龙虾', price: 98, quantity: 1, initial: '虾' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 3, name: '金汤肥牛锅', price: 58, quantity: 1, initial: '牛' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Suggestions data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  suggestions = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      id: 1,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: '清蒸鲈鱼',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      price: 62,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      initial: '鱼',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      reason: '更低热量 · 更高蛋白质'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      id: 2,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: '蒜蓉蒸虾',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      price: 88,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      initial: '虾',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      reason: '更低脂肪 · 更少辛辣'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      id: 3,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: '番茄牛腩汤',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      price: 48,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      initial: '汤',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      reason: '更多维生素 · 更低热量'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // History items data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  historyItems = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 1, name: '点菜喵主题餐厅', date: '06-25 消费¥236', initial: '喵' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 2, name: '渔家小馆', date: '06-20 消费¥182', initial: '鱼' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 3, name: '龙虾先生', date: '06-15 消费¥320', initial: '虾' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { id: 4, name: '火锅物语', date: '06-10 消费¥198', initial: '锅' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Order summary data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  orderSummary = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    subtotal: 224, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    delivery: 3.5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    discount: 15, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    total: 212.5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Budget data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  budget = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    total: 800, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    spent: 520, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    remaining: 280, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    percentage: 65 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Nutrition data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nutrition = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    balance: 72, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    healthScore: 4.8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nutrients: '3/5' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    afterNextRender(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.initializeChart(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ngOnInit(): void {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  initializeChart(): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const ctx = document.getElementById('nutritionChart') as HTMLCanvasElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!ctx) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    new Chart(ctx, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: 'radar', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        labels: ['蛋白质', '碳水', '脂肪', '纤维', '维生素'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        datasets: [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          label: '当前营养值', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          data: [85, 70, 45, 60, 75], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          fill: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          backgroundColor: 'rgba(255, 107, 107, 0.2)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          borderColor: 'rgba(255, 107, 107, 1)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pointBackgroundColor: 'rgba(255, 107, 107, 1)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pointBorderColor: '#fff', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pointHoverBackgroundColor: '#fff', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pointHoverBorderColor: 'rgba(255, 107, 107, 1)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      options: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        scales: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          r: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            angleLines: { display: true }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            suggestedMin: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            suggestedMax: 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ticks: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              stepSize: 20, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              backdropColor: 'transparent' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            grid: { color: 'rgba(0, 0, 0, 0.1)' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pointLabels: { font: { size: 11 } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        plugins: { legend: { display: false } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  updateQuantity(item: any, change: number): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const newQuantity = item.quantity + change; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (newQuantity >= 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.quantity = newQuantity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  removeItem(itemId: number): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.cartItems = this.cartItems.filter(item => item.id !== itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  replaceSuggestion(suggestionId: number): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const suggestion = this.suggestions.find(s => s.id === suggestionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (suggestion) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // In a real app, you would implement the replacement logic here 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(`Replacing with ${suggestion.name}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  checkout(): void { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // In a real app, you would implement the checkout logic here 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('Checking out...'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |