refactor(grades,diagnostic): 成绩和学情诊断模块审计修复
P0-1: 10 个页面补充 requirePermission 权限校验 P0-2: diagnostic/data-access-reports.ts 移除直查 users 表,改用 getUserNamesByIds P0-3: 新增 grade/grades/diagnostic 三组 i18n 翻译文件(zh-CN/en) P0-4: 新增 /management/grade 重定向页面 P1-2: 抽取 toNumber/normalize/buildScopeClassFilter 到 lib/grade-utils.ts P1-3: 为 12 个 Action 新增 Zod safeParse 校验(schema.ts +12 查询 schema) P1-4: 修复 as 断言违规,改用类型守卫函数 P2-2: 移除 diagnostic 组件中 Tailwind 任意值 同步更新架构图文档 004 和 005
This commit is contained in:
87
src/shared/i18n/messages/en/diagnostic.json
Normal file
87
src/shared/i18n/messages/en/diagnostic.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"title": {
|
||||
"student": "Student Diagnostic",
|
||||
"class": "Class Diagnostic",
|
||||
"reportList": "Diagnostic Reports",
|
||||
"myDiagnostic": "My Diagnostic"
|
||||
},
|
||||
"type": {
|
||||
"individual": "Individual",
|
||||
"class": "Class",
|
||||
"grade": "Grade"
|
||||
},
|
||||
"status": {
|
||||
"draft": "Draft",
|
||||
"published": "Published",
|
||||
"archived": "Archived"
|
||||
},
|
||||
"filters": {
|
||||
"reportType": "Report Type",
|
||||
"status": "Status",
|
||||
"allTypes": "All types",
|
||||
"allStatuses": "All statuses"
|
||||
},
|
||||
"summary": {
|
||||
"overallMastery": "Overall Mastery",
|
||||
"strengths": "Strengths",
|
||||
"weaknesses": "Weaknesses",
|
||||
"students": "Students",
|
||||
"avgMastery": "Avg Mastery",
|
||||
"needAttention": "Need Attention",
|
||||
"class": "Class",
|
||||
"student": "Student"
|
||||
},
|
||||
"chart": {
|
||||
"radarTitle": "Knowledge Point Mastery",
|
||||
"radarDescription": "Radar chart of mastery level (student vs class average)",
|
||||
"heatmapTitle": "Knowledge Point Mastery Heatmap",
|
||||
"rankingTitle": "Knowledge Point Ranking",
|
||||
"noMasteryData": "No knowledge point mastery records found."
|
||||
},
|
||||
"report": {
|
||||
"generate": "Generate Diagnostic Report",
|
||||
"generateStudent": "Generate Student Diagnostic Report",
|
||||
"generateClass": "Generate Class Diagnostic Report",
|
||||
"publish": "Publish",
|
||||
"delete": "Delete",
|
||||
"publishTitle": "Publish Report",
|
||||
"publishConfirmation": "Are you sure you want to publish this report? It will be visible to relevant users.",
|
||||
"deleteTitle": "Delete Report",
|
||||
"deleteConfirmation": "Are you sure you want to delete this report? This action cannot be undone.",
|
||||
"confirm": "Confirm",
|
||||
"cancel": "Cancel",
|
||||
"publishing": "Publishing...",
|
||||
"deleting": "Deleting...",
|
||||
"recommendations": "Recommendations",
|
||||
"history": "Report History",
|
||||
"period": "Period",
|
||||
"createdAt": "Created At",
|
||||
"generatedBy": "Generated By",
|
||||
"overallScore": "Overall Score",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"strengths": {
|
||||
"title": "Strengths (≥80%)",
|
||||
"practice": "Practice",
|
||||
"empty": "No strength knowledge points"
|
||||
},
|
||||
"weaknesses": {
|
||||
"title": "Weaknesses (<60%)",
|
||||
"practice": "Practice",
|
||||
"empty": "No weakness knowledge points"
|
||||
},
|
||||
"empty": {
|
||||
"noData": "No diagnostic data",
|
||||
"noClassData": "Unable to load class mastery summary.",
|
||||
"noMastery": "No knowledge point mastery records found.",
|
||||
"noReports": "No diagnostic reports"
|
||||
},
|
||||
"error": {
|
||||
"generateFailed": "Failed to generate report",
|
||||
"generateClassFailed": "Failed to generate class report",
|
||||
"publishFailed": "Failed to publish",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"loadFailed": "Failed to load",
|
||||
"retry": "Retry"
|
||||
}
|
||||
}
|
||||
155
src/shared/i18n/messages/en/grade.json
Normal file
155
src/shared/i18n/messages/en/grade.json
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"delete": {
|
||||
"title": "Delete Grade",
|
||||
"description": "Are you sure you want to delete \"{name}\"? This action cannot be undone.",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Delete"
|
||||
},
|
||||
"empty": {
|
||||
"noGrades": {
|
||||
"title": "No Grades",
|
||||
"description": "No grades have been created for this school yet. Click \"Create Grade\" to start."
|
||||
},
|
||||
"noMatch": {
|
||||
"title": "No Matches",
|
||||
"description": "Try adjusting your search or filters."
|
||||
},
|
||||
"noAssignedGrades": {
|
||||
"title": "No Assigned Grades",
|
||||
"description": "You have not been assigned to manage any grades."
|
||||
},
|
||||
"selectGrade": {
|
||||
"title": "Select a Grade",
|
||||
"description": "Select a grade to view insights."
|
||||
},
|
||||
"noInsights": {
|
||||
"title": "No Insights Available",
|
||||
"description": "There is not enough assignment or grade data to generate insights for this grade."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"loadFailed": "Failed to load",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"noPermission": {
|
||||
"title": "No Permission",
|
||||
"description": "You do not have permission to perform this action."
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"create": {
|
||||
"title": "Create Grade"
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit Grade"
|
||||
},
|
||||
"field": {
|
||||
"school": "School",
|
||||
"name": "Grade Name",
|
||||
"order": "Order",
|
||||
"gradeHead": "Grade Head",
|
||||
"teachingHead": "Teaching Head"
|
||||
},
|
||||
"placeholder": {
|
||||
"school": "Select a school",
|
||||
"name": "e.g. Grade 1",
|
||||
"gradeHead": "Select grade head",
|
||||
"teachingHead": "Select teaching head"
|
||||
},
|
||||
"button": {
|
||||
"cancel": "Cancel",
|
||||
"create": "Create",
|
||||
"save": "Save"
|
||||
},
|
||||
"errors": {
|
||||
"schoolRequired": "Please select a school",
|
||||
"nameRequired": "Please enter a grade name",
|
||||
"nameTooLong": "Grade name cannot exceed 50 characters",
|
||||
"nameDuplicate": "A grade with this name already exists in this school",
|
||||
"orderInvalid": "Order must be an integer"
|
||||
}
|
||||
},
|
||||
"insights": {
|
||||
"assignments": {
|
||||
"title": "Assignments",
|
||||
"column": {
|
||||
"assignment": "Assignment",
|
||||
"status": "Status",
|
||||
"createdAt": "Created At",
|
||||
"targeted": "Targeted",
|
||||
"submitted": "Submitted",
|
||||
"graded": "Graded",
|
||||
"avg": "Average",
|
||||
"median": "Median"
|
||||
}
|
||||
},
|
||||
"ranking": {
|
||||
"title": "Class Ranking",
|
||||
"column": {
|
||||
"class": "Class",
|
||||
"students": "Students",
|
||||
"latestAvg": "Latest Avg",
|
||||
"prevAvg": "Previous Avg",
|
||||
"delta": "Delta",
|
||||
"overallAvg": "Overall Avg"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"classCount": "Classes",
|
||||
"studentCount": "Students",
|
||||
"studentDetail": "{count} students in total",
|
||||
"overallAvg": "Overall Average",
|
||||
"overallAvgDesc": "Weighted average across all grades",
|
||||
"latestAvg": "Latest Average"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"title": "Grade List",
|
||||
"notSet": "Not Set",
|
||||
"column": {
|
||||
"school": "School",
|
||||
"grade": "Grade",
|
||||
"order": "Order",
|
||||
"gradeHead": "Grade Head",
|
||||
"teachingHead": "Teaching Head",
|
||||
"updatedAt": "Updated At",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"actions": {
|
||||
"insights": "Insights",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"insights": {
|
||||
"title": "Grade Insights"
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"deleteSuccess": "Deleted successfully",
|
||||
"createSuccess": "Created successfully",
|
||||
"updateSuccess": "Updated successfully"
|
||||
},
|
||||
"toolbar": {
|
||||
"search": "Search grades...",
|
||||
"reset": "Reset",
|
||||
"create": "Create Grade",
|
||||
"filter": {
|
||||
"school": "School",
|
||||
"allSchools": "All Schools",
|
||||
"head": "Head",
|
||||
"allHeads": "All Heads",
|
||||
"missingBoth": "Missing Both Heads",
|
||||
"missingGradeHead": "Missing Grade Head",
|
||||
"missingTeachingHead": "Missing Teaching Head",
|
||||
"sort": "Sort",
|
||||
"sortDefault": "Default",
|
||||
"sortUpdatedDesc": "Recently Updated",
|
||||
"sortUpdatedAsc": "Oldest Updated",
|
||||
"sortNameAsc": "Name Ascending",
|
||||
"sortNameDesc": "Name Descending",
|
||||
"sortOrderAsc": "Order Ascending",
|
||||
"sortOrderDesc": "Order Descending"
|
||||
}
|
||||
}
|
||||
}
|
||||
143
src/shared/i18n/messages/en/grades.json
Normal file
143
src/shared/i18n/messages/en/grades.json
Normal file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"title": {
|
||||
"list": "Grade Records",
|
||||
"entry": "Grade Entry",
|
||||
"analytics": "Grade Analytics",
|
||||
"stats": "Grade Statistics",
|
||||
"myGrades": "My Grades",
|
||||
"childrenGrades": "Children Grades"
|
||||
},
|
||||
"filters": {
|
||||
"class": "Class",
|
||||
"subject": "Subject",
|
||||
"type": "Type",
|
||||
"semester": "Semester",
|
||||
"allClasses": "All classes",
|
||||
"allSubjects": "All subjects",
|
||||
"allTypes": "All types",
|
||||
"allSemesters": "All semesters",
|
||||
"searchPlaceholder": "Search by title..."
|
||||
},
|
||||
"type": {
|
||||
"exam": "Exam",
|
||||
"quiz": "Quiz",
|
||||
"homework": "Homework",
|
||||
"other": "Other"
|
||||
},
|
||||
"semester": {
|
||||
"s1": "Semester 1",
|
||||
"s2": "Semester 2"
|
||||
},
|
||||
"list": {
|
||||
"empty": "No grade records found.",
|
||||
"columns": {
|
||||
"student": "Student",
|
||||
"class": "Class",
|
||||
"subject": "Subject",
|
||||
"title": "Title",
|
||||
"score": "Score",
|
||||
"type": "Type",
|
||||
"semester": "Semester",
|
||||
"recordedBy": "Recorded By",
|
||||
"date": "Date"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"title": "Record Grade",
|
||||
"save": "Save Record",
|
||||
"saving": "Saving...",
|
||||
"cancel": "Cancel",
|
||||
"selectClass": "Select a class",
|
||||
"selectSubject": "Select a subject",
|
||||
"selectStudent": "Select a student",
|
||||
"titlePlaceholder": "e.g. Mid-term Exam",
|
||||
"score": "Score",
|
||||
"fullScore": "Full Score",
|
||||
"remark": "Remark (optional)",
|
||||
"remarkPlaceholder": "Notes about this grade...",
|
||||
"selectPrompt": "Please select class, subject and student"
|
||||
},
|
||||
"delete": {
|
||||
"title": "Delete Grade Record",
|
||||
"confirmation": "Are you sure you want to delete this grade record? This action cannot be undone.",
|
||||
"confirm": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"deleting": "Deleting..."
|
||||
},
|
||||
"export": {
|
||||
"detail": "Export Grade Details",
|
||||
"classReport": "Export Class Grade Report",
|
||||
"success": "Export succeeded",
|
||||
"failed": "Export failed"
|
||||
},
|
||||
"stats": {
|
||||
"title": "Statistics",
|
||||
"average": "Average",
|
||||
"median": "Median",
|
||||
"max": "Max",
|
||||
"min": "Min",
|
||||
"stdDev": "Std Dev",
|
||||
"variance": "Variance",
|
||||
"passRate": "Pass Rate",
|
||||
"excellentRate": "Excellent Rate",
|
||||
"count": "Count"
|
||||
},
|
||||
"analytics": {
|
||||
"trend": "Grade Trend",
|
||||
"classComparison": "Class Comparison",
|
||||
"subjectComparison": "Subject Comparison",
|
||||
"distribution": "Grade Distribution",
|
||||
"ranking": "Ranking",
|
||||
"rankingTrend": "Ranking Trend",
|
||||
"class": "Class",
|
||||
"subject": "Subject",
|
||||
"grade": "Grade",
|
||||
"averageScore": "Average score, pass rate, excellent rate",
|
||||
"passRate": "Pass Rate",
|
||||
"excellentRate": "Excellent Rate",
|
||||
"studentCount": "Student Count"
|
||||
},
|
||||
"batch": {
|
||||
"title": "Batch Grade Entry",
|
||||
"saving": "Saving...",
|
||||
"restored": "Restored unsaved grade draft",
|
||||
"invalidScores": "Invalid scores found",
|
||||
"fullScoreRequired": "Full score is required",
|
||||
"saved": "Saved",
|
||||
"score": "Score",
|
||||
"remark": "Remark",
|
||||
"fullScore": "Full Score",
|
||||
"type": "Type",
|
||||
"saveAll": "Save All",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"trend": {
|
||||
"title": "Grade Trend",
|
||||
"empty": "No grade records yet",
|
||||
"score": "Score",
|
||||
"date": "Date"
|
||||
},
|
||||
"summary": {
|
||||
"title": "Grade Summary",
|
||||
"averageScore": "Average Score",
|
||||
"classRank": "Class Rank",
|
||||
"totalRecords": "Total Records",
|
||||
"highestScore": "Highest Score",
|
||||
"lowestScore": "Lowest Score"
|
||||
},
|
||||
"empty": {
|
||||
"noRecords": "No grade records found.",
|
||||
"noData": "No data available",
|
||||
"noClassSelected": "Please select a class",
|
||||
"noStudentSelected": "Please select a student"
|
||||
},
|
||||
"error": {
|
||||
"loadFailed": "Failed to load",
|
||||
"saveFailed": "Failed to save",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"exportFailed": "Failed to export",
|
||||
"failedToCreate": "Failed to create",
|
||||
"failedToDelete": "Failed to delete",
|
||||
"retry": "Retry"
|
||||
}
|
||||
}
|
||||
87
src/shared/i18n/messages/zh-CN/diagnostic.json
Normal file
87
src/shared/i18n/messages/zh-CN/diagnostic.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"title": {
|
||||
"student": "学生学情诊断",
|
||||
"class": "班级学情诊断",
|
||||
"reportList": "诊断报告",
|
||||
"myDiagnostic": "我的学情诊断"
|
||||
},
|
||||
"type": {
|
||||
"individual": "个人",
|
||||
"class": "班级",
|
||||
"grade": "年级"
|
||||
},
|
||||
"status": {
|
||||
"draft": "草稿",
|
||||
"published": "已发布",
|
||||
"archived": "已归档"
|
||||
},
|
||||
"filters": {
|
||||
"reportType": "报告类型",
|
||||
"status": "状态",
|
||||
"allTypes": "全部类型",
|
||||
"allStatuses": "全部状态"
|
||||
},
|
||||
"summary": {
|
||||
"overallMastery": "总体掌握度",
|
||||
"strengths": "强项",
|
||||
"weaknesses": "弱项",
|
||||
"students": "学生数",
|
||||
"avgMastery": "平均掌握度",
|
||||
"needAttention": "需重点关注",
|
||||
"class": "班级",
|
||||
"student": "学生"
|
||||
},
|
||||
"chart": {
|
||||
"radarTitle": "知识点掌握度",
|
||||
"radarDescription": "掌握度雷达图(学生 vs 班级平均)",
|
||||
"heatmapTitle": "知识点掌握度热力图",
|
||||
"rankingTitle": "知识点排名",
|
||||
"noMasteryData": "暂无知识点掌握度记录"
|
||||
},
|
||||
"report": {
|
||||
"generate": "生成诊断报告",
|
||||
"generateStudent": "生成学生诊断报告",
|
||||
"generateClass": "生成班级诊断报告",
|
||||
"publish": "发布",
|
||||
"delete": "删除",
|
||||
"publishTitle": "发布报告",
|
||||
"publishConfirmation": "确定要发布此报告吗?发布后将对相关人员可见。",
|
||||
"deleteTitle": "删除报告",
|
||||
"deleteConfirmation": "确定要删除此报告吗?此操作不可撤销。",
|
||||
"confirm": "确认",
|
||||
"cancel": "取消",
|
||||
"publishing": "发布中...",
|
||||
"deleting": "删除中...",
|
||||
"recommendations": "学习建议",
|
||||
"history": "报告历史",
|
||||
"period": "周期",
|
||||
"createdAt": "创建时间",
|
||||
"generatedBy": "生成者",
|
||||
"overallScore": "总体得分",
|
||||
"actions": "操作"
|
||||
},
|
||||
"strengths": {
|
||||
"title": "强项(≥80%)",
|
||||
"practice": "练习",
|
||||
"empty": "暂无强项知识点"
|
||||
},
|
||||
"weaknesses": {
|
||||
"title": "弱项(<60%)",
|
||||
"practice": "练习",
|
||||
"empty": "暂无弱项知识点"
|
||||
},
|
||||
"empty": {
|
||||
"noData": "暂无诊断数据",
|
||||
"noClassData": "无法加载班级掌握度摘要",
|
||||
"noMastery": "暂无知识点掌握度记录",
|
||||
"noReports": "暂无诊断报告"
|
||||
},
|
||||
"error": {
|
||||
"generateFailed": "生成报告失败",
|
||||
"generateClassFailed": "生成班级报告失败",
|
||||
"publishFailed": "发布失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"loadFailed": "加载失败",
|
||||
"retry": "重试"
|
||||
}
|
||||
}
|
||||
155
src/shared/i18n/messages/zh-CN/grade.json
Normal file
155
src/shared/i18n/messages/zh-CN/grade.json
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"delete": {
|
||||
"title": "删除年级",
|
||||
"description": "确定要删除「{name}」吗?此操作不可撤销。",
|
||||
"cancel": "取消",
|
||||
"confirm": "删除"
|
||||
},
|
||||
"empty": {
|
||||
"noGrades": {
|
||||
"title": "暂无年级",
|
||||
"description": "学校尚未创建任何年级,点击「新建年级」开始配置。"
|
||||
},
|
||||
"noMatch": {
|
||||
"title": "无匹配结果",
|
||||
"description": "尝试调整搜索条件或筛选器。"
|
||||
},
|
||||
"noAssignedGrades": {
|
||||
"title": "未分配年级",
|
||||
"description": "您尚未被分配管理任何年级。"
|
||||
},
|
||||
"selectGrade": {
|
||||
"title": "请选择年级",
|
||||
"description": "选择一个年级以查看洞察数据。"
|
||||
},
|
||||
"noInsights": {
|
||||
"title": "暂无洞察数据",
|
||||
"description": "所选年级暂无足够的作业或成绩数据生成洞察。"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"loadFailed": "加载失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"noPermission": {
|
||||
"title": "无权限",
|
||||
"description": "您没有权限执行此操作。"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"create": {
|
||||
"title": "新建年级"
|
||||
},
|
||||
"edit": {
|
||||
"title": "编辑年级"
|
||||
},
|
||||
"field": {
|
||||
"school": "学校",
|
||||
"name": "年级名称",
|
||||
"order": "排序",
|
||||
"gradeHead": "年级主任",
|
||||
"teachingHead": "教学主任"
|
||||
},
|
||||
"placeholder": {
|
||||
"school": "选择学校",
|
||||
"name": "如:一年级",
|
||||
"gradeHead": "选择年级主任",
|
||||
"teachingHead": "选择教学主任"
|
||||
},
|
||||
"button": {
|
||||
"cancel": "取消",
|
||||
"create": "创建",
|
||||
"save": "保存"
|
||||
},
|
||||
"errors": {
|
||||
"schoolRequired": "请选择学校",
|
||||
"nameRequired": "请输入年级名称",
|
||||
"nameTooLong": "年级名称不能超过 50 个字符",
|
||||
"nameDuplicate": "该学校下已存在同名年级",
|
||||
"orderInvalid": "排序必须为整数"
|
||||
}
|
||||
},
|
||||
"insights": {
|
||||
"assignments": {
|
||||
"title": "作业列表",
|
||||
"column": {
|
||||
"assignment": "作业名称",
|
||||
"status": "状态",
|
||||
"createdAt": "创建时间",
|
||||
"targeted": "目标人数",
|
||||
"submitted": "已提交",
|
||||
"graded": "已批改",
|
||||
"avg": "平均分",
|
||||
"median": "中位数"
|
||||
}
|
||||
},
|
||||
"ranking": {
|
||||
"title": "班级排名",
|
||||
"column": {
|
||||
"class": "班级",
|
||||
"students": "学生数",
|
||||
"latestAvg": "最新平均分",
|
||||
"prevAvg": "上次平均分",
|
||||
"delta": "变化",
|
||||
"overallAvg": "总体平均分"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"classCount": "班级数",
|
||||
"studentCount": "学生数",
|
||||
"studentDetail": "共 {count} 名学生",
|
||||
"overallAvg": "总体平均分",
|
||||
"overallAvgDesc": "年级所有成绩的加权平均",
|
||||
"latestAvg": "最新平均分"
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"title": "年级列表",
|
||||
"notSet": "未设置",
|
||||
"column": {
|
||||
"school": "学校",
|
||||
"grade": "年级",
|
||||
"order": "排序",
|
||||
"gradeHead": "年级主任",
|
||||
"teachingHead": "教学主任",
|
||||
"updatedAt": "更新时间",
|
||||
"actions": "操作"
|
||||
},
|
||||
"actions": {
|
||||
"insights": "洞察",
|
||||
"edit": "编辑",
|
||||
"delete": "删除"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"insights": {
|
||||
"title": "年级洞察"
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"deleteSuccess": "删除成功",
|
||||
"createSuccess": "创建成功",
|
||||
"updateSuccess": "更新成功"
|
||||
},
|
||||
"toolbar": {
|
||||
"search": "搜索年级...",
|
||||
"reset": "重置",
|
||||
"create": "新建年级",
|
||||
"filter": {
|
||||
"school": "学校",
|
||||
"allSchools": "全部学校",
|
||||
"head": "主任",
|
||||
"allHeads": "全部主任",
|
||||
"missingBoth": "缺少双主任",
|
||||
"missingGradeHead": "缺少年级主任",
|
||||
"missingTeachingHead": "缺少教学主任",
|
||||
"sort": "排序",
|
||||
"sortDefault": "默认排序",
|
||||
"sortUpdatedDesc": "最近更新",
|
||||
"sortUpdatedAsc": "最早更新",
|
||||
"sortNameAsc": "名称升序",
|
||||
"sortNameDesc": "名称降序",
|
||||
"sortOrderAsc": "排序升序",
|
||||
"sortOrderDesc": "排序降序"
|
||||
}
|
||||
}
|
||||
}
|
||||
143
src/shared/i18n/messages/zh-CN/grades.json
Normal file
143
src/shared/i18n/messages/zh-CN/grades.json
Normal file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"title": {
|
||||
"list": "成绩查询",
|
||||
"entry": "成绩录入",
|
||||
"analytics": "成绩分析",
|
||||
"stats": "成绩统计",
|
||||
"myGrades": "我的成绩",
|
||||
"childrenGrades": "子女成绩"
|
||||
},
|
||||
"filters": {
|
||||
"class": "班级",
|
||||
"subject": "科目",
|
||||
"type": "类型",
|
||||
"semester": "学期",
|
||||
"allClasses": "全部班级",
|
||||
"allSubjects": "全部科目",
|
||||
"allTypes": "全部类型",
|
||||
"allSemesters": "全部学期",
|
||||
"searchPlaceholder": "按标题搜索..."
|
||||
},
|
||||
"type": {
|
||||
"exam": "考试",
|
||||
"quiz": "测验",
|
||||
"homework": "作业",
|
||||
"other": "其他"
|
||||
},
|
||||
"semester": {
|
||||
"s1": "第一学期",
|
||||
"s2": "第二学期"
|
||||
},
|
||||
"list": {
|
||||
"empty": "暂无成绩记录",
|
||||
"columns": {
|
||||
"student": "学生",
|
||||
"class": "班级",
|
||||
"subject": "科目",
|
||||
"title": "标题",
|
||||
"score": "分数",
|
||||
"type": "类型",
|
||||
"semester": "学期",
|
||||
"recordedBy": "录入人",
|
||||
"date": "日期"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"title": "录入成绩",
|
||||
"save": "保存",
|
||||
"saving": "保存中...",
|
||||
"cancel": "取消",
|
||||
"selectClass": "选择班级",
|
||||
"selectSubject": "选择科目",
|
||||
"selectStudent": "选择学生",
|
||||
"titlePlaceholder": "如期中考试",
|
||||
"score": "分数",
|
||||
"fullScore": "满分",
|
||||
"remark": "备注(可选)",
|
||||
"remarkPlaceholder": "关于此成绩的备注...",
|
||||
"selectPrompt": "请选择班级、科目和学生"
|
||||
},
|
||||
"delete": {
|
||||
"title": "删除成绩记录",
|
||||
"confirmation": "确定要删除此成绩记录吗?此操作不可撤销。",
|
||||
"confirm": "删除",
|
||||
"cancel": "取消",
|
||||
"deleting": "删除中..."
|
||||
},
|
||||
"export": {
|
||||
"detail": "导出成绩明细",
|
||||
"classReport": "导出班级成绩总表",
|
||||
"success": "导出成功",
|
||||
"failed": "导出失败"
|
||||
},
|
||||
"stats": {
|
||||
"title": "统计",
|
||||
"average": "平均分",
|
||||
"median": "中位数",
|
||||
"max": "最高分",
|
||||
"min": "最低分",
|
||||
"stdDev": "标准差",
|
||||
"variance": "方差",
|
||||
"passRate": "及格率",
|
||||
"excellentRate": "优秀率",
|
||||
"count": "人数"
|
||||
},
|
||||
"analytics": {
|
||||
"trend": "成绩趋势",
|
||||
"classComparison": "班级对比",
|
||||
"subjectComparison": "科目对比",
|
||||
"distribution": "分数分布",
|
||||
"ranking": "排名",
|
||||
"rankingTrend": "排名趋势",
|
||||
"class": "班级",
|
||||
"subject": "科目",
|
||||
"grade": "年级",
|
||||
"averageScore": "平均分",
|
||||
"passRate": "及格率",
|
||||
"excellentRate": "优秀率",
|
||||
"studentCount": "学生数"
|
||||
},
|
||||
"batch": {
|
||||
"title": "批量录入",
|
||||
"saving": "保存中...",
|
||||
"restored": "已恢复未保存的成绩草稿",
|
||||
"invalidScores": "存在无效分数",
|
||||
"fullScoreRequired": "满分必填",
|
||||
"saved": "已录入",
|
||||
"score": "分数",
|
||||
"remark": "备注",
|
||||
"fullScore": "满分",
|
||||
"type": "类型",
|
||||
"saveAll": "全部保存",
|
||||
"cancel": "取消"
|
||||
},
|
||||
"trend": {
|
||||
"title": "成绩趋势",
|
||||
"empty": "暂无成绩记录",
|
||||
"score": "分数",
|
||||
"date": "日期"
|
||||
},
|
||||
"summary": {
|
||||
"title": "成绩摘要",
|
||||
"averageScore": "平均分",
|
||||
"classRank": "班级排名",
|
||||
"totalRecords": "总记录数",
|
||||
"highestScore": "最高分",
|
||||
"lowestScore": "最低分"
|
||||
},
|
||||
"empty": {
|
||||
"noRecords": "暂无成绩记录",
|
||||
"noData": "暂无数据",
|
||||
"noClassSelected": "请选择班级",
|
||||
"noStudentSelected": "请选择学生"
|
||||
},
|
||||
"error": {
|
||||
"loadFailed": "加载失败",
|
||||
"saveFailed": "保存失败",
|
||||
"deleteFailed": "删除失败",
|
||||
"exportFailed": "导出失败",
|
||||
"failedToCreate": "创建失败",
|
||||
"failedToDelete": "删除失败",
|
||||
"retry": "重试"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user