From 5f186bfb2afe9a961947ef06a6881c49cd27bebc Mon Sep 17 00:00:00 2001 From: dmy Date: Mon, 12 Jan 2026 22:56:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8C=89=E5=8F=91=E5=B8=83=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=80=92=E5=BA=8F=E6=8E=92=E5=88=97AI=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/Dashboard-AI.vue | 10 +++++++++- src/ai/ai.service.ts | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Dashboard-AI.vue b/frontend/src/components/Dashboard-AI.vue index 41d7c77..95c17ac 100644 --- a/frontend/src/components/Dashboard-AI.vue +++ b/frontend/src/components/Dashboard-AI.vue @@ -224,10 +224,18 @@ const fetchAIRecommendations = async () => { title: rec.title, url: bid?.url || '', source: bid?.source || '', - confidence: rec.confidence + confidence: rec.confidence, + publishDate: bid?.publishDate } }) + // 按发布时间倒序排列 + recommendations.sort((a: AIRecommendation, b: AIRecommendation) => { + if (!a.publishDate) return 1 + if (!b.publishDate) return -1 + return new Date(b.publishDate).getTime() - new Date(a.publishDate).getTime() + }) + aiRecommendations.value = recommendations // 保存推荐结果到数据库 diff --git a/src/ai/ai.service.ts b/src/ai/ai.service.ts index c3db107..5b670ee 100644 --- a/src/ai/ai.service.ts +++ b/src/ai/ai.service.ts @@ -144,6 +144,13 @@ ${JSON.stringify(bids.map(b => b.title), null, 2)}`; }); } + // 按发布时间倒序排列 + result.sort((a, b) => { + if (!a.publishDate) return 1; + if (!b.publishDate) return -1; + return new Date(b.publishDate).getTime() - new Date(a.publishDate).getTime(); + }); + return result; } catch (error) { this.logger.error('获取最新 AI 推荐失败:', error);