483243a3d94326b7672151afb51f5bc924dbcea9
build / build (push) Successful in 8m17s
- index.html 插 A 类 loader:唯一接入点,FOUC 门/manifest 预取/link 排序全由 yh-theme-init.js 承担,主题升级走 /static 通道不重新构建 - vite 加 /static dev 代理(YH_THEME_PROXY_TARGET 可覆盖) - host.config 回写 __APP_CONFIG__.serviceHost(仅同源):init 的 appearance 请求跨源会被直接跳过 - 顶栏头像接平台键 yh-avatar,监听 yh-appearance-updated,userInfo 兜底 - view-ui-plus 声明锁 1.3.24(对齐通道皮肤生成版本)
学生请假(homeleave)
学生请假模块 —— 学生向老师请假(学生申请、教师审批),教师给学生请假(教师登记,免审直接通过)。
由家校活动(family-activity)工程改造:保留 Vue3 + Vite + view-ui-plus + alova 技术栈、布局壳层、权限菜单契约、表格/分页/附件等基础设施,业务域整体替换为「学生请假」。 后端:
E:\YHXT\java\HomeLeave(Spring Boot,包名com.yunhai.homeleave)。 本工程已去除本地 mock,全部接口直连真实后端。
快速开始
# 联调本地后端(需先启动 HomeLeaveApplication,端口 8106)
npm run dev
# 构建(产物直出 dist/)
npm run build
开发地址:http://localhost:8078/(/api 由 vite 代理转发到 http://localhost:8106)
功能范围
| 菜单 | 路由 | 说明 |
|---|---|---|
| 请假审批 | /audit |
教师审批列表:审核(通过/拒绝)、批量通过、撤销审批、销假审批 |
| 请假登记 | /register |
教师给学生请假:选任教班级与学生直接登记(免审通过) |
| 请假统计 | /stats |
按班级 / 日期 / 请假类型统计 |
| 请假申请 | /apply |
学生提交请假:类型、起止时间、连续请假、事由、附件 |
| 我的请假 | /my |
学生查看本人请假记录,可撤销、申请销假 |
状态机(LeaveStatusEnum)
0 待审核 ──教师审核──→ 1 已通过 / 8 已拒绝
0 待审核 ──学生撤销──→ 3 已撤销
1 已通过 ──学生申请撤销──→ 2 待撤销 ──教师审批──→ 3 已撤销 / 4 撤销拒绝
1/7 ──学生申请销假──→ 5 待销假 ──教师审批──→ 6 已销假(回写时间)/ 7 销假拒绝
教师登记(type=1)免审直接 1,教师可直接销假(→6)
目录结构(业务部分)
src
├── api/module/leave.ts # 请假域接口封装(get/postJSON/postForm,统一 {code,msg,data} 解包)
├── assets
│ └── config/menu.ts # 左侧菜单兜底数据(modId 契约)
├── types/leave.ts # 请假域 TS 契约(对齐后端 VO/DTO)
└── views/leave/ # 业务页面(申请 / 我的 / 审批 / 登记 / 统计 + 详情弹窗)
后端接口契约(/{platform}/leave/*)
| 接口 | 说明 |
|---|---|
POST /api/leave/Save |
提交请假(学生 type=2 待审核;教师登记 type=1 免审通过) |
GET /api/leave/List |
分页列表(学生本人 / 教师任教班级 / 校管理员全校) |
GET /api/leave/Details?id= |
详情(时间段、销假时间段、附件、按钮状态) |
POST /api/leave/Audit |
教师审批:1 通过 / 8 拒绝;撤销 3/4;销假 6/7 |
POST /api/leave/BatchPass |
批量通过(classId 一键 / ids 勾选) |
POST /api/leave/Withdraw?id= |
学生申请撤销 |
POST /api/leave/ReportBack |
销假(学生申请 → 待销假;教师直接销假 → 已销假) |
GET /api/leave/MyClasses |
我的班级(学生所在 / 教师任教 / 管理员全校) |
GET /api/leave/ClassStudents?classId= |
班级学生名单 |
GET /api/leavestats/Stats |
请假统计 |
Languages
Vue
43.3%
JavaScript
32.8%
TypeScript
18.7%
CSS
2.3%
SCSS
2.1%
Other
0.8%