diff --git a/.DS_Store b/.DS_Store index 38e3655..b1b4307 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/dist.zip b/dist.zip deleted file mode 100644 index c7314ce..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/src/components/MindMap.jsx b/src/components/MindMap.jsx index a459e22..53a89ac 100644 --- a/src/components/MindMap.jsx +++ b/src/components/MindMap.jsx @@ -144,11 +144,11 @@ const MindMap = ({ content, title }) => { try { const processedMarkdown = preprocessMarkdownForMindMap(markdown, title); - console.log('=== 思维导图数据调试 ==='); - console.log('原始markdown内容:'); - console.log(markdown); - console.log('预处理后的markdown:'); - console.log(processedMarkdown); + // console.log('=== 思维导图数据调试 ==='); + // console.log('原始markdown内容:'); + // console.log(markdown); + // console.log('预处理后的markdown:'); + // console.log(processedMarkdown); const transformer = new Transformer(); const { root } = transformer.transform(processedMarkdown); @@ -161,10 +161,20 @@ const MindMap = ({ content, title }) => { markmapRef.current.fit(); - // 延迟一下再次调用fit,确保内容完全渲染 + // 延迟一下再次调用fit并放大,确保内容完全渲染 setTimeout(() => { if (markmapRef.current) { markmapRef.current.fit(); + // 在fit之后,再放大1.8倍以获得更好的可读性 + try { + const { state } = markmapRef.current; + if (state) { + const currentScale = state.transform.k; + markmapRef.current.rescale(currentScale * 1.8); + } + } catch (e) { + console.log('缩放调整失败:', e); + } } }, 500); diff --git a/src/pages/KnowledgeBasePage.css b/src/pages/KnowledgeBasePage.css index f02f2f0..3f252ad 100644 --- a/src/pages/KnowledgeBasePage.css +++ b/src/pages/KnowledgeBasePage.css @@ -93,8 +93,6 @@ padding: 0.5rem; border: none; border-radius: 6px; - background: #f1f5f9; - color: #64748b; cursor: pointer; transition: all 0.2s ease; display: flex; @@ -102,9 +100,20 @@ justify-content: center; } +.btn-new-kb { + background: #667eea; + color: white; +} + .btn-new-kb:hover { - background: #e2e8f0; - color: #667eea; + background: #5568d3; + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3); +} + +.btn-toggle-sidebar { + background: #f1f5f9; + color: #64748b; } .btn-toggle-sidebar:hover { @@ -119,6 +128,27 @@ padding: 0.5rem; } +/* 日期分组 */ +.kb-date-group { + margin-bottom: 1rem; +} + +.date-group-header { + padding: 0.5rem 0.75rem; + margin: 0.5rem 0; + font-size: 0.75rem; + font-weight: 600; + color: #64748b; + text-transform: uppercase; + letter-spacing: 0.05em; + border-bottom: 1px solid #e2e8f0; + background: #f8fafc; + border-radius: 6px; + position: sticky; + top: 0; + z-index: 10; +} + .kb-list-item { padding: 1rem; margin-bottom: 0.5rem; @@ -627,13 +657,25 @@ width: 18px; height: 18px; cursor: pointer; + flex-shrink: 0; } -.meeting-item label { - cursor: pointer; +.meeting-item-content { flex: 1; + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.meeting-item-title { font-size: 0.95rem; color: #475569; + font-weight: 500; +} + +.meeting-item-creator { + font-size: 0.8rem; + color: #94a3b8; } .selected-meetings-info { diff --git a/src/pages/KnowledgeBasePage.jsx b/src/pages/KnowledgeBasePage.jsx index 98a98d8..5225eb4 100644 --- a/src/pages/KnowledgeBasePage.jsx +++ b/src/pages/KnowledgeBasePage.jsx @@ -74,10 +74,14 @@ const KnowledgeBasePage = ({ user }) => { // 获取所有知识库(个人和共享) apiClient.get(buildApiUrl(API_ENDPOINTS.KNOWLEDGE_BASE.LIST)) .then(response => { - setKbs(response.data.kbs); + // 按创建时间倒序排序 + const sortedKbs = response.data.kbs.sort((a, b) => + new Date(b.created_at) - new Date(a.created_at) + ); + setKbs(sortedKbs); // 如果有知识库且没有选中,默认选中第一个 - if (response.data.kbs.length > 0 && !selectedKb) { - loadKbDetail(response.data.kbs[0].kb_id); + if (sortedKbs.length > 0 && !selectedKb) { + loadKbDetail(sortedKbs[0].kb_id); } setLoading(false); }) @@ -177,6 +181,45 @@ const KnowledgeBasePage = ({ user }) => { }); }; + const formatTime = (dateString) => { + const date = new Date(dateString); + return date.toLocaleTimeString('zh-CN', { + hour: '2-digit', + minute: '2-digit' + }); + }; + + const formatShortDate = (dateString) => { + const date = new Date(dateString); + return date.toLocaleDateString('zh-CN', { + month: 'numeric', + day: 'numeric' + }); + }; + + const isToday = (dateString) => { + const date = new Date(dateString); + const today = new Date(); + return date.getDate() === today.getDate() && + date.getMonth() === today.getMonth() && + date.getFullYear() === today.getFullYear(); + }; + + const groupKbsByDate = (kbList) => { + const todayKbs = []; + const pastKbs = []; + + kbList.forEach(kb => { + if (isToday(kb.created_at)) { + todayKbs.push(kb); + } else { + pastKbs.push(kb); + } + }); + + return { todayKbs, pastKbs }; + }; + const handleLogoClick = () => { navigate('/dashboard'); }; @@ -445,51 +488,110 @@ const KnowledgeBasePage = ({ user }) => {
暂无知识库条目
) : ( - kbs.map(kb => ( -