index.js 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. import Vue from 'vue';
  2. import VueRouter from 'vue-router';
  3. import store from '@/store/index';
  4. import { Notification } from 'element-ui';
  5. Vue.use(VueRouter);
  6. const routes = [
  7. {
  8. path: '/',
  9. name: 'frame',
  10. component: () => import('@/views/index.vue'),
  11. children: [
  12. {
  13. path: '/list',
  14. name: 'test_list',
  15. component: () => import('@/views/test/list.vue'),
  16. },
  17. {
  18. path: '/detail',
  19. name: 'test_detail',
  20. component: () => import('@/views/test/detail.vue'),
  21. },
  22. {
  23. path: '/itembank/detail',
  24. name: 'itembank_detail',
  25. meta: { title: '题库', sub: '详情' },
  26. component: () => import('@/views/Itembank/detail.vue'),
  27. },
  28. {
  29. path: '/itembank/index',
  30. name: 'itembank_index',
  31. meta: { title: '题库', sub: '管理' },
  32. component: () => import('@/views/Itembank/index.vue'),
  33. },
  34. {
  35. path: '/leave/index',
  36. name: 'leave_index',
  37. meta: { title: '请假及其退出', sub: '管理' },
  38. component: () => import('@/views/leave/index.vue'),
  39. },
  40. // {
  41. // path: '/questionstate/detail',
  42. // name: 'questionstate_detail',
  43. // meta: { title: '问卷状态', sub: '详情' },
  44. // component: () => import('@/views/questionstate/detail.vue'),
  45. // },
  46. {
  47. path: '/questionstate/index',
  48. name: 'questionstate_index',
  49. meta: { title: '问卷状态', sub: '管理' },
  50. component: () => import('@/views/questionstate/index.vue'),
  51. },
  52. {
  53. path: '/certificaate/index',
  54. name: 'certificaate_index',
  55. meta: { title: '证书', sub: '管理' },
  56. component: () => import('@/views/certificaate/index.vue'),
  57. },
  58. {
  59. path: '/certificaate/detail',
  60. name: 'certificaate_detail',
  61. meta: { title: '证书', sub: '详情' },
  62. component: () => import('@/views/certificaate/detail.vue'),
  63. },
  64. {
  65. path: '/certificaate/look',
  66. name: 'certificaate_look',
  67. meta: { title: '证书', sub: '打印' },
  68. component: () => import('@/views/certificaate/look.vue'),
  69. },
  70. {
  71. path: '/questionnaire/index',
  72. name: 'questionnaire_index',
  73. meta: { title: '问卷', sub: '管理' },
  74. component: () => import('@/views/questionnaire/index.vue'),
  75. },
  76. {
  77. path: '/questionnaire/detail',
  78. name: 'questionnaire_detail',
  79. meta: { title: '问卷', sub: '详情' },
  80. component: () => import('@/views/questionnaire/detail.vue'),
  81. },
  82. {
  83. path: '/teacher/detail',
  84. name: 'teacher_detail',
  85. meta: { title: '教师', sub: '详情' },
  86. component: () => import('@/views/teacher/detail.vue'),
  87. },
  88. {
  89. path: '/teacher/index',
  90. name: 'teacher_index',
  91. meta: { title: '教师', sub: '管理' },
  92. component: () => import('@/views/teacher/index.vue'),
  93. },
  94. {
  95. path: '/teacher/means',
  96. name: 'teacher_means',
  97. component: () => import('@/views/teacher/means.vue'),
  98. },
  99. {
  100. path: '/teacher/verify',
  101. name: 'teacher_verify',
  102. meta: { title: '教师', sub: '审核页' },
  103. component: () => import('@/views/teacher/verify.vue'),
  104. },
  105. {
  106. path: '/work/detail',
  107. name: 'work_detail',
  108. meta: { title: '作业', sub: '详情' },
  109. component: () => import('@/views/work/detail.vue'),
  110. },
  111. {
  112. path: '/work/index',
  113. name: 'work_index',
  114. meta: { title: '作业', sub: '管理' },
  115. component: () => import('@/views/work/index.vue'),
  116. },
  117. {
  118. path: '/work/look',
  119. name: 'work_look',
  120. meta: { title: '作业题', sub: '管理' },
  121. component: () => import('@/views/work/look.vue'),
  122. },
  123. {
  124. path: '/subject/index',
  125. name: 'subject_index',
  126. meta: { title: '科目', sub: '管理' },
  127. component: () => import('@/views/subject/index.vue'),
  128. },
  129. {
  130. path: '/subject/detail',
  131. name: 'subject_detail',
  132. meta: { title: '科目', sub: '详情' },
  133. component: () => import('@/views/subject/detail.vue'),
  134. },
  135. {
  136. path: '/director/index',
  137. name: 'director_index',
  138. meta: { title: '班主任', sub: '管理' },
  139. component: () => import('@/views/director/index.vue'),
  140. },
  141. {
  142. path: '/director/detail',
  143. name: 'director_detail',
  144. meta: { title: '班主任', sub: '详情' },
  145. component: () => import('@/views/director/detail.vue'),
  146. },
  147. {
  148. path: '/dept/index',
  149. name: 'dept_index',
  150. meta: { title: '部门', sub: '管理' },
  151. component: () => import('@/views/dept/index.vue'),
  152. },
  153. {
  154. path: '/dept/detail',
  155. name: 'dept_detail',
  156. meta: { title: '部门', sub: '详情' },
  157. component: () => import('@/views/dept/detail.vue'),
  158. },
  159. {
  160. path: '/duty/index',
  161. name: 'duty_index',
  162. meta: { title: '职责', sub: '说明' },
  163. component: () => import('@/views/duty/index.vue'),
  164. },
  165. {
  166. path: '/location/index',
  167. name: 'location_index',
  168. meta: { title: '地点', sub: '管理' },
  169. component: () => import('@/views/location/index.vue'),
  170. },
  171. {
  172. path: '/location/detail',
  173. name: 'location_detail',
  174. meta: { title: '地点', sub: '详情' },
  175. component: () => import('@/views/location/detail.vue'),
  176. },
  177. {
  178. path: '/bedroom/index',
  179. name: 'bedroom_index',
  180. meta: { title: '寝室', sub: '管理' },
  181. component: () => import('@/views/bedroom/index.vue'),
  182. },
  183. {
  184. path: '/bedroom/detail',
  185. name: 'bedroom_detail',
  186. meta: { title: '寝室', sub: '详情' },
  187. component: () => import('@/views/bedroom/detail.vue'),
  188. },
  189. {
  190. path: '/classes/index',
  191. name: 'classes_index',
  192. meta: { title: '班级', sub: '管理' },
  193. component: () => import('@/views/classes/index.vue'),
  194. },
  195. {
  196. path: '/classes/detail',
  197. name: 'classes_detail',
  198. meta: { title: '班级', sub: '详情' },
  199. component: () => import('@/views/classes/detail.vue'),
  200. },
  201. {
  202. path: '/student/index',
  203. name: 'student_index',
  204. meta: { title: '学生', sub: '管理' },
  205. component: () => import('@/views/student/index.vue'),
  206. },
  207. {
  208. path: '/student/detail',
  209. name: 'student_detail',
  210. meta: { title: '学生', sub: '详情' },
  211. component: () => import('@/views/student/detail.vue'),
  212. },
  213. {
  214. path: '/plan/index',
  215. name: 'plan_index',
  216. meta: { title: '计划', sub: '管理' },
  217. component: () => import('@/views/plan/index.vue'),
  218. },
  219. {
  220. path: '/plan/detail',
  221. name: 'plan_detail',
  222. meta: { title: '计划', sub: '详情' },
  223. component: () => import('@/views/plan/detail.vue'),
  224. },
  225. {
  226. path: '/plan/classes',
  227. name: 'plan_classes',
  228. meta: { title: '安排', sub: '班级' },
  229. component: () => import('@/views/plan/classes.vue'),
  230. },
  231. {
  232. path: '/plan/lesson',
  233. name: 'plan_lesson',
  234. meta: { title: '安排', sub: '课程' },
  235. component: () => import('@/views/plan/lesson.vue'),
  236. },
  237. {
  238. path: '/plan/msg',
  239. name: 'plan_msg',
  240. meta: { title: '发送', sub: '通知' },
  241. component: () => import('@/views/plan/msg.vue'),
  242. },
  243. {
  244. path: '/plan/question',
  245. name: 'plan_question',
  246. meta: { title: '问卷', sub: '管理' },
  247. component: () => import('@/views/plan/question.vue'),
  248. },
  249. {
  250. path: '/lesson/index',
  251. name: 'lesson_index',
  252. meta: { title: '课程模板管理', sub: '' },
  253. component: () => import('@/views/lesson/index.vue'),
  254. },
  255. {
  256. path: '/lesson/detail',
  257. name: 'lesson_detail',
  258. meta: { title: '课程模板', sub: '' },
  259. component: () => import('@/views/lesson/detail.vue'),
  260. },
  261. {
  262. path: '/school/index',
  263. name: 'school_index',
  264. meta: { title: '学校管理', sub: '' },
  265. component: () => import('@/views/school/index.vue'),
  266. },
  267. {
  268. path: '/school/detail',
  269. name: 'school_detail',
  270. meta: { title: '学校信息', sub: '' },
  271. component: () => import('@/views/school/detail.vue'),
  272. },
  273. ],
  274. },
  275. {
  276. path: '/yearPlan/index',
  277. name: 'yearPlan_index',
  278. meta: { title: '全年计划', sub: '管理' },
  279. component: () => import('@/views/yearPlan/index.vue'),
  280. },
  281. // 教师甄选注册账号
  282. {
  283. path: '/teaRegister',
  284. name: 'teaRegister',
  285. meta: { title: '教师注册', sub: '管理' },
  286. component: () => import('@/views/register/teaRegister.vue'),
  287. },
  288. {
  289. path: '/login',
  290. name: 'login',
  291. meta: { title: '登录', sub: '管理' },
  292. component: () => import('@/views/register/login.vue'),
  293. },
  294. ];
  295. const router = new VueRouter({
  296. mode: 'history',
  297. base: process.env.NODE_ENV === 'development' ? '' : 'center',
  298. routes,
  299. });
  300. router.beforeEach((to, form, next) => {
  301. store.commit('setUser');
  302. if (to.name === 'login') {
  303. next();
  304. return;
  305. }
  306. let user = store.state.user;
  307. if (user) {
  308. if (user.type == process.env.VUE_APP_USER_TYPE) {
  309. console.log('已登录');
  310. next();
  311. } else {
  312. Notification({
  313. title: '请重新登陆',
  314. message: `原因:非当前端用户,需要重新登陆`,
  315. type: 'warning',
  316. });
  317. console.warn('非当前端用户,需要重新登陆');
  318. next({ name: 'login' });
  319. }
  320. }
  321. //下面是没登录的情况,需要跳转页面到用户未登录页
  322. else next({ name: 'login' });
  323. });
  324. export default router;