temp:临时备份,完成一半知识库管理模块

This commit is contained in:
PingChuan
2025-12-01 12:33:53 +08:00
parent 754ec2c7b5
commit 0c1b81cfb2
25 changed files with 3564 additions and 560 deletions
@@ -27,8 +27,8 @@ import {
PauseCircleOutlined,
} from '@ant-design/icons';
import type { ColumnsType } from 'antd/es/table';
import type { Document, IndexingStatus } from '~/api/dify-dataset';
import { deleteDocument, toggleDocumentStatus, uploadDocument } from '~/api/dify-dataset';
import type { Document, IndexingStatus } from '~/api/dify-dataset/type/documentTypes';
import { deleteDocument, toggleDocumentStatus, uploadDocument } from '~/api/dify-dataset/api/documentApi';
import '../../styles/components/dify-dataset-manager/index.css';
interface DocumentListProps {
@@ -43,6 +43,7 @@ interface DocumentListProps {
onDocumentDeleted: (documentId: string) => void;
onDocumentStatusChanged: (documentId: string, enabled: boolean) => void;
onRefresh: () => void;
onViewDocument?: (document: Document) => void;
}
/**
@@ -50,7 +51,6 @@ interface DocumentListProps {
*/
export default function DocumentList({
datasetId,
datasetName,
documents,
loading,
total,
@@ -60,6 +60,7 @@ export default function DocumentList({
onDocumentDeleted,
onDocumentStatusChanged,
onRefresh,
onViewDocument,
}: DocumentListProps) {
const [searchValue, setSearchValue] = useState('');
const [uploading, setUploading] = useState(false);
@@ -238,15 +239,12 @@ export default function DocumentList({
width: 120,
render: (_, record) => (
<Space size="small">
<Tooltip title="查看详情">
<Tooltip title="查看分段">
<Button
type="text"
size="small"
icon={<EyeOutlined />}
onClick={() => {
// TODO: 查看文档详情/分段
message.info('功能开发中');
}}
onClick={() => onViewDocument?.(record)}
/>
</Tooltip>
<Popconfirm
@@ -273,11 +271,16 @@ export default function DocumentList({
];
return (
<div className="dataset-content">
{/* 头部区域 */}
<div className="dataset-header">
<h1>{datasetName || '知识库文档'}</h1>
<div className="dataset-header-actions">
<div className="document-list-page">
{/* 页面头部 */}
<div className="page-header">
<div className="header-left">
<h1></h1>
{/* <p className="page-description">
知识库的所有文件都在这里显示,整个知识库都可以被接到 Dify 引用或通过 Chat 插件进行索引。
</p> */}
</div>
<div className="header-actions">
<Tooltip title="刷新">
<Button
icon={<ReloadOutlined />}
@@ -297,36 +300,34 @@ export default function DocumentList({
loading={uploading}
disabled={!datasetId}
>
</Button>
</Upload>
</div>
</div>
{/* 工具栏 */}
<div className="document-list-toolbar">
{/* 搜索栏 */}
<div className="document-search-bar">
<Input
className="document-list-search"
placeholder="搜索文档..."
prefix={<SearchOutlined />}
value={searchValue}
onChange={(e) => setSearchValue(e.target.value)}
allowClear
style={{ width: 280 }}
/>
</div>
{/* 文档表格 - 固定表头和分页 */}
<div className="document-table-container">
{/* 文档表格 */}
<div className="document-table-wrapper">
{loading && documents.length === 0 ? (
<div className="dataset-loading">
<div className="loading-state">
<Spin size="large" />
<span className="text-gray-500">...</span>
<div className="loading-text">...</div>
</div>
) : filteredDocuments.length === 0 ? (
<div className="dataset-empty">
<Empty
description={searchValue ? '未找到匹配的文档' : '暂无文档'}
>
<div className="empty-state">
<Empty description={searchValue ? '未找到匹配的文档' : '暂无文档'}>
{!searchValue && (
<Upload
beforeUpload={handleUpload}
@@ -354,7 +355,7 @@ export default function DocumentList({
)}
</div>
{/* 固定底部分页器 */}
{/* 底部分页器 */}
{filteredDocuments.length > 0 && (
<div className="document-pagination">
<span className="pagination-total"> {total} </span>