feat: 提交学生请假前端工程源码(Vue3 + Vite + view-ui-plus)
build / build (push) Successful in 7m59s

- 业务域:学生请假(请假申请 / 我的请假 / 请假审批 / 请假登记 / 请假统计 / 应用设置)
- 接口直连真实后端(/api/leave/*、/api/base/*),无本地 mock
- 同步本轮路由改造:浏览器地址匹配不上已授权菜单节点时落回第一个节点
- .gitignore 补充 .workbuddy/、*.bak、*.orig 与改造来源包 FamilyActivity.rar
This commit is contained in:
lijing
2026-09-23 10:28:26 +08:00
parent 14b7595efa
commit 913a11b2a1
329 changed files with 29044 additions and 2 deletions
+65 -2
View File
@@ -1,3 +1,66 @@
# home-leave-front
# 学生请假(homeleave)
managed by projman
学生请假模块 —— 学生向老师请假(学生申请、教师审批),教师给学生请假(教师登记,免审直接通过)。
> 由家校活动(family-activity)工程改造:保留 Vue3 + Vite + view-ui-plus + alova
> 技术栈、布局壳层、权限菜单契约、表格/分页/附件等基础设施,业务域整体替换为「学生请假」。
> 后端:`E:\YHXT\java\HomeLeave`(Spring Boot,包名 `com.yunhai.homeleave`)。
> 本工程已去除本地 mock,全部接口直连真实后端。
## 快速开始
```bash
# 联调本地后端(需先启动 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` | 请假统计 |