first commit

This commit is contained in:
2026-05-08 03:06:24 +08:00
commit 8da6567178
146 changed files with 82014 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
import { ref, computed } from 'vue'
export function useSearch(items, searchFields = []) {
const searchQuery = ref('')
const statusFilter = ref('')
const sourceFilter = ref('')
const filteredItems = computed(() => {
let result = items.value
// 文本搜索
if (searchQuery.value.trim()) {
const query = searchQuery.value.toLowerCase()
result = result.filter(item => {
if (searchFields.length === 0) {
// 默认搜索所有字符串字段
return Object.values(item).some(val =>
String(val).toLowerCase().includes(query)
)
}
return searchFields.some(field =>
String(item[field]).toLowerCase().includes(query)
)
})
}
// 状态过滤
if (statusFilter.value) {
result = result.filter(item => item.status === statusFilter.value)
}
// 来源过滤
if (sourceFilter.value) {
result = result.filter(item => item.source === sourceFilter.value)
}
return result
})
const resetFilters = () => {
searchQuery.value = ''
statusFilter.value = ''
sourceFilter.value = ''
}
return {
searchQuery,
statusFilter,
sourceFilter,
filteredItems,
resetFilters
}
}