feat: 更新构建流程,添加 API 构建脚本和 SQL 文件复制脚本

- 修改 package.json,更新构建命令,添加 postbuild 脚本以复制 init.sql 文件。
- 新增 scripts/build-api.mjs,使用 esbuild 构建 API 代码。
- 新增 scripts/copy-init-sql.mjs,复制数据库初始化 SQL 文件到构建输出目录。
- 在 SubjectSelectionPage 组件中添加 totalScore 属性,增加历史最高分状态显示功能。
- 在 ExamSubjectPage 和 QuestionManagePage 中优化判断题答案处理逻辑。
- 在 OptionList 组件中将判断题选项文本从 'T' 和 'F' 改为 '对' 和 '错'。
- 在 QuizFooter 组件中调整样式,增加按钮和文本的可读性。
- 新增用户默认组测试用例,验证新用户创建后自动加入“全体用户”系统组。
- 新增 tsconfig.api.json,配置 API 相关 TypeScript 编译选项。
- 移除 vite.config.ts 中的 global 定义。
This commit is contained in:
2025-12-30 20:33:14 +08:00
parent 1822d8b4da
commit eb4504960e
31 changed files with 10221 additions and 150 deletions

View File

@@ -1,6 +1,6 @@
import { Request, Response } from 'express';
import * as XLSX from 'xlsx';
import { UserModel, QuestionModel, QuizModel } from '../models';
import { UserModel, QuestionModel, QuizModel, UserGroupModel } from '../models';
export class BackupController {
// 导出用户数据
@@ -129,10 +129,12 @@ export class BackupController {
if (users && users.length > 0) {
for (const user of users) {
try {
await UserModel.create({
const createdUser = await UserModel.create({
name: user.姓名 || user.name,
phone: user.手机号 || user.phone
});
// 统一规则:恢复数据创建的用户也必须加入“全体用户”系统组
await UserGroupModel.updateUserGroups(createdUser.id, []);
restoredCount.users++;
} catch (error) {
console.log('用户已存在,跳过:', user. || user.phone);