import Vue from "vue";
import Router from "vue-router";
import Layout from "@/layout/index.vue";

Vue.use(Router);

/*
  redirect:                     如果设置为“noredirect”，则单击面包屑时不会触发重定向操作
  meta: {
    title: 'title'               子菜单和面包屑中显示的名称（推荐）
    icon: 'svg-name'             侧边栏中显示的图标
    breadcrumb: false            如果为false，则项目将隐藏在breadcrumb中（默认值为true）
    hidden: true                 如果为true，此路由将不会显示在侧边栏中（默认为false）
  }
*/

export default new Router({
  mode: "history",
  scrollBehavior: (to, from, savedPosition) => {
    if (savedPosition) {
      return savedPosition;
    } else {
      return { x: 0, y: 0 };
    }
  },
  base: process.env.BASE_URL,
  routes: [
    {
      path: "/login",
      component: () =>
        import(/* webpackChunkName: "login" */ "@/views/login/index.vue"),
      meta: { hidden: true }
    },
    {
      path: "/",
      redirect: "/project/index",
      component: Layout,
      children: [
        {
          path: "project/index",
          component: () =>
            import(
              /* webpackChunkName: "project" */ "@/views/project/index.vue"
            ),
          meta: {
            title: "项目管理",
            icon: "form"
          }
        }
      ]
    },
    {
      path: "/manage",
      component: Layout,
      meta: {
        title: "文件管理",
        icon: "example"
      },
      children: [
        {
          path: "build",
          component: () =>
            import(
              /* webpackChunkName: "build" */ "@/views/manage/build/index.vue"
            ),
          meta: {
            title: "建筑楼层管理",
            icon: "tree"
          }
        },
        {
          path: "model",
          component: () =>
            import(
              /* webpackChunkName: "model" */ "@/views/manage/model/index.vue"
            ),
          meta: {
            title: "模型修改任务",
            icon: "table"
          }
        }
      ]
    },
    {
      path: "/maintain",
      component: Layout,
      redirect: "/maintain/device",
      meta: {
        title: "数据维护",
        icon: "nested"
      },
      children: [
        {
          path: "device",
          component: () =>
            import(
              /* webpackChunkName: "device" */ "@/views/maintain/device/index.vue"
            ),
          meta: { title: "设备" }
        },
        {
          path: "space",
          component: () =>
            import(
              /* webpackChunkName: "space" */ "@/views/maintain/space/index.vue"
            ),
          meta: { title: "空间" }
        },
        {
          path: "system",
          component: () =>
            import(
              /* webpackChunkName: "system" */ "@/views/maintain/system/index.vue"
            ),
          meta: { title: "系统" }
        },
        {
          path: "relationship",
          component: () =>
            import(
              /* webpackChunkName: "relationship" */ "@/views/maintain/relationship/index.vue"
            ),
          meta: { title: "关系" }
        }
      ]
    },

    {
      path: "/scene",
      component: Layout,
      redirect: "/scene/tiepoint",
      meta: {
        title: "现场实施",
        icon: "nested"
      },
      children: [
        {
          path: "tiepoint",
          component: () =>
            import(
              /* webpackChunkName: "tiepoint" */ "@/views/scene/tiepoint/index.vue"
            ),
          meta: { title: "绑点" }
        },
        {
          path: "system",
          component: () =>
            import(
              /* webpackChunkName: "system" */ "@/views/scene/system/index.vue"
            ),
          meta: { title: "系统图" }
        },
        {
          path: "plane",
          component: () =>
            import(
              /* webpackChunkName: "plane" */ "@/views/scene/plane/index.vue"
            ),
          meta: { title: "平面图" }
        }
      ]
    },
    {
      path: "/tools",
      component: Layout,
      meta: {
        title: "一致性检查工具",
        icon: "nested"
      }
    },
    {
      path: "/model-tool",
      component: Layout,
      meta: {
        title: "模型检查工具",
        icon: "nested"
      }
    },
    {
      path: "/error",
      component: Layout,
      redirect: "noredirect",
      meta: {
        title: "错误页面",
        icon: "nested"
      },
      children: [
        {
          path: "401",
          component: () =>
            import(
              /* webpackChunkName: "error-page-401" */ "@/views/error-page/401.vue"
            ),
          name: "Page401",
          meta: {
            title: "401",
            noCache: true
          }
        },
        {
          path: "404",
          component: () =>
            import(
              /* webpackChunkName: "error-page-404" */ "@/views/error-page/404.vue"
            ),
          name: "404",
          meta: {
            title: "404",
            noCache: true
          }
        }
      ]
    },
    {
      path: "*",
      redirect: "/404",
      meta: { hidden: true }
    }
  ]
});
