feat: 提交课程作业前端工程源码(Vue3 + Vite + view-ui-plus)

This commit is contained in:
lijing
2026-09-21 12:14:00 +08:00
parent 0749e0b9c5
commit 66cdf7c5a1
358 changed files with 40943 additions and 2 deletions
@@ -0,0 +1,124 @@
import type { RouteRecordRaw } from "vue-router";
/**
* 课程作业模块路由(扁平短路由,与基础平台模块 path 一致)。
* 页面间参数通过 query 传递:
* - /list/new?serid= (编辑)
* - /list/new?fid= (转发)
* - /list/new?tempid=(模板引用)
* - /list/detail?serid=&type=、/homeworklist/detail?serid=&type=
* type: 0=编辑视角(不标读) 1=普通查看(标读)
*
* modId 是菜单 ↔ 路由的稳定契约(对照后端 GetUserMod 现行数据):
* 1=已收到 2=已发送 3=全部作业 4=作业统计 21=应用设置
* 发作业为「已发送」的深层子页(modId 22 不在菜单树,meta.parentId=2 关联高亮),
* 与 UserBase「应用管理>应用类型管理」范式一致。
*/
const routes: RouteRecordRaw[] = [
// v1 教师默认落地:我布置的
{ path: "/", redirect: "/list" },
// 学生收件箱(v2 保留,不在菜单)
{
path: "/accept",
name: "homework_accept",
component: () => import("@/views/homework/HomeworkAccept.vue"),
meta: { title: "已收到", modId: 1 },
},
// 我布置的(教师端作业列表)
{
path: "/list",
name: "homework_list",
component: () => import("@/views/homework/HomeworkList.vue"),
meta: { title: "我布置的", modId: 2 },
},
// 提交情况(某作业的已交/未交名单;从列表行或菜单进入,无 serid 时页内选择作业)
{
path: "/submissions",
name: "homework_submissions",
component: () => import("@/views/homework/Submissions.vue"),
meta: { title: "提交情况", modId: 25 },
},
// 批改中心(待批作业→逐份批改工作台;无 serid 时先看待批作业列表)
{
path: "/grade",
name: "homework_grade",
component: () => import("@/views/homework/Grade.vue"),
meta: { title: "批改中心", modId: 26 },
},
// 发作业(新建/编辑/转发/模板):已发送的深层子页,不在菜单里,
// layout.vue 按.meta.parentId 推导面包屑「已发送>发作业」并高亮父菜单
{
path: "/list/new",
name: "new_homework",
component: () => import("@/views/homework/NewHomework.vue"),
meta: { title: "发作业", modId: 22, parentId: 2 },
},
// 全部作业(管理端)
{
path: "/homeworklist",
name: "homework_manage",
component: () => import("@/views/homework/HomeworkList.vue"),
meta: { title: "全部作业", modId: 3 },
},
// 作业详情(同一组件挂两个路由,面包屑/菜单高亮由 meta.parentId 确定父节点:
// 已发送下 /list/detail,全部作业下 /homeworklist/detail;type 区分是否标读)
{
path: "/list/detail",
name: "homework_list_detail",
component: () => import("@/views/homework/HomeworkDetails.vue"),
meta: { title: "作业详情", modId: 23, parentId: 2 },
},
{
path: "/homeworklist/detail",
name: "homework_manage_detail",
component: () => import("@/views/homework/HomeworkDetails.vue"),
meta: { title: "作业详情", modId: 24, parentId: 3 },
},
// 作业统计(旧版行为:整页跳转外部统计系统)
{
path: "/stats",
name: "homework_stats",
component: () => import("@/views/homework/HomeworkStats.vue"),
meta: { title: "作业统计", modId: 4 },
},
// 应用设置(发文部门 + 自定义组)
{
path: "/setting",
name: "homework_setting",
component: () => import("@/views/homework/HomeworkSetting.vue"),
meta: { title: "应用设置", modId: 21 },
},
/* ---- v2 学生端 ---- */
// 学生·今日作业
{
path: "/stu/today",
name: "student_today",
component: () => import("@/views/homework/StudentHomeworks.vue"),
meta: { title: "今日作业", modId: 31, role: "student" },
},
// 学生·待订正(复用同一页,默认过滤待订正)
{
path: "/stu/redo",
name: "student_redo",
component: () => import("@/views/homework/StudentHomeworks.vue"),
meta: { title: "待订正", modId: 32, role: "student", initTab: "redo" },
},
/* ---- 旧版路径兼容重定向(书签、残留的平台模块配置) ---- */
{ path: "/details", redirect: "/list/detail" },
{ path: "/newhomework", redirect: "/list/new" },
{ path: "/edit", redirect: "/list/new" },
{ path: "/manage", redirect: "/homeworklist" },
{ path: "/homework", redirect: "/accept" },
{ path: "/homework/newhomework", redirect: "/list/new" },
{ path: "/homework/edit", redirect: "/list/new" },
{ path: "/homework/homework_accept", redirect: "/accept" },
{ path: "/homework/homework_list", redirect: "/list" },
{ path: "/homework/manage", redirect: "/homeworklist" },
{ path: "/homework/homework_details", redirect: "/list/detail" },
{ path: "/homework/statistics", redirect: "/stats" },
{ path: "/homework/setting", redirect: "/setting" },
];
export default routes;