| 
					
				 | 
			
			
				@@ -8,6 +8,9 @@ import { CommonModule } from '@angular/common'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { CloudObject, CloudQuery } from 'src/lib/ncloud'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Router } from '@angular/router'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { FmChatModalInput } from 'fmode-ng'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { AllProductsModalComponent } from '../all-products-modal/all-products-modal.component'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { DetailModalComponent } from '../detail-modal/detail-modal.component'; // 确保此组件已创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { IonicModule } from '@ionic/angular'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 addIcons({ airplane, bluetooth, call, wifi }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,15 +20,18 @@ addIcons({ airplane, bluetooth, call, wifi }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   styleUrls: ['tab3.page.scss'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   standalone: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   imports: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    IonButton, IonGrid, IonRow, IonCol, IonCardHeader, IonItem, IonLabel, IonThumbnail, IonCardContent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    IonCardTitle, IonCard, IonIcon, IonSearchbar, CommonModule, SaleCardComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    FmChatModalInput, IonModal, IonButtons 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    IonicModule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CommonModule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AllProductsModalComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DetailModalComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ExploreContainerComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SaleCardComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FmChatModalInput 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export class Tab3Page { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  showDetailModal = false;  // 控制模态显示与否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  currentProduct: any;      // 当前选择的商品信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showDetailModal = false;  // 控制详情模态显示与否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentProduct: any;      // 当前选择的药品信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   categories = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { name: '皮肤用药', image: '../../assets/image/doctor7.png' }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -41,11 +47,13 @@ export class Tab3Page { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   products: Array<CloudObject> = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   allProducts: Array<CloudObject> = []; // 存储所有药品数据,用于分类过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hotProducts: Array<CloudObject> = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  specialProducts: Array<CloudObject> = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   constructor( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private modalCtrl: ModalController, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private router: Router, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      addIcons({close}); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   async ngOnInit() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     await this.loadProducts(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,33 +64,30 @@ export class Tab3Page { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const query = new CloudQuery('Drug'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.products = await query.find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.allProducts = [...this.products]; // 初始化所有产品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 分类“热销”和“特价”药品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.hotProducts = this.allProducts.filter(product => product.get('marketing') === 'hot'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.specialProducts = this.allProducts.filter(product => product.get('marketing') === 'special'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.error('加载药品数据失败', error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 打开详情模态窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   openDetailModal(product: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.currentProduct = product; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.showDetailModal = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 关闭详情模态窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   closeDetailModal() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.showDetailModal = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this.currentProduct = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 根据分类过滤产品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  filterProducts(categoryName: string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (categoryName === '全部') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.products = [...this.allProducts]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      this.products = this.allProducts.filter(product => product.get('category') === categoryName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 分类点击事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 根据分类导航到 drug-category 页面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   onCategoryClick(category: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.filterProducts(category.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.router.navigate(['/drug-category', category.name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // 分享链接功能(可选) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -102,19 +107,44 @@ export class Tab3Page { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //搜索功能 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 搜索功能 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   searchTerm: string = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-async searchProducts(event: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  this.searchTerm = event.detail.value.toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (this.searchTerm) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.products = this.allProducts.filter(product => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      product.get('name').toLowerCase().includes(this.searchTerm) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      product.get('function').toLowerCase().includes(this.searchTerm) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      product.get('composition').toLowerCase().includes(this.searchTerm) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    this.products = [...this.allProducts]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  async searchProducts(event: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.searchTerm = event.detail.value.toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (this.searchTerm) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.products = this.allProducts.filter(product => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        product.get('name').toLowerCase().includes(this.searchTerm) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        product.get('function').toLowerCase().includes(this.searchTerm) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        product.get('composition').toLowerCase().includes(this.searchTerm) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.products = [...this.allProducts]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 查看更多功能,打开 AllProductsModalComponent 模态窗口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  async viewMore(type: string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let filteredProducts: Array<CloudObject> = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let title: string = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (type === 'hot') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      filteredProducts = this.hotProducts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      title = '热销药品'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else if (type === 'special') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      filteredProducts = this.specialProducts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      title = '特价药品'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const modal = await this.modalCtrl.create({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      component: AllProductsModalComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      componentProps: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        products: filteredProducts, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        title: title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cssClass: 'bottom-modal' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return await modal.present(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |