mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-11-20 01:23:47 +08:00
优化h5项目
This commit is contained in:
42
smart-admin-h5/src/router/dashboard/index.js
Normal file
42
smart-admin-h5/src/router/dashboard/index.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
/**
|
||||
* dashboard首页
|
||||
*/
|
||||
export const dashboardRouter = [
|
||||
{
|
||||
path: '/',
|
||||
// redirect: '/dashboard/contact-company',
|
||||
redirect: '/dashboard/user',
|
||||
meta: {
|
||||
title: '首页',
|
||||
keepAlive: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/dashboard/dashboard'),
|
||||
children: [
|
||||
// {
|
||||
// path: '/dashboard/contact-company',
|
||||
// name: 'ContactCompany',
|
||||
// meta: {
|
||||
// title: '往来单位',
|
||||
// keepAlive: true,
|
||||
// showTabbar: true,
|
||||
// permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
// },
|
||||
// component: () => import('@/views/erp/contact-company/contact-company')
|
||||
// },
|
||||
{
|
||||
path: '/dashboard/user',
|
||||
name: 'Mine',
|
||||
meta: {
|
||||
title: '我的',
|
||||
keepAlive: false,
|
||||
showTabbar: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/user/index')
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
21
smart-admin-h5/src/router/develop/develop.js
Normal file
21
smart-admin-h5/src/router/develop/develop.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const developRouter = [
|
||||
{
|
||||
path: '/develop',
|
||||
component: () => import('@/views/dashboard/dashboard'),
|
||||
children: [
|
||||
{
|
||||
path: '/develop/config',
|
||||
name: 'DevelopConfig',
|
||||
meta: {
|
||||
title: '开发专用配置',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('views/develop/config')
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// 错误页
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const error = [
|
||||
export const errorRouter = [
|
||||
{
|
||||
path: '/404',
|
||||
name: 'Error404',
|
||||
@@ -10,7 +10,7 @@ export const error = [
|
||||
access: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('@/views/error/404.vue')
|
||||
component: () => import('views/error/404.vue')
|
||||
},
|
||||
{
|
||||
path: '/500',
|
||||
@@ -21,17 +21,6 @@ export const error = [
|
||||
noValidatePrivilege: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('@/views/error/404.vue')
|
||||
},
|
||||
{
|
||||
path: '*',
|
||||
name: 'http://localhost:8080/#employee/role-employee-manage',
|
||||
meta: {
|
||||
hideInMenu: true,
|
||||
access: true,
|
||||
noValidatePrivilege: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('@/views/error/404.vue')
|
||||
component: () => import('views/error/404.vue')
|
||||
}
|
||||
];
|
||||
@@ -10,6 +10,10 @@ const projectConfig = require('@/config/index.js');
|
||||
|
||||
Vue.use(Router);
|
||||
|
||||
/**
|
||||
* 导入所有的router
|
||||
* @type {VueRouter}
|
||||
*/
|
||||
const router = new Router({
|
||||
routes: routers
|
||||
});
|
||||
@@ -27,6 +31,8 @@ Router.prototype.push = function(location) {
|
||||
|
||||
const LOGIN_PAGE_NAME = 'Login';
|
||||
|
||||
// --------------------- router 守卫 begin ---------------------
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
// 加载进度条
|
||||
NProgress.start();
|
||||
@@ -77,6 +83,19 @@ router.afterEach(to => {
|
||||
}
|
||||
});
|
||||
|
||||
// --------------------- router 守卫 end ---------------------
|
||||
|
||||
/**
|
||||
* router 检测
|
||||
*
|
||||
* 如果存在相同的 path 或者 name 是一件非常恐怖的事情,所以在develop环境将所有router进行一次遍历<br>
|
||||
* 检测内容如下:<br>
|
||||
* 1、相同的router name
|
||||
* 2、相同的router name
|
||||
* 3、path没有以 / 开头
|
||||
*
|
||||
*/
|
||||
|
||||
const tempCheckObj = {
|
||||
checkRouterNameMap: new Map(),
|
||||
checkRouterPathMap: new Map()
|
||||
|
||||
15
smart-admin-h5/src/router/login/login.js
Normal file
15
smart-admin-h5/src/router/login/login.js
Normal file
@@ -0,0 +1,15 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const loginRouter = [
|
||||
{
|
||||
path: '/login',
|
||||
name: 'Login',
|
||||
meta: {
|
||||
title: '登录',
|
||||
keepAlive: false,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('@/views/login/login.vue')
|
||||
}
|
||||
|
||||
];
|
||||
@@ -1,15 +0,0 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const develop = [
|
||||
{
|
||||
path: '/develop/config',
|
||||
name: 'DevelopConfig',
|
||||
meta: {
|
||||
title: '开发专用配置',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () =>
|
||||
import('@/views/develop/config')
|
||||
}
|
||||
];
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/**
|
||||
* 其他路由
|
||||
*/
|
||||
|
||||
import { user } from './user';
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
import { develop } from '@/router/other/develop';
|
||||
import { school } from '@/router/other/school';
|
||||
import { contactCompany } from '@/router/other/erp/contact-company';
|
||||
|
||||
export const otherRouter = [
|
||||
{
|
||||
path: '/other-main',
|
||||
meta: {
|
||||
keepAlive: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('views/main/other-main'),
|
||||
children: [
|
||||
...user,
|
||||
...develop,
|
||||
...school,
|
||||
...contactCompany
|
||||
]
|
||||
}];
|
||||
@@ -1,41 +0,0 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const school = [
|
||||
{
|
||||
path: '/school/detail',
|
||||
name: 'SchoolDetail',
|
||||
meta: {
|
||||
title: '学校详情',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/crm/school/school-detail')
|
||||
},
|
||||
{
|
||||
path: '/school/track/add',
|
||||
name: 'SchoolTrackAdd',
|
||||
meta: {
|
||||
title: '学校拜访记录添加',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/crm/school/add-track')
|
||||
},
|
||||
{
|
||||
path: '/school/track/detail',
|
||||
name: 'SchoolTrackDetail',
|
||||
meta: {
|
||||
title: '学校拜访记录详情',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/crm/school/track-detail')
|
||||
},
|
||||
{
|
||||
path: '/school/update',
|
||||
name: 'SchoolUpdate',
|
||||
meta: {
|
||||
title: '更新学校',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/crm/school/update-school')
|
||||
}
|
||||
];
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const user = [
|
||||
{
|
||||
path: '/user/change-password',
|
||||
name: 'UserChangePassword',
|
||||
meta: {
|
||||
title: '修改密码',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () =>
|
||||
import('@/views/mine/change-password')
|
||||
}
|
||||
];
|
||||
|
||||
@@ -1,24 +1,32 @@
|
||||
import { tabbarRouter } from './tabbar';
|
||||
import { otherRouter } from '@/router/other';
|
||||
import { error } from './other/error';
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
// 全局错误页面
|
||||
import { errorRouter } from './error/error';
|
||||
// 登录注册模块
|
||||
import { loginRouter } from './login/login';
|
||||
// tabbar dashboard 框架页面
|
||||
import { dashboardRouter } from './dashboard';
|
||||
// 用户相关
|
||||
import { userRouter } from './user/user';
|
||||
// 开发相关
|
||||
import { developRouter } from './develop/develop';
|
||||
|
||||
// 登录模块
|
||||
export const login = {
|
||||
path: '/login',
|
||||
name: 'Login',
|
||||
meta: {
|
||||
title: '登录',
|
||||
keepAlive: false,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value
|
||||
},
|
||||
component: () => import('@/views/login/login.vue')
|
||||
};
|
||||
|
||||
// 全部路由
|
||||
/**
|
||||
* router meta 说明: <br>
|
||||
*
|
||||
* title: 为页面的title,会显示到浏览器的title上
|
||||
* permissionType: 具体使用 router-const.js中的 ROUTER_PERMISSION_TYPE 常量;情况有: 1)不验证 2)校验登录 3)登录后校验权限
|
||||
* keepAlive: true or false ; 是否进行页面keepalive, 如果想删除keepalive,可以使用vuex中的app module里有mutation
|
||||
* showTabbar: true or false ; 是否展示 tabbar, 如果是true, 则会展示tabbar
|
||||
*
|
||||
*/
|
||||
export const routers = [
|
||||
login,
|
||||
...tabbarRouter,
|
||||
...otherRouter,
|
||||
...error
|
||||
// 登录、注册
|
||||
...loginRouter,
|
||||
// 404、500、403等
|
||||
...errorRouter,
|
||||
// tab bar 页面
|
||||
...dashboardRouter,
|
||||
// 用户
|
||||
...userRouter,
|
||||
// 开发相关
|
||||
...developRouter
|
||||
];
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '../router-const';
|
||||
|
||||
/**
|
||||
* 主要用于 tabbar 的路由
|
||||
*/
|
||||
export const tabbarRouter = [
|
||||
{
|
||||
path: '/',
|
||||
redirect: '/contact-company',
|
||||
meta: {
|
||||
title: '首页',
|
||||
keepAlive: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('views/main/tabbar-main'),
|
||||
children: [
|
||||
{
|
||||
path: '/home',
|
||||
name: 'Home',
|
||||
meta: {
|
||||
title: '首页',
|
||||
keepAlive: true,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/home/index')
|
||||
},
|
||||
{
|
||||
path: '/business',
|
||||
name: 'Business',
|
||||
meta: {
|
||||
title: '业务中心',
|
||||
keepAlive: false,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/business/index')
|
||||
},
|
||||
{
|
||||
path: '/mine',
|
||||
name: 'Mine',
|
||||
meta: {
|
||||
title: '关于我',
|
||||
keepAlive: false,
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () => import('@/views/mine/index')
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
21
smart-admin-h5/src/router/user/user.js
Normal file
21
smart-admin-h5/src/router/user/user.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import { ROUTER_PERMISSION_TYPE } from '@/router/router-const';
|
||||
|
||||
export const userRouter = [
|
||||
{
|
||||
path: '/user',
|
||||
component: () => import('@/views/dashboard/dashboard'),
|
||||
children: [
|
||||
{
|
||||
path: '/user/change-password',
|
||||
name: 'UserChangePassword',
|
||||
meta: {
|
||||
title: '修改密码',
|
||||
permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value
|
||||
},
|
||||
component: () =>
|
||||
import('views/user/change-password')
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user