diff --git a/frontend-web/src/pages/StudioNotebookDetailPage.tsx b/frontend-web/src/pages/StudioNotebookDetailPage.tsx index a064fbdf..4e60a29f 100644 --- a/frontend-web/src/pages/StudioNotebookDetailPage.tsx +++ b/frontend-web/src/pages/StudioNotebookDetailPage.tsx @@ -3,6 +3,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useParams } from "react-router-dom"; import { + AlertCircle, AlignLeft, ArrowLeft, BookOpen, @@ -72,14 +73,20 @@ function SourceCard({ }) { const title = item.title ?? item.document?.title ?? "未命名"; const isProcessing = item.status === "processing"; + const isFailed = item.status === "failed"; return (
onToggle(item.id)} - className={`group relative flex h-32 w-full cursor-pointer flex-col justify-between rounded-2xl p-4 ring-1 transition-colors ${selected - ? "bg-primary/10 ring-primary" - : "bg-muted ring-border/50 hover:bg-muted/70" + title={isFailed ? `${title}(处理失败)` : title} + onClick={() => { + if (isFailed) return; + onToggle(item.id); + }} + className={`group relative flex h-32 w-full flex-col justify-between rounded-2xl p-4 ring-1 transition-colors ${isFailed + ? "cursor-default bg-destructive/5 ring-destructive/40" + : selected + ? "cursor-pointer bg-primary/10 ring-primary" + : "cursor-pointer bg-muted ring-border/50 hover:bg-muted/70" }`} > {/* 删除按钮 - 右上角始终显示,悬停时高亮 */} @@ -97,13 +104,15 @@ function SourceCard({
{isProcessing ? ( + ) : isFailed ? ( + ) : ( )}
-

{title}

-
- {title} +
+

{title}

+ {isFailed &&

处理失败,请删除后重试

}
);