优化h5项目

This commit is contained in:
zhuoda
2021-01-10 20:21:30 +08:00
parent 7e580440f0
commit 606e763126
61 changed files with 878 additions and 923 deletions

View 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')
}
]
}
];

View 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')
}
]
}
];

View File

@@ -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')
}
];

View File

@@ -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()

View 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')
}
];

View File

@@ -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')
}
];

View File

@@ -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
]
}];

View File

@@ -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')
}
];

View File

@@ -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')
}
];

View File

@@ -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
];

View File

@@ -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')
}
]
}
];

View 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')
}
]
}
];