作品札记 / 06 · 开源二次开发 · 前端
JYUOJ
开源 OJ 上的 AI 辅助与实时对战前端
JYUOJ 基于开源 HOJ 扩展。我在原有题目和提交流程中接入 AI 学习辅助与代码分析报告,并开发实时对战相关页面,让刷题、分析和对战的状态能在界面上衔接起来。
技术栈
- Vue 2 / Vuex
- Element UI
- 流式响应
- WebSocket
我做了什么
我负责 AI 学习辅助、代码分析报告和实时对战的前端开发与接口集成,也完成了复习模式和团队申请审核页面。
- 在题目页接入思路提示、复杂度分析和自由对话,处理流式内容显示、请求中止、复制、清空和公式展示。
- 实现结构化代码报告,呈现复杂度、优化建议、诊断用例与代码风格,并接入请求、加载、取消和更新状态。
- 开发模式选择、匹配、对战和结算页面,维护双方进度、题目切换、WebSocket 心跳、超时和退出清理;另补充复习模式与团队申请审核前端。
怎么使用
- 01
进入题目,编写代码并使用 AI 辅助或代码报告。
- 02
选择对战模式,进入匹配与确认流程。
- 03
在对战中查看双方状态,结束后进入结算。
页面离开了,对战的旧状态也要结束
对战页面同时有连接、心跳、计时器、题目和双方进度。只切换路由,旧状态仍可能留在后台,影响下一次匹配。我在状态模块和页面生命周期中处理计时器清理、对战状态重置和退出流程。
同样的状态管理也用在 AI 报告里:请求时显示加载状态,允许中途取消,代码或评测状态变化后提示更新报告,让用户清楚当前看到的内容对应哪一次操作。
项目成果
已完成 AI 学习辅助、结构化代码报告、实时对战、复习模式与团队申请审核等前端功能。代码报告将评测状态、复杂度、优化建议和边界用例放在同一界面,方便在提交后继续分析代码。