import { browser } from '@/helpers/utils' import { showDialog } from 'vant' import { createRouter, createWebHashHistory, createWebHistory, Router } from 'vue-router' import { postMessage } from '@/helpers/native-message' import routesTeacher from './routes-teacher' import routesStudent from './routes-student' import routesSchool from './routes-school' const paymentType = (window as any).paymentType let routes: any = [] let baseUrl = null as any if (paymentType === 'STUDENT') { routes = routesStudent } else if (paymentType === 'TEACHER') { routes = routesTeacher baseUrl = '/teacher.html' } else if (paymentType === 'SCHOOL') { routes = routesSchool baseUrl = '/school.html' } // if (location.origin.indexOf('location') <= -1 || location.origin.indexOf('192.168.3') <= -1) { // baseUrl = '' // } console.log(routes, baseUrl, paymentType) const router: Router = createRouter({ // history: createWebHistory('/school.html'), history: createWebHashHistory(), routes, scrollBehavior(to, from, savedPosition) { if (to.hash) { return { el: to.hash, behavior: 'smooth' } } } }) router.beforeEach((to, from, next) => { document.title = (to.meta.title || '管乐团') as any next() }) let isOpen = false router.onError((error) => { if (error instanceof Error) { const isChunkLoadFailed = error.name.indexOf('chunk') const targetPath = router.currentRoute.value.fullPath console.log(error) if (isChunkLoadFailed && !isOpen) { isOpen = true showDialog({ title: '更新提示', message: 'APP有更新请点击确定刷新页面?', confirmButtonColor: 'var(--van-primary)' }).then(() => { // on close if (browser().isApp) { postMessage({ api: 'back' }) } else { location.hash = targetPath window.location.reload() } }) } } }) export default router