|
|
|
@ -2,9 +2,700 @@ import { createRouter, createWebHistory } from 'vue-router';
|
|
|
|
|
|
|
|
|
|
// 静态路由
|
|
|
|
|
const routes = [
|
|
|
|
|
{
|
|
|
|
|
path: '/login',
|
|
|
|
|
name: 'Login',
|
|
|
|
|
component: () => import('@/views/global/login.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
layout: false,
|
|
|
|
|
global: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/',
|
|
|
|
|
component: () => import('@/views/index.vue'),
|
|
|
|
|
name: 'App',
|
|
|
|
|
redirect: { name: 'Home' },
|
|
|
|
|
component: () => import('@/layouts/default.vue'),
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: '/home',
|
|
|
|
|
name: 'Home',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '首页',
|
|
|
|
|
icon: 'home-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/user',
|
|
|
|
|
name: 'UserManagement',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '用户管理',
|
|
|
|
|
icon: 'folder-user-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'consult',
|
|
|
|
|
name: 'ConsultManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '咨询管理',
|
|
|
|
|
icon: 'kakao-talk-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'course',
|
|
|
|
|
name: 'CourseConsultManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '咨询课程',
|
|
|
|
|
icon: 'chat-smile-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'account',
|
|
|
|
|
name: 'AccountManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '账号课程',
|
|
|
|
|
icon: 'account-box-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'feedback',
|
|
|
|
|
name: 'FeedbackManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '意见反馈',
|
|
|
|
|
icon: 'feedback-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/system',
|
|
|
|
|
name: 'SystemManagement',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '系统管理',
|
|
|
|
|
icon: 'settings-3-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'log',
|
|
|
|
|
name: 'LogManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '日志管理',
|
|
|
|
|
icon: 'file-chart-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'app',
|
|
|
|
|
name: 'AppManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: 'APP包管理',
|
|
|
|
|
icon: 'app-store-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'notify',
|
|
|
|
|
name: 'NotifyManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '通知管理',
|
|
|
|
|
icon: 'alarm-warning-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'file',
|
|
|
|
|
name: 'FileManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '文件中台',
|
|
|
|
|
icon: 'file-copy-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/personal',
|
|
|
|
|
name: 'Personal',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '个人面板',
|
|
|
|
|
icon: 'user-2-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'answer/:tab?',
|
|
|
|
|
name: 'MineAnswer',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '我的答疑',
|
|
|
|
|
icon: 'question-answer-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'file',
|
|
|
|
|
name: 'MineFile',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '我的文件',
|
|
|
|
|
icon: 'file-3-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'data',
|
|
|
|
|
name: 'MineData',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '数据面板',
|
|
|
|
|
icon: 'file-chart-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/operation',
|
|
|
|
|
name: 'Operation',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '运营管理',
|
|
|
|
|
icon: 'briefcase-4-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'banner',
|
|
|
|
|
name: 'BannerManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '轮播图',
|
|
|
|
|
icon: 'image-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'activity',
|
|
|
|
|
name: 'ActivityManagement',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '活动管理',
|
|
|
|
|
icon: 'gift-2-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'course',
|
|
|
|
|
name: 'CourseActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程活动',
|
|
|
|
|
icon: 'git-repository-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'poster',
|
|
|
|
|
name: 'PosterShare',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '海报分享',
|
|
|
|
|
icon: 'dashboard-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'punch',
|
|
|
|
|
name: 'PunchActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '打卡活动',
|
|
|
|
|
icon: 'fingerprint-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'distribution',
|
|
|
|
|
name: 'DistributionManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '分销管理',
|
|
|
|
|
icon: 'mind-map',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'integral',
|
|
|
|
|
name: 'IntegralManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '积分管理',
|
|
|
|
|
icon: 'bubble-chart-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'news',
|
|
|
|
|
name: 'GoodNewsManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '喜报管理',
|
|
|
|
|
icon: 'newspaper-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'lottery',
|
|
|
|
|
name: 'LotteryActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '抽奖活动',
|
|
|
|
|
icon: 'star-smile-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'promotion',
|
|
|
|
|
name: 'promotionActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '弹窗活动配置',
|
|
|
|
|
icon: 'e-bike-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'promotion/:id',
|
|
|
|
|
name: 'promotionActivityDetail',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '弹窗活动详情',
|
|
|
|
|
icon: 'e-bike-2-fill',
|
|
|
|
|
hidden: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'landing',
|
|
|
|
|
name: 'landingActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '落地页列表',
|
|
|
|
|
icon: 'arrow-left-right-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'landing/:id',
|
|
|
|
|
name: 'landingActivityDetail',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '落地页详情',
|
|
|
|
|
icon: 'arrow-left-right-fill',
|
|
|
|
|
hidden: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'supernatant',
|
|
|
|
|
name: 'supernatantActivity',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '浮窗配置',
|
|
|
|
|
icon: 'bring-forward',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'supernatant/:id',
|
|
|
|
|
name: 'supernatantActivityDetail',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '浮窗详情',
|
|
|
|
|
icon: 'bring-forward',
|
|
|
|
|
hidden: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'marketing',
|
|
|
|
|
name: 'MarketingActivities',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '咨询组管理',
|
|
|
|
|
icon: 'bar-chart-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'marketing/edit/:id?',
|
|
|
|
|
name: 'ActivityEdit',
|
|
|
|
|
meta: {
|
|
|
|
|
hidden: true,
|
|
|
|
|
title: '营销活动-编辑',
|
|
|
|
|
icon: 'bar-chart-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'marketing/visitor/:id?',
|
|
|
|
|
name: 'MarketingLogs',
|
|
|
|
|
meta: {
|
|
|
|
|
hidden: true,
|
|
|
|
|
title: '营销活动-数据',
|
|
|
|
|
icon: 'bar-chart-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/finance',
|
|
|
|
|
name: 'Finance',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '财务管理',
|
|
|
|
|
icon: 'money-cny-circle-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'order',
|
|
|
|
|
name: 'OrderManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '订单管理',
|
|
|
|
|
icon: 'auction-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'refund',
|
|
|
|
|
name: 'RefundManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '退款管理',
|
|
|
|
|
icon: 'refund-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'reconciliation',
|
|
|
|
|
name: 'FinanceReconciliation',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '财务对账',
|
|
|
|
|
icon: 'money-dollar-box-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/education',
|
|
|
|
|
name: 'Education',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '教务教学',
|
|
|
|
|
icon: 'book-open-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'teacher',
|
|
|
|
|
name: 'TeacherManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '老师管理',
|
|
|
|
|
icon: 'user-shared-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'student',
|
|
|
|
|
name: 'StudentManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '学生管理',
|
|
|
|
|
icon: 'user-received-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'list',
|
|
|
|
|
name: 'StudentManagementList',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '学生列表',
|
|
|
|
|
icon: 'user-received-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'grade',
|
|
|
|
|
name: 'GradeManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '年级管理',
|
|
|
|
|
icon: 'account-pin-box-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'class',
|
|
|
|
|
name: 'ClassManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '班级管理',
|
|
|
|
|
icon: 'account-pin-circle-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'admission',
|
|
|
|
|
name: 'AdmissionManagement',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '入学',
|
|
|
|
|
icon: 'award-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'evaluation',
|
|
|
|
|
name: 'AdmissionEvaluation',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '入学评测',
|
|
|
|
|
icon: 'file-paper-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'way',
|
|
|
|
|
name: 'StudyWay',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '学习路线',
|
|
|
|
|
icon: 'send-plane-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'answer',
|
|
|
|
|
name: 'Answer',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑',
|
|
|
|
|
icon: 'question-answer-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'management',
|
|
|
|
|
name: 'AnswerManagement',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑管理',
|
|
|
|
|
icon: 'question-answer-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'list',
|
|
|
|
|
name: 'AnswerManagementList',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑管理列表',
|
|
|
|
|
icon: 'question-answer-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'invalid',
|
|
|
|
|
name: 'InvalidQuestionManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '无效追问管理',
|
|
|
|
|
icon: 'questionnaire-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'lock',
|
|
|
|
|
name: 'UserLockManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '用户锁定管理',
|
|
|
|
|
icon: 'lock-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'assign/:questionId',
|
|
|
|
|
name: 'AssignAnswerTeacher',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '指派老师',
|
|
|
|
|
icon: 'account-box-fill',
|
|
|
|
|
hidden: true,
|
|
|
|
|
activeMenu: '/education/answer/management',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'teacher',
|
|
|
|
|
name: 'AnswerTeacher',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑老师管理',
|
|
|
|
|
icon: 'book-line',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'summary',
|
|
|
|
|
name: 'AnswerTeacherSummary',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑老师统计',
|
|
|
|
|
icon: 'book-2-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'management',
|
|
|
|
|
name: 'AnswerTeacherManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑老师管理',
|
|
|
|
|
icon: 'book-3-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'bind/:teacher?',
|
|
|
|
|
name: 'AnswerTeacherUpdateBind',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '编辑课程绑定',
|
|
|
|
|
icon: 'book-fill',
|
|
|
|
|
hidden: true,
|
|
|
|
|
activeMenu: '/education/answer/teacher/management',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'course',
|
|
|
|
|
name: 'AnswerTeacherBindCourse',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '绑定课程管理',
|
|
|
|
|
icon: 'book-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'question',
|
|
|
|
|
name: 'QuestionManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '题库管理',
|
|
|
|
|
icon: 'brush-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'note',
|
|
|
|
|
name: 'NoteManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '笔记管理',
|
|
|
|
|
icon: 'sticky-note-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'research',
|
|
|
|
|
name: 'CourseResearch',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课研更新',
|
|
|
|
|
icon: 'contacts-book-upload-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'plan',
|
|
|
|
|
name: 'CourseResearchPlan',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课研计划',
|
|
|
|
|
icon: 'contacts-book-upload-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'log',
|
|
|
|
|
name: 'CourseResearchLog',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课研更新日志',
|
|
|
|
|
icon: 'file-copy-2-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'live',
|
|
|
|
|
name: 'LiveManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '直播管理',
|
|
|
|
|
icon: 'live-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'material',
|
|
|
|
|
name: 'MaterialManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '老师资料管理',
|
|
|
|
|
icon: 'database-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'shift',
|
|
|
|
|
name: 'ShiftTable',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '排班表',
|
|
|
|
|
icon: 'calendar-check-line',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'course',
|
|
|
|
|
name: 'CourseTable',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程表管理',
|
|
|
|
|
icon: 'calendar-todo-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/course',
|
|
|
|
|
name: 'Course',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程管理',
|
|
|
|
|
icon: 'checkbox-multiple-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'management',
|
|
|
|
|
name: 'CourseManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程列表',
|
|
|
|
|
icon: 'book-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'category',
|
|
|
|
|
name: 'CourseCategory',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程分类',
|
|
|
|
|
icon: 'book-read-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'system',
|
|
|
|
|
name: 'SystemCourseManagement',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '体系课',
|
|
|
|
|
icon: 'book-3-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'authorize',
|
|
|
|
|
name: 'CourseAuthorize',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程授权',
|
|
|
|
|
icon: 'book-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'package',
|
|
|
|
|
name: 'CoursePackage',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程包',
|
|
|
|
|
icon: 'archive-drawer-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'live',
|
|
|
|
|
name: 'LiveCourse',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '直播课',
|
|
|
|
|
icon: 'live-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: '/audit',
|
|
|
|
|
name: 'Audit',
|
|
|
|
|
component: () => import('@/views/global/home.vue'),
|
|
|
|
|
meta: {
|
|
|
|
|
title: '审核管理',
|
|
|
|
|
icon: 'checkbox-multiple-fill',
|
|
|
|
|
},
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: 'course',
|
|
|
|
|
name: 'CourseAudit',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '课程审核',
|
|
|
|
|
icon: 'book-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'answer',
|
|
|
|
|
name: 'AnswerCourseAudit',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '答疑课程审核',
|
|
|
|
|
icon: 'book-2-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: 'admission',
|
|
|
|
|
name: 'AdmissionAudit',
|
|
|
|
|
meta: {
|
|
|
|
|
title: '入学审核',
|
|
|
|
|
icon: 'book-3-fill',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
@ -19,4 +710,25 @@ const router = createRouter({
|
|
|
|
|
routes,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
import store from '@/store';
|
|
|
|
|
router.onError((error, to) => {
|
|
|
|
|
console.info('[router] error', error, to);
|
|
|
|
|
});
|
|
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
|
|
if (!from.matched.length) {
|
|
|
|
|
store.loadCache();
|
|
|
|
|
}
|
|
|
|
|
if (to.meta.global) {
|
|
|
|
|
next();
|
|
|
|
|
} else {
|
|
|
|
|
if (!store.state.auth.userInfo) {
|
|
|
|
|
await store.dispatch('auth/getUserInfo');
|
|
|
|
|
}
|
|
|
|
|
if (!store.state.auth.permission.length) {
|
|
|
|
|
await store.dispatch('auth/getPermission');
|
|
|
|
|
}
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export default router;
|
|
|
|
|