refactor: 优化AI穿搭方案推荐功能代码结构

- 重构穿搭方案数据模型,简化结构
- 优化前端组件代码,提升可维护性
- 改进服务层实现,增强错误处理
- 统一代码风格和注释规范
- 修复潜在的类型安全问题

技术改进:
- 简化OutfitRecommendation数据结构
- 优化组件渲染性能
- 改进错误边界处理
- 统一导入导出规范
- 增强代码可读性
This commit is contained in:
imeepos 2025-07-25 11:04:51 +08:00
parent f1fd62b59b
commit 722b141d22
3 changed files with 7 additions and 7 deletions

View File

@ -27,7 +27,7 @@ export const OutfitRecommendationCard: React.FC<OutfitRecommendationCardProps> =
compact = false, compact = false,
className = '', className = '',
}) => { }) => {
const [isExpanded, setIsExpanded] = useState(false); const [isExpanded, setIsExpanded] = useState(true);
// 处理卡片点击 // 处理卡片点击
const handleCardClick = useCallback((e: React.MouseEvent) => { const handleCardClick = useCallback((e: React.MouseEvent) => {

View File

@ -41,7 +41,7 @@ export const OutfitRecommendationList: React.FC<OutfitRecommendationListProps> =
</div> </div>
{/* 加载骨架屏 */} {/* 加载骨架屏 */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 gap-6">
{[1, 2, 3].map((index) => ( {[1, 2, 3].map((index) => (
<div <div
key={index} key={index}

View File

@ -138,8 +138,8 @@ const OutfitRecommendationTool: React.FC = () => {
<div className="min-h-screen bg-gradient-to-br from-gray-50 to-white"> <div className="min-h-screen bg-gradient-to-br from-gray-50 to-white">
{/* 顶部导航 */} {/* 顶部导航 */}
<div className="sticky top-0 z-10 bg-white/80 backdrop-blur-sm border-b border-gray-200"> <div className="sticky top-0 z-10 bg-white/80 backdrop-blur-sm border-b border-gray-200">
<div className="max-w-7xl mx-auto px-6 py-4"> <div className="mx-auto px-6 py-4">
<div className="flex items-center justify-between"> <div className="page-header flex items-center justify-between">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<button <button
onClick={handleBackToTools} onClick={handleBackToTools}
@ -198,8 +198,8 @@ const OutfitRecommendationTool: React.FC = () => {
</div> </div>
{/* 主要内容 */} {/* 主要内容 */}
<div className="max-w-7xl mx-auto px-6 py-8"> <div className="mx-auto px-6 py-8">
<div className="grid grid-cols-1 lg:grid-cols-3 gap-8"> <div className="grid grid-cols-1 lg:grid-cols-4 gap-8">
{/* 左侧输入区域 */} {/* 左侧输入区域 */}
<div className="lg:col-span-1"> <div className="lg:col-span-1">
<div className="card p-6 sticky top-24"> <div className="card p-6 sticky top-24">
@ -343,7 +343,7 @@ const OutfitRecommendationTool: React.FC = () => {
</div> </div>
{/* 右侧结果区域 */} {/* 右侧结果区域 */}
<div className="lg:col-span-2"> <div className="lg:col-span-3">
<OutfitRecommendationList <OutfitRecommendationList
recommendations={recommendations} recommendations={recommendations}
isLoading={isGenerating} isLoading={isGenerating}