📅 开源排课系统“设计模板”全拆解
手把手教你搭一套智能排课工具(纯前端·免费)

适用场景:中小学教务排课、培训机构课表编排、教师个人教学规划。
核心亮点:无需服务器,一个HTML文件直接运行,数据本地存储,支持Excel导入导出。
课时设置:按年级(1-6年级)配置每门学科每周课时,自动统计是否超周上限。
班级设置:灵活配置每个年级的班级数量,一键生成班级列表(如“三年级5班”)。

任课表:为每个班级的每门学科指定教师,支持Excel模板批量导入/导出。

排课规则:主课优先节数、每日同科上限、连堂偏好、教师日课时上限,支持自定义“禁止/强制”规则。

课表输出:一键智能排课,自动生成全校总课表、班级课表、教师课表,并导出为Excel文件。

二、技术架构模板(搞懂这5张表,你就掌握了骨架)
GRADES(年级列表):改成“初一~初三”或“小班~大班”,系统自动适配。
SUBJECTS(学科列表):增减学科后,系统所有界面自动联动。
DEFAULT_GRADE_HOURS(默认课时):修改数字,调整每个年级的课时总量。
teacherAssignments(教师分配表):在界面填写或通过Excel导入。
scheduleRules(排课规则库):界面点选配置,无需写代码。
三、搭建&定制步骤(照着做,半小时改成你自己的)
Step 1:下载源码(HTML文件),用记事本或VSCode打开。
Step 2:修改基础配置(搜索代码顶部):
将 SUBJECTS 改成你校的学科,GRADES 改成你的年级,DAYS 改成上课天数(如周一至周五)。改完保存,刷新页面即可。
Step 3:调整默认课时模板:
找到 DEFAULT_GRADE_HOURS 对象,将各年级语数外等周课时改为符合实际的数据。
Step 4:配置排课规则(图形化操作,无需写代码):
在“排课规则”面板里直接点选:主课优先前几节、每日同科上限、是否连堂,以及新增“禁止/强制”规则。
Step 5:上传任课表 & 导出Excel:
点击“下载模板”填写教师姓名后上传,点击“开始排课”,确认无误后一键导出Excel。
改成“每周上6天课”:改 DAYS 数组和 periodsPerDay 默认值。
调高“主课优先节数”:改 ruleConfig.mainSubjectPriorityCount 默认值。
指定某教师周三下午不排课:在“高级规则”下拉框选“教师”,输入姓名,添加“禁止”规则。
修改Excel导出文件名:搜索 XLSX.writeFile,改第二个参数。
五、常见问题(FAQ)
Q:数据会丢吗?
A:存在浏览器本地,清除缓存才会丢。建议排完用“导出备份”保存一份JSON文件。
Q:我能部署到网上让同事一起用吗?
A:可以。将HTML上传到任何静态托管服务(如阿里云OSS、Gitee Pages),大家访问同一网址即可。注意数据是各存各的浏览器,如需共享需二次开发后端。
Q:排课结果有冲突怎么办?
A:系统会标注“冲突/漏课”数量。可以尝试:①减少某学科周课时;②放宽规则(如增加每日同科上限);③手动在Excel中微调。
本系统为完全开源免费模板,可直接下载HTML文件使用。作者已经部署到code上,访问:https://xssx111.coze.site可直接使用。
如需完整源码文件或在线演示地址,欢迎在评论区留言或私信,我看到后第一时间发送。
排课不是玄学,是一套可以标准化、模板化的工程。
希望这份“设计蓝图”能帮你节约每周2小时的排课时间,把精力还给教学本身。
#排课系统 #开源工具 #教务管理 #学校信息化 #Excel自动化
夜雨聆风