From 999625ccd03630f739c8fba7c5d7618d5b61f94c Mon Sep 17 00:00:00 2001 From: dzq Date: Tue, 20 May 2025 16:32:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=95=86=E5=93=81):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=B9=B6=E6=94=AF=E6=8C=81=E5=95=86=E5=93=81=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在商品类型、存储和页面中添加`usageInstruction`字段,用于展示商品使用说明。同时,在商品列表页面新增搜索功能,支持根据商品名称进行筛选。 --- src/common/apis/shop/type.ts | 1 + src/pages/product/ProductList.vue | 18 +++++++- src/pages/product/components/checkout.vue | 56 +++++++++++------------ src/pinia/stores/product.ts | 4 +- types/auto/components.d.ts | 1 + 5 files changed, 49 insertions(+), 31 deletions(-) diff --git a/src/common/apis/shop/type.ts b/src/common/apis/shop/type.ts index 0803c5f..219bd05 100644 --- a/src/common/apis/shop/type.ts +++ b/src/common/apis/shop/type.ts @@ -7,6 +7,7 @@ export type Goods = { status: number, coverImg: string, goodsDetail: string, + usageInstruction: string, cellId: number } diff --git a/src/pages/product/ProductList.vue b/src/pages/product/ProductList.vue index ed1177d..6a8cf35 100644 --- a/src/pages/product/ProductList.vue +++ b/src/pages/product/ProductList.vue @@ -42,6 +42,8 @@ const currentProduct = computed(() => // 购物车弹窗控制 const showCartPopup = ref(false) +const searchQuery = ref('') + // 点击分类导航 function handleCategoryClick(index: number) { activeCategory.value = index @@ -99,8 +101,16 @@ function getCartItemCount(cellId: number) { return item ? item.quantity : 0 } +function filterProductsByName(products: Product[], query: string) { + if (!query) return products + return products.filter(p => + p.name.toLowerCase().includes(query.toLowerCase()) + ) +} + const currentProducts = computed(() => { - return categories.value.filter(c => c.label === labels.value[activeCategory.value].id) + const filteredByCategory = categories.value.filter(c => c.label === labels.value[activeCategory.value].id) + return filterProductsByName(filteredByCategory, searchQuery.value) }) // 组件挂载时添加滚动监听 @@ -143,6 +153,12 @@ watch(() => route.path, (newPath) => {
+