From 53f3e99d9058d45c71532a0049b70643d11282e2 Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Wed, 3 Dec 2025 17:47:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=87=E6=A1=A3=E5=BA=93=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=B7=BB=E5=8A=A0=E6=96=87=E6=A1=A3=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 功能添加:添加按照文档类型筛选文档的功能 - 组件更改:将筛选器由product-filter改为document-filter --- .../pages/support/DocumentFilter.vue | 113 ++++++++++++++++++ app/pages/support/documents.vue | 49 +++++--- 2 files changed, 147 insertions(+), 15 deletions(-) create mode 100644 app/components/pages/support/DocumentFilter.vue diff --git a/app/components/pages/support/DocumentFilter.vue b/app/components/pages/support/DocumentFilter.vue new file mode 100644 index 0000000..82c8fad --- /dev/null +++ b/app/components/pages/support/DocumentFilter.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/app/pages/support/documents.vue b/app/pages/support/documents.vue index c03e8ea..8c0db6f 100644 --- a/app/pages/support/documents.vue +++ b/app/pages/support/documents.vue @@ -10,13 +10,15 @@
- - + + { + const types: DocumentTypeView[] = []; + documents.value.forEach((doc: DocumentListView) => { + if (!types.some((item) => item.id === doc.type.id)) { + if (doc.type.id === '-1') { + types.push({ + id: '-1', + name: $t('product-filter.misc'), + }); + } else { + types.push(doc.type); + } + } + }); + + return types; + }); + const productTypeOptions = computed(() => { const types: DocumentListProductType[] = []; documents.value.forEach((doc: DocumentListView) => { @@ -64,13 +85,13 @@ }); const productOptions = computed(() => { - if (!filters.selectedType) return []; + if (!filters.selectedProductType) return []; const products: DocumentListProduct[] = []; documents.value.forEach((doc: DocumentListView) => { doc.products?.forEach((product: DocumentListProduct) => { if ( - product.type.id === filters.selectedType && + product.type.id === filters.selectedProductType && !products.some((item) => item.id === product.id) ) { products.push(product); @@ -93,14 +114,18 @@ (product: DocumentListProduct) => product.id === filters.selectedProduct ) - : filters.selectedType + : filters.selectedProductType ? doc.products?.some( (product: DocumentListProduct) => - product.type?.id === filters.selectedType + product.type?.id === filters.selectedProductType ) : true; - return matchProduct; + const matchDocumentType = filters.selectedDocumentType + ? doc.type.id === filters.selectedDocumentType + : true; + + return matchProduct && matchDocumentType; }); }); @@ -112,7 +137,7 @@ }); watch( - () => filters.selectedType, + () => filters.selectedProductType, () => { filters.selectedProduct = null; } @@ -152,12 +177,6 @@ margin-left: auto; } - .document-category { - padding: 0rem 2rem; - gap: 4px; - margin-bottom: 0.5rem; - } - .page-content { padding: 1rem 2rem 2rem; }