练学通是面向教育培训行业的在线刷题与考试平台,由学生端小程序和管理后台两部分组成,本系统为管理后台。平台旨在帮助学生通过日常练习、模拟考试和学科竞赛巩固知识,同时为机构管理员提供题库、考试、用户和数据的集中管理能力。管理后台核心功能包括:题库管理、题目管理(单选/多选/判断/填空,支持选项图片)、试卷管理、用户管理、班级管理、成绩管理、字典管理、比赛管理、积分商城和学生能力分析等。主要业务流程:① 竞赛流程——管理员创建比赛并配置赛程(初赛/复赛/决赛),为每个赛程组卷并发布试卷,设置解锁条件(全员开放/指定用户/积分兑换码),学生在端内解锁试卷并在线作答;② 积分兑换流程——学生通过练习和参赛累积积分,管理员在积分商城将竞赛试卷配置为积分商品并定价上架,学生兑换后获得试卷解锁资格;③ 能力分析流程——管理员选中学生后一键生成能力分析报告,报告包含统计数据、雷达图、能力分析文本、柱状图和表格五大模块,可逐模块编辑、控制展示开关并发布给学生查看,也可导出 PDF 供线下沟通使用。
项目整体采用 uni-app + Vue3 + Vite 的跨端架构,管理后台以 H5 形式独立分包运行;网络请求基于 uni.request 封装统一的 Axios 风格请求层(含 token 鉴权与路由守卫);后台 UI 全部基于 Vue3 组件自研,业务逻辑通过 Composable(组合式函数)与视图分离,每个管理面板对应一个独立的 useXxx composable,便于多人协作和维护。我主要负责三个模块的开发:① 比赛管理模块(核心逻辑约 1600 行):实现比赛全生命周期管理,包括比赛增删改查、基于字典动态配置的赛程 Tab(初赛/复赛/决赛)、竞赛试卷组卷与题目管理、三种解锁条件(全员开放/指定用户/积分兑换码)的单卷与批量设置,并实现了跨页跨搜索不丢失的用户多选组件;② 比赛试卷积分兑换模块:将竞赛试卷挂载为积分商城商品,支持积分定价、库存管理(含不限库存)、上下架联动校验(试卷未开启积分兑换时强制下架),打通"练习赚积分—积分换试卷—参赛作答"的运营闭环;③ 学生能力分析模块(核心逻辑约 1200 行):实现按学生一键生成能力分析报告,包含统计数据、雷达图、能力分析、柱状图、表格五大可独立编辑的模块,支持各模块展示开关、报告发布/撤回,图表基于 Canvas 自绘实现。开发中遇到的难点与解决方案:一是报告 PDF 预览——在 uni-app 中直接打包 html2canvas/jsPDF 会触发 dep-scan 构建报错,改为 CDN 动态加载脚本解决;同时报告模块跨页被截断,改为按模块分别渲染 Canvas 再智能分页拼装,保证图表和表格不被切割;二是跨页多选用户——分页和搜索切换会导致已选用户信息丢失,采用 Map 缓存已选用户并在翻页时增量补全信息解决;三是图表数据一致性——雷达图图例与维度为动态增删结构,通过本地 ID 计数器与加载后数据补齐机制,避免 ID 冲突和图例缺失导致的渲染异常。