diff --git a/frontend/src/pages/KnowledgeBase/KnowledgeBase.jsx b/frontend/src/pages/KnowledgeBase/KnowledgeBase.jsx index 6c45e1e..b74c2f6 100644 --- a/frontend/src/pages/KnowledgeBase/KnowledgeBase.jsx +++ b/frontend/src/pages/KnowledgeBase/KnowledgeBase.jsx @@ -29,6 +29,7 @@ export default function KnowledgeBase() { const [treeData, setTreeData] = useState([]) const [loading, setLoading] = useState(false) const [uploading, setUploading] = useState(false) + const [sources, setSources] = useState([]) // 出处下拉选项 const [sourceTypeFilter, setSourceTypeFilter] = useState('') const [sourceDetailFilter, setSourceDetailFilter] = useState('') const [selectedTreeNode, setSelectedTreeNode] = useState(null) // { type, detail } @@ -54,9 +55,20 @@ export default function KnowledgeBase() { } } + const fetchSources = async () => { + try { + const data = await knowledgeService.listSources() + // 接口返回 [{source: "航空知识 2026年第1期"}, ...],提取 source 字段 + setSources(data.map(s => s.source).filter(Boolean)) + } catch { + // ignore + } + } + useEffect(() => { fetchItems() fetchTree() + fetchSources() }, [sourceTypeFilter]) // 上传 @@ -127,32 +139,37 @@ export default function KnowledgeBase() { title: '标题', dataIndex: 'title', key: 'title', - render: (text, record) => ( - {text} + width: 240, + render: (text) => ( + {text} ), }, { title: '作者', dataIndex: 'author', key: 'author', - render: (val) => val || null, + width: 80, + render: (val) => val || '-', }, { title: '播出/发表时间', dataIndex: 'publish_date', key: 'publish_date', - render: (val) => val || null, + width: 156, + render: (val) => val || '-', }, { title: '出处', dataIndex: 'source_detail', key: 'source_detail', + width: 170, render: (val) => val || '-', }, { title: '类型', dataIndex: 'source_type', key: 'source_type', + width: 88, render: (val) => ( {SOURCE_TYPE_LABEL[val] || val} @@ -163,11 +180,13 @@ export default function KnowledgeBase() { title: '入库时间', dataIndex: 'created_at', key: 'created_at', - render: (val) => val ? new Date(val).toLocaleString('zh-CN') : '-', + width: 140, + render: (val) => val ? new Date(val).toLocaleString('zh-CN', { hour12: false }).replace(' ', ' ') : '-', }, { title: '操作', key: 'action', + width: 86, render: (_, record) => (