diff --git a/apps/desktop/src/components/material/MaterialSearchPanel.tsx b/apps/desktop/src/components/material/MaterialSearchPanel.tsx index 4835675..5e619ff 100644 --- a/apps/desktop/src/components/material/MaterialSearchPanel.tsx +++ b/apps/desktop/src/components/material/MaterialSearchPanel.tsx @@ -134,7 +134,7 @@ const MaterialSearchPanel: React.FC = ({ return (
-
+
{/* 头部 */}
@@ -193,8 +193,113 @@ const MaterialSearchPanel: React.FC = ({
)} + {/* 高级设置面板 */} + {showAdvanced && ( +
+
+

+ + 高级搜索设置 +

+ +
+ {/* 相关性阈值 */} +
+ + +
+ + {/* 最大结果数量 */} +
+ + +
+
+ +
+ {/* 生成选项 */} +
+ +
+ + + +
+
+ + {/* 环境过滤 */} +
+ +
+ {['室内', '户外', '办公室', '聚会', '约会'].map((tag) => ( + + ))} +
+
+ + {/* 类别过滤 */} +
+ +
+ {['上衣', '下装', '外套', '鞋子', '配饰'].map((category) => ( + + ))} +
+
+
+ +
+ + +
+
+
+ )} + {/* 主要内容 */} -
+
{/* 错误状态 */} {error && (
@@ -230,17 +335,19 @@ const MaterialSearchPanel: React.FC = ({ {/* 搜索结果 */} {searchResponse && !isGenerating && ( - +
+ +
)} {/* 空状态 */} diff --git a/apps/desktop/src/components/material/MaterialSearchResults.tsx b/apps/desktop/src/components/material/MaterialSearchResults.tsx index 1fdc722..d3f94d6 100644 --- a/apps/desktop/src/components/material/MaterialSearchResults.tsx +++ b/apps/desktop/src/components/material/MaterialSearchResults.tsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react'; +import React, { useCallback, useState } from 'react'; import { Grid, List, @@ -26,6 +26,9 @@ const MaterialSearchResults: React.FC = ({ onMaterialSelect, className = '', }) => { + // 视图模式状态 + const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid'); + // 计算分页信息 const totalPages = MaterialSearchService.getTotalPages(totalSize, pageSize); const pageInfo = MaterialSearchService.getPageRangeInfo(currentPage, pageSize, totalSize); @@ -140,7 +143,7 @@ const MaterialSearchResults: React.FC = ({ // 正常状态 - 显示结果列表 return ( -
+
{/* 列表标题和统计信息 */}
@@ -157,27 +160,49 @@ const MaterialSearchResults: React.FC = ({
- {/* 视图切换(预留) */} + {/* 视图切换 */}
- -
- {/* 素材卡片网格 */} -
+ {/* 素材卡片展示 */} +
{results.map((material, index) => ( ))}