xuyue pushed to main at xuyue/OJ2 2026-11-02 23:47:09 +08:00
dbb265b02f Update admin.vue
xuyue pushed to main at xuyue/OJ2 2026-11-02 23:41:56 +08:00
2bda05a978 feat(名字): 界面上不再显示 ks + 班号前缀,混着几个班的地方名字后面写班级
221d264701 feat(账号): 新建的号不再加 ks + 班号前缀,班级单独选;学生改不了真名了
Compare 2 commits »
xuyue pushed to main at xuyue/OJ2 2026-11-02 22:59:48 +08:00
48590eee60 refactor(目录): 目录名对上界面上的名字,自学的「一课」不再也叫 lesson
29c31640b5 refactor(课堂任务): 「课堂看板」改名「课堂任务」,地址换成 /task;班级 PK 换成 /pk
Compare 2 commits »
xuyue pushed to main at xuyue/OJ2 2026-11-02 22:28:16 +08:00
46d3fe2dbe Update home.vue
bc42ade705 fix(判题): SQL 题判题也排队占名额,和别的判题一起抢那两个核时不再被误判超时
Compare 2 commits »
xuyue pushed to main at xuyue/IOT_SIM 2026-11-02 22:21:05 +08:00
77bfaba7ff 导出 EXE:服务器上的教材 dll 读不了(root 拷进去的文件是 600,容器里的平台用户读不到)时提示中文原因和改法,不再把英文的系统报错给学生看;部署说明补上 chmod 755 目录、644 文件
xuyue pushed to main at xuyue/IOT_SIM 2026-11-02 22:10:09 +08:00
5e5d29b2aa 导出 EXE:实验页工具栏"导出 EXE"把学生的程序编译成一个 exe,拷到机房电脑上双击就能控制真的实训台。编译服务照教材工程编译学生写的原始代码(.NET Framework 4.5 引用程序集,构建时只复制教材工程引用的 13 个到 netfx/;真机版设备类库),不做平台的仿真改写和 API 限制,和 VS 里一样。教材 dll(DeviceCtrlLibrary 及 API 下 7 个、WinFormsDeviceControlLibrary、媒体播放器的两个 Interop)作为资源嵌进 exe,模块初始化器注册 AssemblyResolve 从 exe 里加载,Program.cs 不用改;Properties.Resources 的图片、声音嵌进 exe,代码里按文件名用到的素材(项目 7 的 ring.mp3)启动时放到 exe 旁边的 Resources;媒体播放器的 OcxState 用教材 resx 的默认状态;书上的 ledHelper.Close() 在教材类库里没有,补一个空的扩展方法。23 个实验都能导出(约 0.9 MB),mono + Xvfb 里实测能启动、控件和图片正常。接口 POST /api/export-exe,代码有错时 422,实验页弹框列出报错、点击跳到代码。教材 dll 有版权、GitHub 仓库公开,不进仓库:本机放 textbook-libs/,服务器放 ~/IOT_SIM/textbook-libs/ 由 compose 只读挂载(deploy/README.md),没放时提示原因。使用说明、设计方案、README 同步
xuyue pushed to main at xuyue/OJ2 2026-11-02 21:54:32 +08:00
38a331c2b7 feat(布置作业): 能布置「画流程图」「先画再写」,看板分清卡在画图还是写代码
xuyue pushed to main at xuyue/OJ2 2026-11-02 21:22:40 +08:00
71323d9b63 style(布置作业): 「老师改了这节课的题」电脑上挪到右下角,不再挡住提交按钮;手机上不再出屏
xuyue pushed to main at xuyue/OJ2 2026-11-02 21:14:55 +08:00
df8af40d61 feat(布置作业): 课上老师改了作业,学生页面上弹出改了哪些题,点「刷新」就拿到新题单
xuyue pushed to main at xuyue/OJ2 2026-11-02 21:04:41 +08:00
0fd94ee8bf style(选题): 左栏知识点整列放得下,不再冒出一根滚动条
xuyue pushed to main at xuyue/OJ2 2026-11-02 20:59:20 +08:00
b046af4ba0 chore(部署): push 后先过检查再部署;判题机重启那几秒交的题不再变成系统错误;worker 挂了看得出来
xuyue pushed to main at xuyue/OJ2 2026-11-02 20:41:28 +08:00
b344bd1dd6 feat(布置作业): 能按知识点点选题目;一个班一天能布置几节课;数据统计认老师布置的课;后台能管布置过的课
xuyue pushed to main at xuyue/IOT_SIM 2026-10-28 17:41:01 +08:00
46e0f40cce 实训台接线:串口要选对。接线做成数据(BoardState.wiring),默认按教材布局图 COM2 ADAM-4017+、COM3 ADAM-4150、COM4 ZigBee 协调器、COM5 LED 屏,实验可在 meta.json 的 wiring 里改:项目 7 的书上代码在一个串口上打开两个模块,这三个实验把 4150 并到 COM2 的 485 总线上。选错串口时返回值照反编译的真机版 dll(4017 全 null、4150 全 false,4150 的 OnOff 和 LED 推送返回成功但设备不动作,ZigBee 返回 false);串口没打开时照教材仿真版。Open / Close / 没打开就读写报告给服务器,实训台最上方用红字提示("程序在 COM2 上打开 ADAM-4150,它接在 COM3""ADAM-4150 的串口没有打开,程序却在读写它"),评分不通过时也附上。只读接线展示:鼠标移到实训台设备上,标题栏写出线路,对应通道、模块、串口高亮;串口服务器按接线列出设备,程序打开的口亮绿点;程序里串口下拉框的灰字按当前接线。打开实验时浏览器发 experiment 消息换接线,老师看学生提交时按作业的实验接线(提交接口返回 sampleId)。"4017"统一写成 ADAM-4017+
163e553de4 日期选择框兼容机房 Chrome 94:以前点下拉按钮靠 showPicker() 弹出日期框,它 Chrome 99 才正式有,Chrome 94 的原型上有这个方法、调用却没反应,项目 6 任务 3、项目 8 任务 5 选不了日期。改成把浏览器的日期框透明地盖在下拉按钮上、日历图标撑满按钮,点按钮由浏览器自己弹出(Chromium 94 和新版 Chrome 实测都能选)。运行时长日期和中文 Windows 一致,不带星期(Linux 的 zh-CN 长日期是"2026年10月28日星期三",日期框窄,星期被截掉)
Compare 2 commits »
xuyue pushed to main at xuyue/IOT_SIM 2026-10-28 15:15:49 +08:00
9ed446f95a 实验页:程序运行时改了代码或设计器,停手 1.5 秒后自动重新运行,不用再按 F5。重启前先用边写边检查的接口检查整个工程,有错误就不重启,原来的程序接着运行,工具栏提示"代码有错误,改好后自动重新运行";检查期间又改了、程序已停或换了工程时作废;停止后改动不会自动启动程序。使用说明、设计方案同步
xuyue pushed to main at xuyue/IOT_SIM 2026-10-28 12:58:32 +08:00
6a18bdf2e4 兼容机房的 Chrome 94:打包目标改成 Chrome / Edge 94;polyfills.ts 补 crypto.randomUUID(http 打开时没有)、structuredClone(只复制普通数据)、findLast / findLastIndex;vite.config.ts 加小插件,把代码块之间的 import("./X.js") 改成 /assets/ 开头的绝对路径(Chrome 94 有时相对网页地址解析,拿到首页 HTML 一片空白),改过的代码块换新文件名;容器查询改成 ResizeObserver 量宽度加 class(实训台三档布局、设计器窄时隐藏提示);:has() 改成 class(只读、禁用文本框灰底,没标题的分组框)。旧浏览器提示改成 94 以上,设计方案记录实测
xuyue pushed to main at xuyue/IOT_SIM 2026-10-28 12:57:43 +08:00
ab933d1896 学生窗体的密码框不再被浏览器自动填上平台的用户名和密码:设了 PasswordChar / UseSystemPasswordChar 的文本框改成普通文本框加 -webkit-text-security 遮成圆点,浏览器不把它当登录表单(不支持该属性的浏览器才退回密码框并标 new-password);文本框、下拉框、表格单元格编辑框都加 autocomplete="off",不弹以前输入过的内容。所有任务共用这个控件,项目 1 任务 1 的登录、添加用户窗体都覆盖到
xuyue pushed to main at xuyue/OJ2 2026-10-28 12:40:31 +08:00
0916015405 feat(流程图): 输入/输出/语句/条件/循环五种框各一种颜色,不再输入输出同色、条件循环同色
xuyue pushed to main at xuyue/OJ2 2026-10-27 22:16:58 +08:00
179d5fa67d feat(语法要求): 能要求「调用 print() 时必须用 sep 参数」,题目说要用 sep/end 的不再被绕过
xuyue pushed to main at xuyue/web 2026-10-27 22:16:35 +08:00
489274ba0e feat: 加 prompt-stats 脚本,对比某天前后学生和 AI 对话的情况
xuyue pushed to main at xuyue/web 2026-10-27 22:11:17 +08:00
e9127318cb feat: “出问题了”三栏说清问题,交作品时写一句反思,外部提示词至少 8 个字