Files
coursehomework-front/README.md
T
lijing d75aab8d07 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 端到端验证通过。
2026-09-14 18:40:20 +08:00

57 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 课程作业前端(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` 接口封装、菜单、图标等),后期统计不在本应用内做。