@@ -147,17 +147,17 @@ export function AIBatchImportDialog({
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={(o) => (loading ? null : onOpenChange(o))}>
|
||||
<DialogContent className="glass-panel flex max-h-[92vh] flex-col gap-0 overflow-hidden sm:max-w-3xl">
|
||||
<DialogHeader className="shrink-0">
|
||||
<DialogHeader className="shrink-0 pl-2 pr-6">
|
||||
<DialogTitle className="flex items-center gap-2">
|
||||
<Sparkles className="size-5 text-primary" />
|
||||
AI 批量整理
|
||||
</DialogTitle>
|
||||
<DialogDescription>
|
||||
<DialogDescription className="pb-2">
|
||||
粘贴多个题目 / 面试题 / 知识点,AI 会整理成结构化数据。插入前可预览、编辑并勾选。
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
<div className="grid min-w-0 flex-1 gap-4 overflow-y-auto py-3 pr-1">
|
||||
<div className="grid min-w-0 flex-1 gap-4 overflow-y-auto py-3 px-2">
|
||||
<div className="flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-2 font-mono text-xs text-muted-foreground">
|
||||
<span className="text-primary">model</span> {settings.model || "—"}
|
||||
<span className="mx-1 opacity-40">|</span>
|
||||
|
||||
@@ -115,14 +115,14 @@ export function DetailDialog({
|
||||
<span className={cn("rounded-md border px-2 py-0.5 text-[10px]", diff.color)}>{diff.label}</span>
|
||||
</div>
|
||||
<DialogTitle className="text-pretty text-xl">{item.title}</DialogTitle>
|
||||
{item.summary && <p className="text-sm leading-relaxed text-muted-foreground">{item.summary}</p>}
|
||||
{item.summary && <p className="text-sm leading-relaxed text-muted-foreground pb-2">{item.summary}</p>}
|
||||
</DialogHeader>
|
||||
|
||||
<div className="grid min-w-0 flex-1 gap-5 overflow-y-auto py-2">
|
||||
{item.content && (
|
||||
<section className="min-w-0">
|
||||
<h4 className="mb-1.5 font-mono text-xs uppercase tracking-wide text-muted-foreground">详细内容</h4>
|
||||
<p className="whitespace-pre-wrap break-words text-sm leading-relaxed">{item.content}</p>
|
||||
<Markdown content={item.content} />
|
||||
</section>
|
||||
)}
|
||||
|
||||
@@ -138,7 +138,7 @@ export function DetailDialog({
|
||||
{item.notes && (
|
||||
<section className="min-w-0">
|
||||
<h4 className="mb-1.5 font-mono text-xs uppercase tracking-wide text-muted-foreground">个人笔记</h4>
|
||||
<p className="whitespace-pre-wrap break-words rounded-lg border border-border bg-muted/30 p-3 text-sm leading-relaxed">
|
||||
<p className="whitespace-pre-wrap wrap-break-word rounded-lg border border-border bg-muted/30 p-3 text-sm leading-relaxed">
|
||||
{item.notes}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -186,7 +186,7 @@ export function ItemDialog({
|
||||
<DialogDescription>记录前端核心概念、代码片段与个人笔记。</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
<div className="grid min-w-0 flex-1 gap-4 overflow-y-auto py-2">
|
||||
<div className="grid min-w-0 flex-1 gap-4 overflow-y-auto p-2">
|
||||
<div className="grid gap-2">
|
||||
<Label htmlFor="title">标题 *</Label>
|
||||
<Input
|
||||
@@ -210,7 +210,7 @@ export function ItemDialog({
|
||||
<div className="grid grid-cols-3 gap-3">
|
||||
<div className="grid gap-2">
|
||||
<Label>分类</Label>
|
||||
<Select value={form.category} onValueChange={(v) => update("category", v)} items={CATEGORY_OPTIONS}>
|
||||
<Select value={form.category} onValueChange={(v) => update("category", v!)} items={CATEGORY_OPTIONS}>
|
||||
<SelectTrigger>
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
|
||||
Reference in New Issue
Block a user