343 lines
8.7 KiB
JavaScript
343 lines
8.7 KiB
JavaScript
import Vue from 'vue'
|
|
import Router from 'vue-router'
|
|
|
|
// Containers
|
|
const TheContainer = () => import('@/containers/TheContainer')
|
|
|
|
// Views
|
|
const Dashboard = () => import('@/views/Dashboard')
|
|
|
|
const Colors = () => import('@/views/theme/Colors')
|
|
const Typography = () => import('@/views/theme/Typography')
|
|
|
|
const Charts = () => import('@/views/charts/Charts')
|
|
const Widgets = () => import('@/views/widgets/Widgets')
|
|
|
|
// Views - Components
|
|
const Cards = () => import('@/views/base/Cards')
|
|
const Forms = () => import('@/views/base/Forms')
|
|
const Switches = () => import('@/views/base/Switches')
|
|
const Tables = () => import('@/views/base/Tables')
|
|
const Tabs = () => import('@/views/base/Tabs')
|
|
const Breadcrumbs = () => import('@/views/base/Breadcrumbs')
|
|
const Carousels = () => import('@/views/base/Carousels')
|
|
const Collapses = () => import('@/views/base/Collapses')
|
|
const Jumbotrons = () => import('@/views/base/Jumbotrons')
|
|
const ListGroups = () => import('@/views/base/ListGroups')
|
|
const Navs = () => import('@/views/base/Navs')
|
|
const Navbars = () => import('@/views/base/Navbars')
|
|
const Paginations = () => import('@/views/base/Paginations')
|
|
const Popovers = () => import('@/views/base/Popovers')
|
|
const ProgressBars = () => import('@/views/base/ProgressBars')
|
|
const Tooltips = () => import('@/views/base/Tooltips')
|
|
|
|
// Views - Buttons
|
|
const StandardButtons = () => import('@/views/buttons/StandardButtons')
|
|
const ButtonGroups = () => import('@/views/buttons/ButtonGroups')
|
|
const Dropdowns = () => import('@/views/buttons/Dropdowns')
|
|
const BrandButtons = () => import('@/views/buttons/BrandButtons')
|
|
|
|
// Views - Icons
|
|
const CoreUIIcons = () => import('@/views/icons/CoreUIIcons')
|
|
const Brands = () => import('@/views/icons/Brands')
|
|
const Flags = () => import('@/views/icons/Flags')
|
|
|
|
// Views - Notifications
|
|
const Alerts = () => import('@/views/notifications/Alerts')
|
|
const Badges = () => import('@/views/notifications/Badges')
|
|
const Modals = () => import('@/views/notifications/Modals')
|
|
|
|
// Views - Pages
|
|
const Page404 = () => import('@/views/pages/Page404')
|
|
const Page500 = () => import('@/views/pages/Page500')
|
|
const Login = () => import('@/views/pages/Login')
|
|
const Register = () => import('@/views/pages/Register')
|
|
|
|
// Users
|
|
const Users = () => import('@/views/users/Users')
|
|
const User = () => import('@/views/users/User')
|
|
|
|
Vue.use(Router)
|
|
|
|
export default new Router({
|
|
mode: 'hash', // https://router.vuejs.org/api/#mode
|
|
linkActiveClass: 'active',
|
|
scrollBehavior: () => ({ y: 0 }),
|
|
routes: configRoutes()
|
|
})
|
|
|
|
function configRoutes () {
|
|
return [
|
|
{
|
|
path: '/',
|
|
redirect: '/dashboard',
|
|
name: 'Home',
|
|
component: TheContainer,
|
|
children: [
|
|
{
|
|
path: 'dashboard',
|
|
name: 'Dashboard',
|
|
component: Dashboard
|
|
},
|
|
{
|
|
path: 'theme',
|
|
redirect: '/theme/colors',
|
|
name: 'Theme',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: 'colors',
|
|
name: 'Colors',
|
|
component: Colors
|
|
},
|
|
{
|
|
path: 'typography',
|
|
name: 'Typography',
|
|
component: Typography
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'charts',
|
|
name: 'Charts',
|
|
component: Charts
|
|
},
|
|
{
|
|
path: 'widgets',
|
|
name: 'Widgets',
|
|
component: Widgets
|
|
},
|
|
{
|
|
path: 'users',
|
|
meta: {
|
|
label: 'Users'
|
|
},
|
|
component: {
|
|
render(c) {
|
|
return c('router-view')
|
|
}
|
|
},
|
|
children: [
|
|
{
|
|
path: '',
|
|
name: 'Users',
|
|
component: Users
|
|
},
|
|
{
|
|
path: ':id',
|
|
meta: {
|
|
label: 'User Details'
|
|
},
|
|
name: 'User',
|
|
component: User
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'base',
|
|
redirect: '/base/cards',
|
|
name: 'Base',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: 'cards',
|
|
name: 'Cards',
|
|
component: Cards
|
|
},
|
|
{
|
|
path: 'forms',
|
|
name: 'Forms',
|
|
component: Forms
|
|
},
|
|
{
|
|
path: 'switches',
|
|
name: 'Switches',
|
|
component: Switches
|
|
},
|
|
{
|
|
path: 'tables',
|
|
name: 'Tables',
|
|
component: Tables
|
|
},
|
|
{
|
|
path: 'tabs',
|
|
name: 'Tabs',
|
|
component: Tabs
|
|
},
|
|
{
|
|
path: 'breadcrumbs',
|
|
name: 'Breadcrumbs',
|
|
component: Breadcrumbs
|
|
},
|
|
{
|
|
path: 'carousels',
|
|
name: 'Carousels',
|
|
component: Carousels
|
|
},
|
|
{
|
|
path: 'collapses',
|
|
name: 'Collapses',
|
|
component: Collapses
|
|
},
|
|
{
|
|
path: 'jumbotrons',
|
|
name: 'Jumbotrons',
|
|
component: Jumbotrons
|
|
},
|
|
{
|
|
path: 'list-groups',
|
|
name: 'List Groups',
|
|
component: ListGroups
|
|
},
|
|
{
|
|
path: 'navs',
|
|
name: 'Navs',
|
|
component: Navs
|
|
},
|
|
{
|
|
path: 'navbars',
|
|
name: 'Navbars',
|
|
component: Navbars
|
|
},
|
|
{
|
|
path: 'paginations',
|
|
name: 'Paginations',
|
|
component: Paginations
|
|
},
|
|
{
|
|
path: 'popovers',
|
|
name: 'Popovers',
|
|
component: Popovers
|
|
},
|
|
{
|
|
path: 'progress-bars',
|
|
name: 'Progress Bars',
|
|
component: ProgressBars
|
|
},
|
|
{
|
|
path: 'tooltips',
|
|
name: 'Tooltips',
|
|
component: Tooltips
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'buttons',
|
|
redirect: '/buttons/standard-buttons',
|
|
name: 'Buttons',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: 'standard-buttons',
|
|
name: 'Standard Buttons',
|
|
component: StandardButtons
|
|
},
|
|
{
|
|
path: 'button-groups',
|
|
name: 'Button Groups',
|
|
component: ButtonGroups
|
|
},
|
|
{
|
|
path: 'dropdowns',
|
|
name: 'Dropdowns',
|
|
component: Dropdowns
|
|
},
|
|
{
|
|
path: 'brand-buttons',
|
|
name: 'Brand Buttons',
|
|
component: BrandButtons
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'icons',
|
|
redirect: '/icons/coreui-icons',
|
|
name: 'CoreUI Icons',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: 'coreui-icons',
|
|
name: 'Icons library',
|
|
component: CoreUIIcons
|
|
},
|
|
{
|
|
path: 'brands',
|
|
name: 'Brands',
|
|
component: Brands
|
|
},
|
|
{
|
|
path: 'flags',
|
|
name: 'Flags',
|
|
component: Flags
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'notifications',
|
|
redirect: '/notifications/alerts',
|
|
name: 'Notifications',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: 'alerts',
|
|
name: 'Alerts',
|
|
component: Alerts
|
|
},
|
|
{
|
|
path: 'badges',
|
|
name: 'Badges',
|
|
component: Badges
|
|
},
|
|
{
|
|
path: 'modals',
|
|
name: 'Modals',
|
|
component: Modals
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: '/pages',
|
|
redirect: '/pages/404',
|
|
name: 'Pages',
|
|
component: {
|
|
render (c) { return c('router-view') }
|
|
},
|
|
children: [
|
|
{
|
|
path: '404',
|
|
name: 'Page404',
|
|
component: Page404
|
|
},
|
|
{
|
|
path: '500',
|
|
name: 'Page500',
|
|
component: Page500
|
|
},
|
|
{
|
|
path: 'login',
|
|
name: 'Login',
|
|
component: Login
|
|
},
|
|
{
|
|
path: 'register',
|
|
name: 'Register',
|
|
component: Register
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|