Files
coursehomework-front/.backup/20260915-drop-app-setting/src/router/routes.ts
T

125 lines
5.1 KiB
TypeScript
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.
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;