Skip to content

Commit b7d85d5

Browse files
committed
feat(knowledge): 体系跨页跳转传参(focusSystemId 同模式)
1 parent e765159 commit b7d85d5

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

‎app/src/App.tsx‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ function App() {
5555
const [focusSessionId, setFocusSessionId] = useState<number | null>(null);
5656
// v0.7.1:跨页直达目标笔记(会话页"查看笔记" → 笔记页自动选中并滚动可见)
5757
const [focusNoteId, setFocusNoteId] = useState<number | null>(null);
58+
// v0.13.7:跨页直达目标体系(组行徽标/结算简报 → 体系页自动选中)
59+
const [focusSystemId, setFocusSystemId] = useState<number | null>(null);
5860
// 全局采集状态(ADR-007:与页面解耦,徽标常驻导航栏)
5961
const [capturing, setCapturing] = useState(false);
6062
const [recovering, setRecovering] = useState(false);
@@ -267,15 +269,20 @@ function App() {
267269
{/* v0.7.1:focusNoteId 定位 + 来源会话反向跳转(与课堂助手 onOpenSessions 同模式) */}
268270
<NotesPage
269271
focusNoteId={focusNoteId}
272+
onOpenSystem={(id) => {
273+
setFocusSystemId(id);
274+
setPage("knowledge");
275+
}}
270276
onOpenSessions={(id) => {
271277
setFocusSessionId(id);
272278
setPage("sessions");
273279
}}
274280
/>
275281
</div>
276282
<div style={{ flex: 1, display: page === "knowledge" ? "block" : "none", overflow: "hidden" }}>
277-
{/* v0.13.1:知识体系页(三时钟纪律——体系进周/季度视图,不与每日复习面混排) */}
278-
<KnowledgePage />
283+
{/* v0.13.1:知识体系页(三时钟纪律——体系进周/季度视图,不与每日复习面混排)
284+
v0.13.7:focusSystemId 跨页直达(组行徽标/结算简报 → 自动选中体系) */}
285+
<KnowledgePage focusSystemId={focusSystemId} />
279286
</div>
280287
<div style={{ flex: 1, display: page === "settings" ? "block" : "none", overflow: "hidden" }}>
281288
{/* 2026-08-21:设置页(保留挂载——面板状态不因切页重置;TD-004 同模式) */}

‎app/src/pages/KnowledgePage.tsx‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@ const MIDDLE_TABS: { key: MiddleView; label: string }[] = [
3131
{ key: "model", label: "⚙ 模型" },
3232
];
3333

34-
export default function KnowledgePage() {
34+
interface Props {
35+
/** 跨页直达目标体系(v0.13.7:组行徽标/结算简报 → 体系页自动选中) */
36+
focusSystemId?: number | null;
37+
}
38+
39+
export default function KnowledgePage({ focusSystemId }: Props) {
3540
const [systems, setSystems] = useState<KnowledgeSystem[]>([]);
3641
const [selectedSystemId, setSelectedSystemId] = useState<number | null>(null);
3742
const [nodes, setNodes] = useState<KnowledgeNode[]>([]);
@@ -81,6 +86,12 @@ export default function KnowledgePage() {
8186

8287
useEffect(() => { void loadSystems(); }, [loadSystems]);
8388

89+
// v0.13.7:跨页直达目标体系(与 NotesPage focusNoteId 同模式——仅 focusSystemId
90+
// 变化时跟随;空态无体系时该值无意义,由既有选中/创建逻辑接管)
91+
useEffect(() => {
92+
if (focusSystemId != null) setSelectedSystemId(focusSystemId);
93+
}, [focusSystemId]);
94+
8495
useEffect(() => {
8596
if (selectedSystemId != null) void loadSystemDetail(selectedSystemId);
8697
else { setNodes([]); setConcepts([]); setModels([]); setLinks([]); setSelection(null); }

0 commit comments

Comments
 (0)