feat: 产品筛选器的模糊搜索功能

- 引入纯前端依赖Fuse.js用于模糊匹配
- 新增Utils-fuzzyFilter封装Fuse的初始化与匹配
- 在前端将字符串匹配改为模糊匹配
This commit is contained in:
2025-11-10 15:08:32 +08:00
parent 007c8f9ce9
commit 4c8dfb5b56
5 changed files with 116 additions and 16 deletions

View File

@ -73,8 +73,13 @@
return products;
});
const filteredDocuments = computed(() =>
documents.value.filter((doc: DocumentListView) => {
const filteredDocuments = computed(() => {
const fuzzyMatchedDocuments = fuzzyMatch(documents.value, {
keyword: filters.keyword,
keys: ['title'],
threshold: 0.2,
});
return fuzzyMatchedDocuments.filter((doc: DocumentListView) => {
const matchProduct = filters.selectedProduct
? doc.products?.some(
(product: DocumentListProduct) =>
@ -87,13 +92,9 @@
)
: true;
const matchKeyword = filters.keyword
? doc.title && doc.title.includes(filters.keyword)
: true;
return matchProduct && matchKeyword;
})
);
return matchProduct;
});
});
watch(
() => filters.selectedType,