feat: 新建课程作业模块(基于校园公告模板),实现 v1 教师端与 v2 学生/家长端
以 CampusAnnouncement 为模板建立课程作业模块,重命名标识符与文案(notice→homework、公告→作业), 并保留其顶栏/左栏外壳,按课程作业业务重搭数据模型与页面。 - mock(src/assets/mock/homeworkapi.ts):作业化数据模型(学科/截止/提交方式/流程状态), 班级花名册→学生个体提交记录与批改(确定性分布),端点 List/SendList/Submissions/ SubmissionDetail/Grade/Remind/Statis 等;左栏菜单按角色返回。 - v1 教师端:布置作业(新增学科/截止/提交方式)、我布置的(状态标签+提交/批改进度)、 提交情况(Submissions,含内联批改)、批改中心(Grade 逐份批改)、作业统计(成绩分布+进度)。 - v2 学生/家长端(端分离):SetRole + viewerRole 切换身份;StudentHomeworks.vue 承担 今日作业/待订正(学生可提交/重交)与孩子作业(家长只读+提醒);新增 MyHomeworks/Submit/ MySubmission/ParentNudge 接口与类型。 - 类型与 api 模块同步;dev:mock 三角色 curl 端到端验证通过。
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# 课程作业前端(Vue3 + Vite + view-ui-plus)
|
||||
|
||||
## 本地启动
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 1)纯前端调试(推荐,后端不可用时)
|
||||
|
||||
本地连不上 `sso.yunhaixingtong.com` / `base.yunhaixingtong.com` 时,后端 CAS 过滤器会拦截
|
||||
`/api/*` 请求导致所有接口失败。此时使用内置 mock 调试前端页面:
|
||||
|
||||
```bash
|
||||
npm run dev:mock
|
||||
```
|
||||
|
||||
- 启用 `src/assets/mock/homeworkapi.ts` 中的内存 mock(vite-plugin-mock),覆盖全部页面接口:
|
||||
用户/菜单、发文部门字典、作业增删改查、阅读情况、联系组、选择用户树、附件上传等。
|
||||
- mock 数据为内存态,刷新页面即还原;修改 mock 文件后需重启 dev server 才生效。
|
||||
- mock 模式下请求走 vite 同源(`host.config.ts` 中 `serviceHost` 为空串)。
|
||||
|
||||
### 2)连接后端调试
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
- `.env.dev`:`VITE_SERVICE_HOST=http://localhost:8070/homework`(Java 后端,见 `../service`)。
|
||||
- 后端需要能访问 CAS(`yh.sso.server-url-prefix`)与用户中心(`yh.open.*`),否则接口 302/失败。
|
||||
|
||||
## 主要页面
|
||||
|
||||
| 路由 | 页面 |
|
||||
| --- | --- |
|
||||
| `/homework/newhomework` | 作业发送(新建/编辑 `?serid=`/转发 `?fid=`,wangeditor 富文本) |
|
||||
| `/homework/homework_list` | 已发作业 |
|
||||
| `/homework/homework_accept` | 已收作业(左列表 + 右详情,打印/转发/附件) |
|
||||
| `/homework/manage` | 作业列表(管理端) |
|
||||
| `/homework/setting` | 应用设置(发文部门卡片 + 自定义组) |
|
||||
| `/homework/homework_details` | 作业详情(`type=0` 管理视角含阅读进度/编辑/打印,`type=1` 查看) |
|
||||
|
||||
## 关键组件
|
||||
|
||||
- `components/UserCheckModal.vue`:选择用户弹窗(组织树勾选 + 已选列表,移植自旧前端
|
||||
`oldfront/src/components/userCheck.vue`)。
|
||||
- `components/UserCheckInput.vue`:作业对象选择(全部用户/指定用户,移植自旧
|
||||
`user_check_input.vue`)。
|
||||
- `components/HomeworkUpload.vue`:作业附件上传(选择文件 + 200MB 限制,移植自旧
|
||||
`uploadFile.vue`)。
|
||||
- 发文部门卡片:见 `views/homework/HomeworkSetting.vue`,样式与交互对齐 UserBase「应用类型」
|
||||
(`UserBase/front/src/views/app/AppCategory.vue`),额外支持停用/启用。
|
||||
|
||||
## 统计说明
|
||||
|
||||
统计相关前端已按需求移除(`Homework_statis` 接口封装、菜单、图标等),后期统计不在本应用内做。
|
||||
Reference in New Issue
Block a user