From 74c20f7e7ba38c53e66bec240fbbdbd2e5a417fc Mon Sep 17 00:00:00 2001 From: imeepos Date: Fri, 25 Jul 2025 15:45:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E7=B4=A0=E6=9D=90?= =?UTF-8?q?=E5=BA=93=E6=A3=80=E7=B4=A2=E7=9A=84=E9=AB=98=E7=BA=A7=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E8=A7=86=E5=9B=BE=E5=88=87=E6=8D=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增功能: - 高级设置面板:相关性阈值、最大结果数量、包含信息选项 - 视图切换:网格视图和列表视图切换 - 环境标签和服装类别快速过滤器 - 设置重置和应用功能 UI改进: - 设置按钮现在可以展开/收起高级设置面板 - 视图切换按钮支持网格和列表两种显示模式 - 列表视图使用紧凑布局,网格视图保持卡片布局 - 添加悬停效果和状态指示 交互优化: - 设置面板包含完整的搜索配置选项 - 视图模式状态管理和动态样式切换 - 响应式布局适配不同屏幕尺寸 --- .../material/MaterialSearchPanel.tsx | 133 ++++++++++++++++-- .../material/MaterialSearchResults.tsx | 43 ++++-- 2 files changed, 154 insertions(+), 22 deletions(-) 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) => ( ))}