fix(textbooks): 规范核查修复 — 安全漏洞+功能缺失+i18n+类型安全
安全:createPrerequisiteAction 补充 prerequisiteKpId 归属校验;deletePrerequisiteAction 补充双知识点归属校验,防止跨教材越权。 功能:实现图谱添加/删除前置依赖(Dialog + Select 选择知识点 + 调用 Server Action + 自动刷新图谱),替换原 no-op 回调。 i18n:修复 8 处硬编码英文字符串(textbook-reader/chapter-sidebar-list/textbook-card/textbook-form-dialog/textbook-settings-dialog/create-chapter-dialog/teacher-textbook-reader),新增 saveFailed/createFailed/updateFailed/deleteFailed/questionCreatorDefaultContent 等 key。 类型安全:graph-prerequisite-edge.tsx 使用 GraphEdgeData 类型经 unknown 安全转换,替代裸 as 断言。 规范:analytics.tsx 移动 use client 指令到文件第一行;同步架构文档 005 JSON 类型定义(GraphNodeData/GraphEdgeData/MasteryLevel)。 验证:教材模块 lint 零错误、tsc 零错误、193 个单元测试全部通过。
This commit is contained in:
@@ -48,6 +48,11 @@
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"saveFailed": "Failed to save",
|
||||
"createFailed": "Failed to create",
|
||||
"updateFailed": "Failed to update",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"questionCreatorDefaultContent": "Please explain the knowledge point: {name}",
|
||||
"addKnowledgePoint": "Add Knowledge Point",
|
||||
"clickToViewKp": "Click to view knowledge point details",
|
||||
"noChapters": "No chapters",
|
||||
@@ -228,12 +233,20 @@
|
||||
"viewAllQuestions": "View all questions",
|
||||
"editPrerequisite": "Edit prerequisites",
|
||||
"addPrerequisite": "Add prerequisite",
|
||||
"addPrerequisiteTitle": "Add Prerequisite Knowledge Point",
|
||||
"addPrerequisiteDesc": "Select a knowledge point as the prerequisite of the current one.",
|
||||
"selectPrerequisite": "Select a prerequisite knowledge point",
|
||||
"removePrerequisite": "Remove",
|
||||
"noPrerequisites": "No prerequisite knowledge points",
|
||||
"noSuccessors": "No successor knowledge points",
|
||||
"masteryNotAssessed": "Not assessed",
|
||||
"correctRate": "Correct rate",
|
||||
"totalQuestions": "Total questions"
|
||||
"totalQuestions": "Total questions",
|
||||
"prerequisiteAdded": "Prerequisite added",
|
||||
"prerequisiteRemoved": "Prerequisite removed",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"saving": "Saving..."
|
||||
},
|
||||
"toolbar": {
|
||||
"search": "Search knowledge points",
|
||||
|
||||
@@ -48,6 +48,11 @@
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"saving": "保存中...",
|
||||
"saveFailed": "保存失败",
|
||||
"createFailed": "创建失败",
|
||||
"updateFailed": "更新失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"questionCreatorDefaultContent": "请讲解知识点:{name}",
|
||||
"addKnowledgePoint": "添加知识点",
|
||||
"clickToViewKp": "点击查看知识点详情",
|
||||
"noChapters": "暂无章节",
|
||||
@@ -228,12 +233,20 @@
|
||||
"viewAllQuestions": "查看全部题目",
|
||||
"editPrerequisite": "编辑前置依赖",
|
||||
"addPrerequisite": "添加前置",
|
||||
"addPrerequisiteTitle": "添加前置知识点",
|
||||
"addPrerequisiteDesc": "选择一个知识点作为当前知识点的前置依赖。",
|
||||
"selectPrerequisite": "请选择前置知识点",
|
||||
"removePrerequisite": "移除",
|
||||
"noPrerequisites": "暂无前置知识点",
|
||||
"noSuccessors": "暂无后置知识点",
|
||||
"masteryNotAssessed": "未测评",
|
||||
"correctRate": "正确率",
|
||||
"totalQuestions": "总题数"
|
||||
"totalQuestions": "总题数",
|
||||
"prerequisiteAdded": "前置依赖已添加",
|
||||
"prerequisiteRemoved": "前置依赖已移除",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"saving": "保存中..."
|
||||
},
|
||||
"toolbar": {
|
||||
"search": "搜索知识点",
|
||||
|
||||
Reference in New Issue
Block a user