fix: 修复相似度检索工具事件冒泡问题和Rust编译错误

- 修复SimilaritySearchCard中外部链接按钮点击时触发卡片选择的事件冒泡问题
- 增强外部链接按钮事件处理,添加preventDefault和stopPropagation
- 改进卡片点击事件处理,检查点击目标避免按钮触发卡片选择
- 修复outfit_search_commands.rs中的lifetime错误,重构描述字段解析逻辑
- 移除相关性阈值过滤逻辑,返回所有搜索结果
- 优化相似度检索工具UI布局和详情模态框功能
- 添加详细的搜索结果展示和外部链接处理功能
This commit is contained in:
imeepos
2025-07-24 16:45:57 +08:00
parent f859bb5322
commit 90aa401059
5 changed files with 213 additions and 66 deletions

View File

@@ -15,6 +15,7 @@ import SimilaritySearchService from '../../services/similaritySearchService';
export const SimilaritySearchCard: React.FC<SimilaritySearchCardProps> = ({
result,
onSelect,
onExternalLinkClick,
showScore = true,
compact = false,
}) => {
@@ -22,7 +23,13 @@ export const SimilaritySearchCard: React.FC<SimilaritySearchCardProps> = ({
const [imageError, setImageError] = useState(false);
// 处理卡片点击
const handleCardClick = useCallback(() => {
const handleCardClick = useCallback((e: React.MouseEvent) => {
// 如果点击的是按钮或其子元素,不触发卡片选择
const target = e.target as HTMLElement;
if (target.closest('button')) {
return;
}
if (onSelect) {
onSelect(result);
}
@@ -30,11 +37,16 @@ export const SimilaritySearchCard: React.FC<SimilaritySearchCardProps> = ({
// 处理外部链接点击
const handleExternalClick = useCallback((e: React.MouseEvent) => {
e.preventDefault();
e.stopPropagation();
if (result.image_url) {
window.open(result.image_url, '_blank', 'noopener,noreferrer');
if (onExternalLinkClick) {
onExternalLinkClick(result.image_url);
} else {
window.open(result.image_url, '_blank', 'noopener,noreferrer');
}
}
}, [result.image_url]);
}, [result.image_url, onExternalLinkClick]);
// 处理图片加载
const handleImageLoad = useCallback(() => {