index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import { PCMenu } from "../config/menu";
  4. import { checkWork, checkLogin,getPanoInfo } from '@/api'
  5. import { $alert } from '@/components/shared/message'
  6. import store from '../Store'
  7. let vue = new Vue()
  8. import { LoginDetector,OnlineDetector } from "@/utils/starter";
  9. Vue.use(Router)
  10. const originalPush = Router.prototype.push
  11. Router.prototype.push = function push (location) {
  12. return originalPush.call(this, location).catch(err => err)
  13. }
  14. let routes = [];
  15. PCMenu.forEach(item => {
  16. routes.push({
  17. name: item.name,
  18. path: `${item.link}`,
  19. meta: {
  20. loading: null,
  21. loadScene: !item.hidescene
  22. },
  23. component: () => import(`../views/${item.name}/index.vue`)
  24. });
  25. });
  26. LoginDetector.register(
  27. detector => new Promise(resolve => detector.resolve(resolve))
  28. );
  29. OnlineDetector.register(
  30. detector => new Promise(resolve => detector.resolve(resolve))
  31. );
  32. //检验是不是该用户作品
  33. checkWork().then(res=>{
  34. if (res.data) {
  35. checkLogin().then(response => {
  36. if (response.code == 3005) {
  37. store.commit('UpdateIsShowState', false)
  38. vue.$bus.emit('canLoad',false)
  39. return vue.$alert({content: '当前无操作权限'});
  40. } else{
  41. vue.$bus.emit('canLoad',true)
  42. LoginDetector.valid();
  43. }
  44. });
  45. }
  46. else{
  47. return vue.$alert({content: '该作品已被删除'});
  48. }
  49. })
  50. getPanoInfo().then(() => {
  51. store.commit('UpdateIsShowState', true)
  52. // if(response&&response.status == 1){
  53. // }
  54. OnlineDetector.valid();
  55. });
  56. const router = new Router({
  57. routes: routes
  58. })
  59. router.beforeEach(async (to, from, next) => {
  60. await LoginDetector.listener();
  61. await OnlineDetector.listener();
  62. if (from.name == 'hotspot') {
  63. if (store.getters.isEditing) {
  64. vue.$confirm({
  65. content: "热点内容未编辑完,确定要关闭吗",
  66. ok: () => {
  67. vue.$bus.emit('delhotspot')
  68. return next()
  69. }
  70. });
  71. return
  72. }
  73. }
  74. if (to.path == '/') {
  75. return next({path: "/base" })
  76. }
  77. next()
  78. })
  79. export default router;