Lc 4 zile în urmă
părinte
comite
c314c107a5

Fișier diff suprimat deoarece este prea mare
+ 205 - 622
menu-web/package-lock.json


+ 2 - 3
menu-web/package.json

@@ -28,15 +28,14 @@
     "@angular/platform-browser": "^20.0.0",
     "@angular/router": "^20.0.0",
     "@fortawesome/angular-fontawesome": "^2.0.1",
+    "@fortawesome/fontawesome-free": "^6.7.2",
     "@fortawesome/fontawesome-svg-core": "^6.7.2",
     "@fortawesome/free-solid-svg-icons": "^6.7.2",
-    "chart.js": "^4.5.0",
-    "@fortawesome/fontawesome-free": "^6.7.2",
     "@types/swiper": "^5.4.3",
+    "chart.js": "^4.5.0",
     "echarts": "^5.6.0",
     "install": "^0.13.0",
     "npm": "^11.4.2",
-    "chart.js": "^4.5.0",
     "rxjs": "~7.8.0",
     "swiper": "^11.2.10",
     "tslib": "^2.3.0",

+ 1 - 0
menu-web/src/app/app.html

@@ -1 +1,2 @@
+
 <router-outlet></router-outlet>

+ 1 - 1
menu-web/src/app/app.routes.ts

@@ -25,7 +25,7 @@ export const routes: Routes = [
       },
          {
         path: 'order',
-        loadComponent: () => import('../modules/food/mobile/page-order/page-order').then(m => m.PageOrder)
+        loadComponent: () => import('../modules/food/mobile/page-order/page-order').then(m => m.PageOrderComponent)
       },
          {
         path: 'mine',

+ 4 - 6
menu-web/src/modules/food/mobile/page-order/components/budget-progress/budget-progress.component/budget-progress.component.ts

@@ -1,4 +1,4 @@
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, Input, OnInit, ElementRef, ViewChild } from '@angular/core';
 
 @Component({
   selector: 'app-budget-progress',
@@ -11,14 +11,12 @@ export class BudgetProgressComponent implements OnInit {
   @Input() spent: number = 0;
   @Input() remaining: number = 0;
   @Input() percentage: number = 0;
+  
+  @ViewChild('progressBar', { static: true }) progressBar!: ElementRef;
 
   ngOnInit(): void {
-    // Animation for progress bar
     setTimeout(() => {
-      const progressBar = document.querySelector('.progress-bar') as HTMLElement;
-      if (progressBar) {
-        progressBar.style.width = `${this.percentage}%`;
-      }
+      this.progressBar.nativeElement.style.width = `${this.percentage}%`;
     }, 500);
   }
 }

+ 4 - 4
menu-web/src/modules/food/mobile/page-order/components/cart-item/cart-item.component/cart-item.component.html

@@ -1,12 +1,12 @@
 <div class="cart-item">
-  <div class="item-img">{{ item.initial }}</div>
+  <div class="item-img">{{ item?.initial }}</div>
   <div class="item-info">
-    <div class="item-name">{{ item.name }}</div>
-    <div class="item-price">¥{{ item.price.toFixed(2) }}</div>
+    <div class="item-name">{{ item?.name }}</div>
+    <div class="item-price">¥{{ item?.price?.toFixed(2) }}</div>
     <div class="item-actions">
       <div class="quantity-control">
         <button class="quantity-btn minus" (click)="updateQuantity(-1)">-</button>
-        <input type="text" class="quantity-input" [value]="item.quantity" readonly>
+        <input type="text" class="quantity-input" [value]="item?.quantity" readonly>
         <button class="quantity-btn plus" (click)="updateQuantity(1)">+</button>
       </div>
       <button class="remove-btn" (click)="removeItem()">

+ 20 - 5
menu-web/src/modules/food/mobile/page-order/components/cart-item/cart-item.component/cart-item.component.ts

@@ -1,11 +1,26 @@
-import { Component } from '@angular/core';
+import { Component, Input, Output, EventEmitter } from '@angular/core';
+import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
+import { faTrashAlt } from '@fortawesome/free-solid-svg-icons';
 
 @Component({
-  selector: 'app-cart-item.component',
-  imports: [],
+  selector: 'app-cart-item', // 修正选择器名称
+  standalone: true,
+  imports: [FontAwesomeModule], // 添加 FontAwesomeModule 导入
   templateUrl: './cart-item.component.html',
-  styleUrl: './cart-item.component.scss'
+  styleUrls: ['./cart-item.component.scss']
 })
 export class CartItemComponent {
+  @Input() item: any; // 添加 item 输入属性
+  @Output() quantityChange = new EventEmitter<number>();
+  @Output() remove = new EventEmitter<void>();
 
-}
+  faTrashAlt = faTrashAlt; // 添加图标定义
+
+  updateQuantity(change: number): void {
+    this.quantityChange.emit(change);
+  }
+
+  removeItem(): void {
+    this.remove.emit();
+  }
+}

+ 2 - 2
menu-web/src/modules/food/mobile/page-order/page-order.ts

@@ -35,8 +35,8 @@ import { HistoryItemComponent } from './components/history-item/history-item.com
     SuggestionItemComponent,
     HistoryItemComponent
   ],
-  templateUrl: './page-order.component.html',
-  styleUrls: ['./page-order.component.scss']
+  templateUrl: './page-order.html',
+  styleUrls: ['./page-order.scss']
 })
 export class PageOrderComponent implements OnInit {
   // Icons

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff