Files
NextEdu/src/shared/i18n/messages/zh-CN/dashboard.json
SpecialX 868ac5f9cf feat(dashboard): 仪表盘模块审计重构 — 权限校验 + i18n + 逻辑抽离
基于 dashboard-audit-report.md 审计结论,对仪表盘模块进行 P0/P1 级修复:

- 新增 4 个 dashboard 权限点(DASHBOARD_ADMIN/TEACHER/STUDENT/PARENT_READ),补充到 permissions.ts 和角色-权限映射

- 新建 actions.ts:4 个 Server Action 均调用 requirePermission() 校验权限,消除 admin 页面零鉴权、teacher/student/parent 仅 requireAuth 的安全隐患

- 根重定向页 /dashboard 改用 resolvePermissions() + 权限点判断,不再 role === xxx 硬编码

- 新建 lib/dashboard-utils.ts:抽取 toWeekday / countStudentAssignments / sortUpcomingAssignments / filterTodaySchedule / computeTeacherMetrics / getGreetingKey 纯函数,与 UI 分离,便于单测

- 新建 messages/{zh-CN,en}/dashboard.json 翻译文件,i18n request.ts 加载 dashboard 命名空间;所有视图组件接入 useTranslations / getTranslations,消除中英混杂硬编码

- 重构 4 个角色 page.tsx:通过 actions 获取数据,generateMetadata 使用 i18n

- 同步更新架构图 004 / 005 文档(dashboard exports / permissions / 文件清单)
2026-06-22 15:50:56 +08:00

125 lines
4.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"title": {
"admin": "管理控制台",
"teacher": "教师工作台",
"student": "学生中心",
"parent": "家长中心",
"root": "仪表盘"
},
"description": {
"admin": "用户、学习内容与活动全貌",
"teacher": "今日教学概览",
"student": "今日学习概览",
"parent": "查看孩子的学习概况"
},
"greeting": {
"morning": "早上好",
"afternoon": "下午好",
"evening": "晚上好",
"welcome": "欢迎回来",
"todayIs": "今天是 {date},以下是今日概览。",
"overview": "以下是今日概览。"
},
"stats": {
"users": "用户总数",
"classes": "班级数",
"activeSessions": "活跃会话",
"homeworkPublished": "已发布作业",
"toGrade": "待批改",
"enrolledClasses": "已选课程",
"activeEnrollments": "有效选课",
"averageScore": "平均分",
"overallPerformance": "综合表现",
"noGradesYet": "暂无成绩",
"classRank": "班级排名",
"currentPosition": "当前名次",
"noRankingYet": "暂无排名",
"graded": "已批改",
"completedAssignments": "已完成作业",
"dueSoon": "即将到期",
"next7Days": "未来 7 天",
"overdue": "已逾期",
"needsAttention": "需要关注",
"needsGrading": "待批改",
"submissionsPendingReview": "待审核提交",
"activeAssignments": "进行中作业",
"publishedAndOngoing": "已发布且进行中",
"submissionRate": "提交率",
"overallCompletionRate": "总体完成率",
"acrossRecentAssignments": "近期作业平均"
},
"quickActions": {
"importUsers": "批量导入用户",
"importUsersDesc": "通过 Excel 批量创建用户账号",
"newAnnouncement": "发布公告",
"newAnnouncementDesc": "向全校或指定年级/班级发布通知",
"approveSchedule": "审批课表变更",
"approveScheduleDesc": "审核教师提交的课表变更与代课申请",
"autoSchedule": "自动排课",
"autoScheduleDesc": "基于规则自动生成周课表",
"fileManagement": "文件管理",
"fileManagementDesc": "查看与管理系统中所有上传文件",
"attendanceOverview": "考勤总览",
"attendanceOverviewDesc": "查看全校所有班级的考勤记录",
"grades": "成绩",
"attendance": "考勤",
"announcements": "通知",
"leaveRequest": "请假申请"
},
"todo": {
"title": "今日待办",
"toGrade": "待批改作业",
"todayAttendance": "今日待考勤",
"activeAssignments": "进行中作业",
"empty": "今日无待办事项"
},
"sections": {
"userGrowthTrend": "用户增长趋势近30天",
"homeworkSubmissionTrend": "作业提交趋势近7天",
"userRoles": "用户角色分布",
"content": "内容统计",
"homeworkActivity": "作业活动",
"recentUsers": "最近注册用户",
"viewAllUsers": "查看全部用户",
"pendingGrading": "待批改",
"todaySchedule": "今日课表",
"upcomingAssignments": "即将到期的作业",
"grades": "成绩",
"myClasses": "我的班级",
"gradeTrends": "成绩趋势"
},
"table": {
"name": "姓名",
"email": "邮箱",
"role": "角色",
"created": "创建时间"
},
"empty": {
"noUsers": "暂无用户",
"noUsersDesc": "数据库中暂无用户记录",
"noUsersYet": "暂无用户",
"seedHint": "初始化数据库以查看用户数据",
"allGraded": "全部批改完成!",
"allGradedDesc": "暂无待批改的提交。",
"noChildren": "未绑定孩子",
"noChildrenDesc": "您的账号尚未关联任何学生账号,请联系学校管理员完成绑定。",
"noStudent": "未找到学生用户",
"noStudentDesc": "请创建学生账号以查看仪表盘。",
"contactSupport": "联系客服"
},
"badge": {
"activeSessions": "{count} 个活跃会话",
"users": "{count} 位用户",
"childrenLinked": "已关联 {count} 个孩子"
},
"error": {
"loadFailed": "页面加载失败",
"loadFailedDesc": "抱歉,页面加载时发生了意外错误。请稍后重试。",
"retry": "重试"
},
"chart": {
"newUsers": "新增用户",
"newSubmissions": "新增提交"
}
}