diff --git a/src/components/pages/AssistantPage.tsx b/src/components/pages/AssistantPage.tsx index 62bab56..40a510e 100644 --- a/src/components/pages/AssistantPage.tsx +++ b/src/components/pages/AssistantPage.tsx @@ -67,6 +67,8 @@ type AssistantForm = { type AssistantType = "提示词" | "工作流" | "Dify" | "FastGPT"; +const assistantTypes: AssistantType[] = ["提示词", "工作流", "Dify", "FastGPT"]; + type AssistantTypeOption = { type: AssistantType; label: string; @@ -189,6 +191,9 @@ const mockAssistants: AssistantListItem[] = [ }, ]; +type TypeFilter = "全部" | AssistantType; + +const typeFilters: TypeFilter[] = ["全部", ...assistantTypes]; export function AssistantPage() { const [form, setForm] = useState({ @@ -208,6 +213,7 @@ export function AssistantPage() { "list", ); const [searchQuery, setSearchQuery] = useState(""); + const [typeFilter, setTypeFilter] = useState("全部"); const [currentPage, setCurrentPage] = useState(1); // choose 步骤的草稿:名称与已选类型,确认后才决定进入哪个构建页 const [draftName, setDraftName] = useState(""); @@ -235,6 +241,10 @@ export function AssistantPage() { } const filteredAssistants = mockAssistants.filter((assistant) => { + if (typeFilter !== "全部" && assistant.type !== typeFilter) { + return false; + } + const keyword = searchQuery.trim().toLowerCase(); if (!keyword) { @@ -259,6 +269,11 @@ export function AssistantPage() { setCurrentPage(1); } + function handleFilterChange(filter: TypeFilter) { + setTypeFilter(filter); + setCurrentPage(1); + } + function updateForm( key: K, value: AssistantForm[K], @@ -297,7 +312,8 @@ export function AssistantPage() {
共 {mockAssistants.length} 个助手 - {searchQuery.trim() && `,已筛选 ${filteredAssistants.length} 个`} + {(searchQuery.trim() || typeFilter !== "全部") && + `,已筛选 ${filteredAssistants.length} 个`}
@@ -315,6 +331,24 @@ export function AssistantPage() { +
+ {typeFilters.map((filter) => ( + + ))} +
+
@@ -404,7 +438,7 @@ export function AssistantPage() { 未找到匹配的助手
- 请调整关键词后再试。 + 请调整关键词或筛选条件后再试。
)}