feat: 知识库文档列表标题增加「清空」按钮——一键清空全部文档(分块与检索索引级联删除),清空前弹窗警告确认

This commit is contained in:
xianrenge
2026-08-18 01:37:29 +08:00
parent 405bdec2c6
commit 01b17177c8
7 changed files with 82 additions and 4 deletions
+2
View File
@@ -526,6 +526,8 @@ export const api = {
) => invoke<KbImportResult[]>("kb_import_documents", { kbId, files }),
removeKbDocument: (documentId: string) =>
invoke<void>("remove_kb_document", { documentId }),
kbClearDocuments: (kbId: string) =>
invoke<number>("kb_clear_documents", { kbId }),
kbRechunkDocument: (documentId: string) =>
invoke<number>("kb_rechunk_document", { documentId }),
kbSearch: (kbId: string | null, query: string, page?: number, pageSize?: number) =>
+31 -2
View File
@@ -253,6 +253,25 @@ export default function KnowledgeBasePage() {
}
}
async function handleClearDocs() {
if (!selected) return;
if (
!confirm(
`确定清空知识库「${selected.name}」的全部 ${docTotal} 个文档吗?\n\n此操作不可恢复,所有文档、分块与检索索引将一并删除。`,
)
) {
return;
}
try {
const n = await api.kbClearDocuments(selected.id);
setMsg(`已清空 ${n} 个文档`);
await loadDocPage(selected.id, 1);
await refreshKbs();
} catch (e) {
setMsg(`清空失败:${String(e)}`);
}
}
async function handleSearch(page = 1) {
if (!query.trim()) return;
setSearching(true);
@@ -553,8 +572,18 @@ export default function KnowledgeBasePage() {
{/* 文档列表 */}
<section className="mb-6">
<div className="mb-2 text-xs uppercase text-slate-500">
{docTotal}
<div className="mb-2 flex items-center justify-between">
<div className="text-xs uppercase text-slate-500">
{docTotal}
</div>
{docTotal > 0 ? (
<button
className="rounded-lg border border-border bg-panel-2 px-2.5 py-1 text-xs text-slate-400 hover:text-red-400"
onClick={handleClearDocs}
>
</button>
) : null}
</div>
{docs.length === 0 ? (
<div className="rounded-xl border border-dashed border-border bg-panel/50 px-4 py-10 text-center text-sm text-slate-500">