diff --git a/public/about-content.json b/public/about-content.json
new file mode 100644
index 0000000..c183616
--- /dev/null
+++ b/public/about-content.json
@@ -0,0 +1,7 @@
+{
+ "title": "SecScore",
+ "description": "教育积分管理软件",
+ "version": "v1.0.0",
+ "content": "
SecScore
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
SecScore 是一款教育积分管理软件,基于 Electron + React + TypeScript 开发,用于管理学生名单、记录加/扣分、查看排行榜与结算历史,并提供权限保护与数据备份。\r
\r
主要功能
\r
\r
\r
- 添加/删除学生\r
- 通过 xlsx 批量导入名单(支持导入前预览与选择“姓名列”)\r
\r
- 选择学生并提交加分/扣分\r
- 支持“预设理由”一键填充理由与分值\r
- 支持撤销最近的积分记录(撤销后学生积分会回滚)\r
\r
- 维护“预设理由”(分类、理由内容、预设分值)\r
\r
- 支持按“今天 / 本周 / 本月”查看积分变化\r
- 支持导出排行榜为 XLSX\r
- 支持查看单个学生的操作记录(文本列表)\r
\r
- “结算并重新开始”:把当前未结算记录归档为一个阶段,并将所有学生当前积分清零\r
- 在“结算历史”查看每个阶段的排行榜\r
\r
- 主题切换\r
- 日志查看/导出/清空\r
- 数据导入/导出(JSON)\r
- 密码保护(管理密码 / 积分密码)与找回字符串\r
\r
使用方法
\r
\r
1. 权限与解锁
\r
\r
- 右上角会显示当前权限:管理权限 / 积分权限 / 只读
\r
\r
- 管理密码:全功能(学生管理、理由管理、结算、数据管理等)\r
- 积分密码:仅允许积分相关操作\r
\r
\r
\r
2. 学生管理(导入名单)
\r
\r
入口:左侧菜单 → 学生管理 → 导入名单\r
\r
\r
1. 选择一个 .xlsx 文件(默认读取第一个工作表)\r
2. 在预览表格里点击表头,选择“姓名列”\r
3. 点击“导入”\r
4. 导入完成后会提示“新增 / 跳过”数量\r
\r
建议:姓名列尽量只包含纯姓名文本;同名学生会被视为重复并跳过。\r
\r
3. 积分管理(加分/扣分)
\r
\r
入口:左侧菜单 → 积分管理\r
\r
1. 在“姓名”选择一个学生(支持搜索)\r
2. 选择“加分/扣分”,并输入分值\r
3. 在“理由内容”填写原因(可手动输入)\r
4. 点击“确认提交”\r
\r
快捷理由:\r
\r
- 可在“快捷理由”下拉框中选择预设理由,一键填充理由内容/分值(优先尊重你当前是否已手动输入分值)
\r
\r
撤销最近记录:\r
\r
\r
\r
\r
4. 排行榜与导出
\r
\r
入口:左侧菜单 → 排行榜\r
\r
\r
\r
\r
\r
5. 结算与数据备份
\r
\r
入口:左侧菜单 → 系统设置 → 数据管理\r
\r
\r
- 会把当前未结算的积分记录归档为一个阶段\r
- 会将所有学生当前积分清零\r
- 学生名单不变;结算后的历史在“结算历史”查看\r
\r
- 导入会覆盖现有学生/理由/积分记录/设置\r
- 安全相关设置(密码等)不会随导入写入\r
\r
开发与运行(面向贡献者)
\r
\r
MCP 文档
\r
\r
- [MCP-使用说明](./MCP-使用说明.md)
\r
\r
环境要求
\r
\r
\r
\r
\r
安装依赖
\r
\r
``bash\r
pnpm install\r
`\r
\r
开发模式
\r
\r
`bash\r
pnpm dev\r
`\r
\r
构建
\r
\r
`bash\r
pnpm build\r
`\r
\r
(可选)打包:\r
\r
`bash\r
pnpm build:win\r
pnpm build:unpack\r
`\r
\r
常用检查
\r
\r
`bash\r
pnpm lint\r
pnpm typecheck\r
``\r
",
+ "rawMarkdown": "# SecScore\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\nSecScore 是一款教育积分管理软件,基于 Electron + React + TypeScript 开发,用于管理学生名单、记录加/扣分、查看排行榜与结算历史,并提供权限保护与数据备份。\r\n\r\n## 主要功能\r\n\r\n- 学生管理\r\n - 添加/删除学生\r\n - 通过 xlsx 批量导入名单(支持导入前预览与选择“姓名列”)\r\n- 积分管理\r\n - 选择学生并提交加分/扣分\r\n - 支持“预设理由”一键填充理由与分值\r\n - 支持撤销最近的积分记录(撤销后学生积分会回滚)\r\n- 理由管理\r\n - 维护“预设理由”(分类、理由内容、预设分值)\r\n- 排行榜\r\n - 支持按“今天 / 本周 / 本月”查看积分变化\r\n - 支持导出排行榜为 XLSX\r\n - 支持查看单个学生的操作记录(文本列表)\r\n- 结算与历史\r\n - “结算并重新开始”:把当前未结算记录归档为一个阶段,并将所有学生当前积分清零\r\n - 在“结算历史”查看每个阶段的排行榜\r\n- 系统设置\r\n - 主题切换\r\n - 日志查看/导出/清空\r\n - 数据导入/导出(JSON)\r\n - 密码保护(管理密码 / 积分密码)与找回字符串\r\n\r\n## 使用方法\r\n\r\n### 1. 权限与解锁\r\n\r\n- 右上角会显示当前权限:管理权限 / 积分权限 / 只读\r\n- 若设置了密码,可通过右上角“输入密码”进行解锁\r\n - 管理密码:全功能(学生管理、理由管理、结算、数据管理等)\r\n - 积分密码:仅允许积分相关操作\r\n- 点击“锁定”可切回只读状态\r\n- 无密码时默认视为管理权限\r\n\r\n### 2. 学生管理(导入名单)\r\n\r\n入口:左侧菜单 → 学生管理 → 导入名单\r\n\r\n- 通过 xlsx 导入\r\n 1. 选择一个 `.xlsx` 文件(默认读取第一个工作表)\r\n 2. 在预览表格里点击表头,选择“姓名列”\r\n 3. 点击“导入”\r\n 4. 导入完成后会提示“新增 / 跳过”数量\r\n\r\n建议:姓名列尽量只包含纯姓名文本;同名学生会被视为重复并跳过。\r\n\r\n### 3. 积分管理(加分/扣分)\r\n\r\n入口:左侧菜单 → 积分管理\r\n\r\n1. 在“姓名”选择一个学生(支持搜索)\r\n2. 选择“加分/扣分”,并输入分值\r\n3. 在“理由内容”填写原因(可手动输入)\r\n4. 点击“确认提交”\r\n\r\n快捷理由:\r\n\r\n- 可在“快捷理由”下拉框中选择预设理由,一键填充理由内容/分值(优先尊重你当前是否已手动输入分值)\r\n\r\n撤销最近记录:\r\n\r\n- “最近记录”默认折叠,展开后可对记录点击“撤销”\r\n- 撤销会回滚该条记录对学生积分的影响\r\n\r\n### 4. 排行榜与导出\r\n\r\n入口:左侧菜单 → 排行榜\r\n\r\n- 可切换统计范围:今天 / 本周 / 本月\r\n- 点击“导出 XLSX”可导出当前排行榜\r\n- 点击某个学生的“查看”可打开该学生的操作记录\r\n\r\n### 5. 结算与数据备份\r\n\r\n入口:左侧菜单 → 系统设置 → 数据管理\r\n\r\n- 结算并重新开始\r\n - 会把当前未结算的积分记录归档为一个阶段\r\n - 会将所有学生当前积分清零\r\n - 学生名单不变;结算后的历史在“结算历史”查看\r\n- 导出 JSON(强烈建议定期备份)\r\n - 导入会覆盖现有学生/理由/积分记录/设置\r\n - 安全相关设置(密码等)不会随导入写入\r\n\r\n## 开发与运行(面向贡献者)\r\n\r\n## MCP 文档\r\n\r\n- [MCP-使用说明](./MCP-使用说明.md)\r\n\r\n### 环境要求\r\n\r\n- Node.js(建议使用 LTS 版本)\r\n- pnpm\r\n\r\n### 安装依赖\r\n\r\n```bash\r\npnpm install\r\n```\r\n\r\n### 开发模式\r\n\r\n```bash\r\npnpm dev\r\n```\r\n\r\n### 构建\r\n\r\n```bash\r\npnpm build\r\n```\r\n\r\n(可选)打包:\r\n\r\n```bash\r\npnpm build:win\r\npnpm build:unpack\r\n```\r\n\r\n### 常用检查\r\n\r\n```bash\r\npnpm lint\r\npnpm typecheck\r\n```\r\n"
+}
\ No newline at end of file
diff --git a/src/components/Settings.tsx b/src/components/Settings.tsx
index d60fb58..9f44a90 100644
--- a/src/components/Settings.tsx
+++ b/src/components/Settings.tsx
@@ -76,7 +76,13 @@ export const Settings: React.FC<{
const [recoveryDialogString, setRecoveryDialogString] = useState("")
const [recoveryDialogFilename, setRecoveryDialogFilename] = useState("")
- const [aboutContent, setAboutContent] = useState<{ title: string; description: string; content: string; rawMarkdown: string } | null>(null)
+ const [aboutContent, setAboutContent] = useState<{
+ title: string
+ description: string
+ content: string
+ rawMarkdown: string
+ version?: string
+ } | null>(null)
const [logsDialogVisible, setLogsDialogVisible] = useState(false)
const [logsText, setLogsText] = useState("")