import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

import Layout from '@/layout'
import driverManagement from './driverManagement/index'
import cargoOwnerManagement from './cargoOwnerManagement/index'
import enterpriseManagement from './enterpriseManagement/index'
import orderManagement from './orderManagement/index'
import contractManagement from './contractManagement/index'
import platformManagement from './platformManagement/index'
import feedbackManagement from './feedbackManagement/index'
import officialWebsiteManagement from './officialWebsiteManagement/index'



export const constantRoutes = [{
		path: '/login',
		component: () => import('@/views/login/index'),
		hidden: true
	},

	{
		path: '/404',
		component: () => import('@/views/404'),
		hidden: true
	},

	{
		path: '/',
		component: Layout,
		redirect: '/dashboard',
		children: [{
			path: 'dashboard',
			name: 'Dashboard',
			component: () => import('@/views/dashboard/index'),
			meta: {
				title: '首页',
				icon: 'shouye'
			}
		}]
	},
	driverManagement,
	cargoOwnerManagement,
	enterpriseManagement,
	orderManagement,
	contractManagement,
	platformManagement,
	feedbackManagement,
  officialWebsiteManagement,

	// {
	// 	path: '/example',
	// 	component: Layout,
	// 	redirect: '/example/table',
	// 	name: 'Example',
	// 	meta: {
	// 		title: 'Example',
	// 		icon: 'el-icon-s-help'
	// 	},
	// 	children: [{
	// 			path: 'table',
	// 			name: 'Table',
	// 			component: () => import('@/views/table/index'),
	// 			meta: {
	// 				title: 'Table',
	// 				icon: 'table'
	// 			}
	// 		},
	// 		{
	// 			path: 'tree',
	// 			name: 'Tree',
	// 			component: () => import('@/views/tree/index'),
	// 			meta: {
	// 				title: 'Tree',
	// 				icon: 'tree'
	// 			}
	// 		}
	// 	]
	// },

	// {
	// 	path: '/form',
	// 	component: Layout,
	// 	children: [{
	// 		path: 'index',
	// 		name: 'Form',
	// 		component: () => import('@/views/form/index'),
	// 		meta: {
	// 			title: 'Form',
	// 			icon: 'form'
	// 		}
	// 	}]
	// },

	// {
	//   path: 'external-link',
	//   component: Layout,
	//   children: [{
	//     path: 'https://panjiachen.github.io/vue-element-admin-site/#/',
	//     meta: {
	//       title: 'External Link',
	//       icon: 'link'
	//     }
	//   }]
	// },

	// 404 page must be placed at the end !!!
	{
		path: '*',
		redirect: '/404',
		hidden: true
	}
]

let cofigRouter = []
const modulesFiles = require.context('../views', true, /.js$/)
modulesFiles.keys().forEach((model_item, key) => {
	if (model_item === 'index.js' || modulesFiles(model_item).default === undefined || modulesFiles(model_item)
		.default.path === undefined) return
	cofigRouter = cofigRouter.concat(modulesFiles(model_item).default)
})
// 需要根据用户角色动态加载的路由
export const asyncRoutes = cofigRouter
const createRouter = () =>
	new Router({
		// mode: 'history',
		scrollBehavior: () => ({
			y: 0
		}),
		linkActiveClass: 'active', // router-link  .active样式
		routes: constantRoutes
	})

const router = createRouter()

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
	const newRouter = createRouter()
	router.matcher = newRouter.matcher // reset router
}

export default router
