c96830c301
- Add student lesson records page (/student/lessons) - Add teacher lesson statistics page (/teacher/stats) - Add supervisor statistics page (/supervisor/stats) - Add navigation entries in student/teacher/supervisor profiles - Add audit log viewer in clazz detail modal - Add getAuditLog, queryStudentLessons, queryTeacherDetailStats store methods - Register new routes Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
256 lines
13 KiB
TypeScript
256 lines
13 KiB
TypeScript
import Index from '~/pages/index.vue'
|
|
import NotFound from '~/pages/404.vue'
|
|
import Avatar from "~/pages/avatar.vue"
|
|
import GuestProfile from '~/pages/guest/profile.vue'
|
|
import GuestRegister from '~/pages/guest/register.vue'
|
|
import AdminProfile from '~/pages/admin/profile.vue'
|
|
import AdminTeacher from '~/pages/admin/teachers.vue';
|
|
import CourseCategory from '~/pages/admin/qumu-category.vue';
|
|
import Student from '~/pages/student/index.vue'
|
|
import StudentUnclaimed from '~/pages/student/unclaimed.vue'
|
|
import StudentHome from '~/pages/student/home.vue'
|
|
import StudentDetail from '~/pages/student/detail.vue'
|
|
import StudentProfile from '~/pages/student/profile.vue'
|
|
import StudentTeachers from '~/pages/student/teachers.vue'
|
|
import StudentTeacherSelect from '~/pages/student/teacher-select.vue'
|
|
import StudentLianxiAdd from '~/pages/student/lianxi/add.vue';
|
|
import StudentLessons from '~/pages/student/lessons.vue';
|
|
import Teacher from '~/pages/teacher/index.vue'
|
|
import TeacherHome from '~/pages/teacher/home.vue'
|
|
import TeacherDetail from '~/pages/teacher/detail.vue';
|
|
import TeacherProfile from '~/pages/teacher/profile.vue'
|
|
import TeacherStudents from '~/pages/teacher/students.vue'
|
|
import TeacherSubsidiaries from '~/pages/teacher/subsidiaries.vue'
|
|
import TeacherStats from '~/pages/teacher/stats.vue'
|
|
import SupervisorStats from '~/pages/supervisor/stats.vue'
|
|
import CourseSummary from '~/pages/qumu/summary.vue'
|
|
import Course from '~/pages/qumu/index.vue'
|
|
import CourseSection from '~/pages/qumu/section/index.vue';
|
|
import CourseSectionMixPick from '~/pages/qumu/mix-pick.vue';
|
|
import CourseSectionPick from '~/pages/qumu/section/pick.vue';
|
|
import CourseSectionAdd from '~/pages/qumu/section/add.vue'
|
|
import CourseSectionEdit from '~/pages/qumu/section/edit.vue'
|
|
import CourseSectionDetail from '~/pages/qumu/section/detail.vue'
|
|
import CourseSectionModify from '~/pages/qumu/section/modify.vue'
|
|
import CourseGroup from '~/pages/qumu/group/index.vue'
|
|
import CourseGroupPick from '~/pages/qumu/group/pick.vue';
|
|
import CourseGroupAdd from '~/pages/qumu/group/add.vue'
|
|
import CourseGroupEdit from '~/pages/qumu/group/edit.vue'
|
|
import CourseGroupDetail from '~/pages/qumu/group/detail.vue'
|
|
import CoursePackage from '~/pages/qumu/course-package/index.vue'
|
|
import CoursePackageAdd from '~/pages/qumu/course-package/add.vue'
|
|
import CoursePackageEdit from '~/pages/qumu/course-package/edit.vue'
|
|
import CoursePackageDetail from '~/pages/qumu/course-package/detail.vue'
|
|
import Tongzhi from '~/pages/tongzhi/index.vue';
|
|
import TongzhiDetail from '~/pages/tongzhi/detail.vue';
|
|
import Tester from '~/pages/tester/index.vue'
|
|
import TesterFunction from '~/pages/tester/function.vue'
|
|
import TesterProfile from '~/pages/tester/profile.vue';
|
|
import TesterAI from '~/pages/tester/ai.vue';
|
|
import TesterCalendar from '~/pages/tester/calendar.vue';
|
|
import TesterAvatar from '~/pages/tester/avatar.vue';
|
|
import TesterXml from '~/pages/tester/xml.vue';
|
|
import TesterMap from '~/pages/tester/map.vue';
|
|
import TesterVF from '~/pages/tester/vf.vue';
|
|
import TesterAiCs from '~/pages/tester/ai-cs.vue';
|
|
import UserGroup from '~/pages/user-group/index.vue';
|
|
import UserGroupPick from '~/pages/user-group/pick.vue';
|
|
import UserGroupAdd from '~/pages/user-group/add.vue';
|
|
import UserGroupEdit from '~/pages/user-group/edit.vue';
|
|
import UserGroupDetail from '~/pages/user-group/detail.vue';
|
|
import Daka from '~/pages/daka/index.vue';
|
|
import DakaAdd from '~/pages/daka/add.vue';
|
|
import DakaEdit from '~/pages/daka/edit.vue';
|
|
import DakaDetail from '~/pages/daka/detail.vue';
|
|
import DakaPiyue from '~/pages/daka/piyue.vue';
|
|
import SupervisorProfile from "~/pages/supervisor/profile.vue"
|
|
import SupervisorSubsidiaries from "~/pages/supervisor/subsidiaries.vue"
|
|
import ClazzPage from "~/pages/clazz/index.vue"
|
|
import UserSettings from "~/pages/user-settings.vue";
|
|
import OrgSelect from "~/pages/org/select.vue";
|
|
import OrgHomepage from "~/pages/org/homepage.vue";
|
|
|
|
import {RouteQueryAndHash} from "vue-router";
|
|
|
|
export default [
|
|
{
|
|
path: '/', component: Index, meta: {title: "首页"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
} ,
|
|
{path: '/guest/profile', component: GuestProfile, meta: {title: "我的"}},
|
|
{path: '/guest/register', component: GuestRegister, meta: {title: "注册"}},
|
|
{path: '/avatar', component: Avatar, meta: {title: "编辑头像"}},
|
|
{path: '/admin/profile', component: AdminProfile, meta: {title: "我的"}},
|
|
{path: '/admin/teachers', component: AdminTeacher, meta: {title: "教师管理"}},
|
|
{path: '/admin/course-category', component: CourseCategory, meta: {title: "课程体系类型"}},
|
|
{
|
|
path: '/student', component: Student, meta: {title: "学生列表"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/student/home', component: StudentHome, meta: {title: "首页"}},
|
|
{
|
|
path: '/student/detail', component: StudentDetail,
|
|
meta: {title: "学生详情"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/student/unclaimed', component: StudentUnclaimed, meta: {title: "选择学生"}},
|
|
{path: '/student/profile', component: StudentProfile, meta: {title: "我的"}},
|
|
{path: '/student/lessons', component: StudentLessons, meta: {title: "我的课时"}},
|
|
{path: '/student/teachers', component: StudentTeachers, meta: {title: "我的老师"}},
|
|
{path: '/student/teacher-select', component: StudentTeacherSelect, meta: {title: "选择老师"}},
|
|
{
|
|
path: '/student/lianxi/add', component: StudentLianxiAdd,
|
|
meta: {title: "添加练习"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/teacher', component: Teacher, meta: {title: "教师列表"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/teacher/home', component: TeacherHome, meta: {title: "首页"}},
|
|
{
|
|
path: '/teacher/detail', component: TeacherDetail,
|
|
meta: {title: "首页"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/teacher/profile', component: TeacherProfile, meta: {title: "我的"}},
|
|
{path: '/teacher/students', component: TeacherStudents, meta: {title: "我的学生"}},
|
|
{
|
|
path: '/teacher/subsidiaries', component: TeacherSubsidiaries, meta: {title: "助教老师"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/teacher/stats', component: TeacherStats, meta: {title: "课时统计"}},
|
|
{path: '/supervisor/profile', component: SupervisorProfile, meta: {title: "我的"}},
|
|
{path: '/supervisor/subsidiaries', component: SupervisorSubsidiaries, meta: {title: "我的下属老师"}},
|
|
{path: '/supervisor/stats', component: SupervisorStats, meta: {title: "课时统计"}},
|
|
{path: '/tester', component: Tester, meta: {title: "首页"}},
|
|
{path: '/tester/function', component: TesterFunction, meta: {title: "功能测试"}},
|
|
{path: '/tester/ai', component: TesterAI, meta: {title: "AI测试"}},
|
|
{path: '/tester/calendar', component: TesterCalendar, meta: {title: "日历测试"}},
|
|
{path: '/tester/xml', component: TesterXml, meta: {title: "图片/XML 测试"}},
|
|
{path: '/tester/map', component: TesterMap, meta: {title: "标注测试"}},
|
|
{path: '/tester/profile', component: TesterProfile, meta: {title: "我的"}},
|
|
{path: '/tester/avatar', component: TesterAvatar, meta: {title: "头像测试"}},
|
|
{path: '/tester/vf', component: TesterVF, meta: {title: "VF测试"}},
|
|
{path: '/tester/ai-cs', component: TesterAiCs, meta: {title: "AI客服测试"}},
|
|
|
|
{
|
|
path: '/course/summary', component: CourseSummary, meta: {title: "教学资源库"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course', component: Course, meta: {title: "课程体系"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/mix-pick', component: CourseSectionMixPick, meta: {title: "选择课程"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/section', component: CourseSection, meta: {title: "课程"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/section/pick', component: CourseSectionPick, meta: {title: "选择课程"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/course/section/add', component: CourseSectionAdd, meta: {title: "创建课程"}},
|
|
{
|
|
path: '/course/section/edit', component: CourseSectionEdit,
|
|
meta: {title: "编辑课程"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/section/modify', component: CourseSectionModify,
|
|
meta: {title: "编辑课程"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/section/detail', component: CourseSectionDetail,
|
|
meta: {title: "查看课程"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/group', component: CourseGroup, meta: {title: "课节 "},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/group/pick', component: CourseGroupPick, meta: {title: "选择课节"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/course/group/add', component: CourseGroupAdd, meta: {title: "创建课节"}},
|
|
{
|
|
path: '/course/group/edit', component: CourseGroupEdit,
|
|
meta: {title: "编辑课节"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/group/detail', component: CourseGroupDetail,
|
|
meta: {title: "查看课节"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/course-package', component: CoursePackage, meta: {title: "课包"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/course/course-package/add', component: CoursePackageAdd, meta: {title: "新建课包"}},
|
|
{
|
|
path: '/course/course-package/edit', component: CoursePackageEdit,
|
|
meta: {title: "编辑课包"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/course/course-package/detail', component: CoursePackageDetail,
|
|
meta: {title: "课包详情"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/tongzhi', component: Tongzhi, meta: {title: "消息通知"}},
|
|
{
|
|
path: '/tongzhi/detail', component: TongzhiDetail, meta: {title: "通知详情"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/user-group', component: UserGroup, meta: {title: "我的小组"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/user-group/add', component: UserGroupAdd, meta: {title: "新增小组"}},
|
|
{
|
|
path: '/user-group/pick', component: UserGroupPick, meta: {title: "选择小组"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/user-group/edit', component: UserGroupEdit,
|
|
meta: {title: "编辑小组"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/user-group/detail', component: UserGroupDetail,
|
|
meta: {title: "小组详情"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/daka', component: Daka, meta: {title: "打卡"}},
|
|
{
|
|
path: '/daka/add', component: DakaAdd, meta: {title: "新增打卡"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/daka/edit', component: DakaEdit,
|
|
meta: {title: "编辑打卡"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/daka/detail', component: DakaDetail,
|
|
meta: {title: "打卡详情"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/daka/piyue', component: DakaPiyue,
|
|
meta: {title: "打卡批阅"}, props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{
|
|
path: '/clazz', component: ClazzPage, meta: {title: "排课"},
|
|
props: ({query}: RouteQueryAndHash) => ({params: query})
|
|
},
|
|
{path: '/org/select', component: OrgSelect, meta: {title: "选择机构"}},
|
|
{path: '/org/homepage', component: OrgHomepage, meta: {title: "机构首页管理"}},
|
|
{path: '/user-settings', component: UserSettings, meta: {title: "个性化设置"}},
|
|
{path: '/student/jihua/:pathMatch(.*)*', redirect: '/daka'},
|
|
{path: '/teacher/jihua/:pathMatch(.*)*', redirect: '/daka'},
|
|
...(import.meta.env.DEV
|
|
? [
|
|
{
|
|
path: '/__dev/session',
|
|
component: () => import('~/pages/dev/SessionSeed.vue'),
|
|
meta: {title: 'Dev 会话'},
|
|
},
|
|
]
|
|
: []),
|
|
{path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound, meta: {title: "404"}},
|
|
]
|