router.ts 1.7 KB
Newer Older
xiaozhumaopao's avatar
xiaozhumaopao 已提交
1
/* eslint-disable @typescript-eslint/no-var-requires */
richard_1015's avatar
richard_1015 已提交
2 3
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
import Index from './views/Index.vue';
A
ailululu 已提交
4
import Resource from './views/Resource.vue';
N
ninidesign 已提交
5
import Main from './views/Main.vue';
xiaozhumaopao's avatar
xiaozhumaopao 已提交
6
import { HttpClient } from '../service/HttpClient';
richard_1015's avatar
richard_1015 已提交
7
const pagesRouter: Array<RouteRecordRaw> = [];
xiaozhumaopao's avatar
xiaozhumaopao 已提交
8 9 10
const files = require.context('@/packages', true, /doc\.md$/);
files.keys().forEach(component => {
  const componentEntity = files(component).default;
richard_1015's avatar
richard_1015 已提交
11
  const name = `${component.split('/')[1]}`;
xiaozhumaopao's avatar
xiaozhumaopao 已提交
12
  pagesRouter.push({
richard_1015's avatar
richard_1015 已提交
13 14 15
    path: name,
    component: componentEntity,
    name
xiaozhumaopao's avatar
xiaozhumaopao 已提交
16 17
  });
});
richard_1015's avatar
richard_1015 已提交
18 19 20 21 22 23 24 25 26 27
const docs = require.context('@/docs', true, /\.md$/);
docs.keys().forEach(component => {
  const componentEntity = docs(component).default;
  const name = `${component.split('/')[1].replace('.md', '')}`;
  pagesRouter.push({
    path: name,
    component: componentEntity,
    name
  });
});
richard_1015's avatar
richard_1015 已提交
28 29 30
const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
31
    name: '/',
xiaozhumaopao's avatar
xiaozhumaopao 已提交
32 33
    component: Index,
    children: pagesRouter
A
ailululu 已提交
34
  },
N
ninidesign 已提交
35 36 37 38 39 40
  {
    path: '/main',
    name: '/main',
    component: Main
    // children: pagesRouter
  },
A
ailululu 已提交
41 42
  {
    path: '/resource',
A
ailululu 已提交
43
    name: 'resource',
A
ailululu 已提交
44
    component: Resource
richard_1015's avatar
richard_1015 已提交
45 46
  }
];
Z
zhuzhida 已提交
47 48
const router = createRouter({
  history: createWebHashHistory(),
xiaozhumaopao's avatar
xiaozhumaopao 已提交
49
  routes,
richard_1015's avatar
richard_1015 已提交
50
  scrollBehavior(to) {
xiaozhumaopao's avatar
xiaozhumaopao 已提交
51 52 53 54 55 56 57 58
    if (to.hash) {
      const id = to.hash.split('#')[1];
      const ele = document.getElementById(id);
      setTimeout(() => {
        ele && ele.scrollIntoView(true);
      });
    }
  }
Z
zhuzhida 已提交
59
});
xiaozhumaopao's avatar
xiaozhumaopao 已提交
60 61 62 63 64 65
router.afterEach((to, from) => {
  new HttpClient().request('/user/saveVisitInfo', 'post', {
    headers: '',
    componentName: to.path.split('/')[1]
  });
});
Z
zhuzhida 已提交
66
export default router;