This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import type { RouteRecordRaw } from "vue-router";
|
||||
|
||||
/**
|
||||
* 家校活动信息发布模块路由(扁平短路由,与基础平台模块 path 一致)。
|
||||
* 页面间参数通过 query 传递:
|
||||
* - /list/new?serid= (编辑)
|
||||
* - /list/new?fid= (复用/转发)
|
||||
* - /list/detail?serid=&type=、/activitylist/detail?serid=&type=
|
||||
* type: 0=管理视角(不标读) 1=查看视角(标读)
|
||||
*
|
||||
* modId 是菜单 ↔ 路由的稳定契约(对照后端 GetUserMod 现行数据):
|
||||
* 2=我发布的 3=全部活动 25=报名情况 4=活动统计 21=应用设置
|
||||
* 31=活动广场(家长端) 32=我的报名(家长端)
|
||||
* 发布活动为「我发布的」的深层子页(modId 22 不在菜单树,meta.parentId=2 关联高亮),
|
||||
* 与 UserBase「应用管理>应用类型管理」范式一致。
|
||||
*/
|
||||
const routes: RouteRecordRaw[] = [
|
||||
// 发布端默认落地:我发布的
|
||||
{ path: "/", redirect: "/list" },
|
||||
|
||||
// 我发布的(教师/教练发布的活动列表)
|
||||
{
|
||||
path: "/list",
|
||||
name: "activity_list",
|
||||
component: () => import("@/views/activity/ActivityList.vue"),
|
||||
meta: { title: "我发布的", modId: 2 },
|
||||
},
|
||||
// 全部活动(管理端)
|
||||
{
|
||||
path: "/activitylist",
|
||||
name: "activity_manage",
|
||||
component: () => import("@/views/activity/ActivityList.vue"),
|
||||
meta: { title: "全部活动", modId: 3 },
|
||||
},
|
||||
// 发布活动(新建/编辑/复用):我发布的的深层子页,不在菜单里,
|
||||
// layout.vue 按 meta.parentId 推导面包屑「我发布的>发布活动」并高亮父菜单
|
||||
{
|
||||
path: "/list/new",
|
||||
name: "new_activity",
|
||||
component: () => import("@/views/activity/NewActivity.vue"),
|
||||
meta: { title: "发布活动", modId: 22, parentId: 2 },
|
||||
},
|
||||
// 活动详情(同一组件挂两个路由,面包屑/菜单高亮由 meta.parentId 确定父节点)
|
||||
{
|
||||
path: "/list/detail",
|
||||
name: "activity_list_detail",
|
||||
component: () => import("@/views/activity/ActivityDetails.vue"),
|
||||
meta: { title: "活动详情", modId: 23, parentId: 2 },
|
||||
},
|
||||
{
|
||||
path: "/activitylist/detail",
|
||||
name: "activity_manage_detail",
|
||||
component: () => import("@/views/activity/ActivityDetails.vue"),
|
||||
meta: { title: "活动详情", modId: 24, parentId: 3 },
|
||||
},
|
||||
// 报名情况(某活动的家长回执/报名名单;从列表行或菜单进入,无 serid 时页内选择活动)
|
||||
{
|
||||
path: "/signups",
|
||||
name: "activity_signups",
|
||||
component: () => import("@/views/activity/Signups.vue"),
|
||||
meta: { title: "报名情况", modId: 25 },
|
||||
},
|
||||
// 活动统计
|
||||
{
|
||||
path: "/stats",
|
||||
name: "activity_stats",
|
||||
component: () => import("@/views/activity/ActivityStats.vue"),
|
||||
meta: { title: "活动统计", modId: 4 },
|
||||
},
|
||||
// 应用设置(主办部门 + 自定义组)
|
||||
{
|
||||
path: "/setting",
|
||||
name: "activity_setting",
|
||||
component: () => import("@/views/activity/ActivitySetting.vue"),
|
||||
meta: { title: "应用设置", modId: 21 },
|
||||
},
|
||||
|
||||
/* ---- v2 家长端 ---- */
|
||||
// 家长·活动广场(可查看、可报名)
|
||||
{
|
||||
path: "/par/activities",
|
||||
name: "parent_activities",
|
||||
component: () => import("@/views/activity/ParentActivities.vue"),
|
||||
meta: { title: "活动广场", modId: 31, role: "parent" },
|
||||
},
|
||||
// 家长·我的报名(复用同一页,默认过滤已报名)
|
||||
{
|
||||
path: "/par/mine",
|
||||
name: "parent_mine",
|
||||
component: () => import("@/views/activity/ParentActivities.vue"),
|
||||
meta: { title: "我的报名", modId: 32, role: "parent", initTab: "signed" },
|
||||
},
|
||||
|
||||
/* ---- 旧版路径兼容重定向(书签、残留的平台模块配置) ---- */
|
||||
{ path: "/details", redirect: "/list/detail" },
|
||||
{ path: "/newactivity", redirect: "/list/new" },
|
||||
{ path: "/edit", redirect: "/list/new" },
|
||||
{ path: "/manage", redirect: "/activitylist" },
|
||||
{ path: "/activity", redirect: "/list" },
|
||||
{ path: "/activity/new", redirect: "/list/new" },
|
||||
{ path: "/activity/edit", redirect: "/list/new" },
|
||||
{ path: "/activity/list", redirect: "/list" },
|
||||
{ path: "/activity/manage", redirect: "/activitylist" },
|
||||
{ path: "/activity/details", redirect: "/list/detail" },
|
||||
{ path: "/activity/signups", redirect: "/signups" },
|
||||
{ path: "/activity/statistics", redirect: "/stats" },
|
||||
{ path: "/activity/setting", redirect: "/setting" },
|
||||
];
|
||||
|
||||
export default routes;
|
||||
Reference in New Issue
Block a user