mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-06 18:42:43 +09:00
245 lines
7.6 KiB
JavaScript
245 lines
7.6 KiB
JavaScript
import Vue from 'vue';
|
|
import Router from 'vue-router';
|
|
import store from './store';
|
|
import tokenSvc from '@/common/token-service';
|
|
|
|
import HubwebLayout from './views/HubwebLayout.vue';
|
|
|
|
import loginRoutes from './modules/login/router';
|
|
import custRoutes from './modules/custMgt/router';
|
|
import authRoutes from './modules/sysMgt/router';
|
|
|
|
import subsList from './modules/custMgt/views/SubsList';
|
|
import channelRoutes from './modules/attractMgt/router';
|
|
import rejectRoutes from './modules/servMgt/router';
|
|
import clacRoutes from './modules/calculate/router';
|
|
import templtRoutes from './modules/channelMgt/router';
|
|
import profileRoutes from './modules/sendNumMgt/router';
|
|
import mntrngRoutes from './modules/mntrng/router';
|
|
import riskmgtRoutes from './modules/riskMgt/router';
|
|
import monthRoutes from './modules/stats/router';
|
|
import homeMgtRoutes from './modules/homeMgt/router';
|
|
|
|
Vue.use(Router);
|
|
|
|
const router = new Router({
|
|
mode: 'history',
|
|
base: process.env.BASE_URL,
|
|
routes: [
|
|
{
|
|
path: '/',
|
|
component: HubwebLayout,
|
|
children: [
|
|
{
|
|
path: '',
|
|
component: subsList,
|
|
},
|
|
{
|
|
path: '/view/error/404',
|
|
component: () => import('./views/ErrorPage404.vue'),
|
|
meta: { public: false },
|
|
},
|
|
{
|
|
path: '/view/error/500',
|
|
component: () => import('./views/ErrorPage500.vue'),
|
|
meta: { public: true },
|
|
},
|
|
...loginRoutes,
|
|
...custRoutes,
|
|
...authRoutes,
|
|
...channelRoutes,
|
|
...rejectRoutes,
|
|
...clacRoutes,
|
|
...templtRoutes,
|
|
...profileRoutes,
|
|
...mntrngRoutes,
|
|
...riskmgtRoutes,
|
|
...monthRoutes,
|
|
...homeMgtRoutes,
|
|
//{path: '*', name: 'error404'}
|
|
],
|
|
},
|
|
{ path: '*', redirect: '/view/error/404' },
|
|
],
|
|
});
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
const isPublic = to.matched.some((record) => record.meta.public);
|
|
const loggedIn = !!tokenSvc.getToken();
|
|
if (!isPublic && !loggedIn) {
|
|
return next('/login');
|
|
} else {
|
|
var nextUrl = to.fullPath;
|
|
var fromUrl = from.fullPath;
|
|
|
|
var menuUrls = store.getters['login/getMenuUrls'];
|
|
if (menuUrls.length > 0) {
|
|
var moveFlag = false;
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
var targetUrl = menuUrls[i];
|
|
if (nextUrl == targetUrl) {
|
|
moveFlag = true;
|
|
if (fromUrl != '/' && fromUrl != '/view/error/404' && fromUrl != '/view/error/500') {
|
|
if (nextUrl == '/view/error/404' || nextUrl == '/view/error/500') {
|
|
store.commit('login/isErrorPage', true);
|
|
} else {
|
|
store.commit('login/isErrorPage', false);
|
|
if (
|
|
nextUrl != '/login' &&
|
|
nextUrl != '/view/login/auth' &&
|
|
nextUrl != '/view/login/resetPassword' &&
|
|
nextUrl != '/view/login/updatePassword'
|
|
) {
|
|
store.commit('login/isLogin', true);
|
|
store.commit('login/isAuthChk', true);
|
|
}
|
|
store.commit('login/saveBeforeUrl', nextUrl);
|
|
}
|
|
} else if (fromUrl == '/' && loggedIn) {
|
|
store.commit('login/isErrorPage', false);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (
|
|
nextUrl == '/custMgt/memberList' ||
|
|
nextUrl == '/custMgt/memberDetail' ||
|
|
nextUrl == '/custMgt/subsDetail' ||
|
|
nextUrl == '/custMgt/memberAdminDetail' ||
|
|
nextUrl == '/custMgt/chrgList'
|
|
) {
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
if (menuUrls[i] == '/custMgt/subsList') {
|
|
moveFlag = true;
|
|
}
|
|
}
|
|
|
|
// 청약 관리 상세
|
|
if (nextUrl == '/custMgt/subsDetail') {
|
|
var serviceId = store.getters['dataStore/getDataStore'];
|
|
console.log('serviceId : ' + serviceId);
|
|
if (to.params.serviceId == undefined) {
|
|
if (serviceId == '') {
|
|
return next('/custMgt/subsList');
|
|
} else {
|
|
to.params.serviceId = serviceId;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 회원관리 사용자/어드민 상세
|
|
if (nextUrl == '/custMgt/memberDetail' || nextUrl == '/custMgt/memberAdminDetail') {
|
|
var serviceId = store.getters['dataStore/getDataStore'];
|
|
if (to.params.serviceId == undefined) {
|
|
if (serviceId == '') {
|
|
return next('/custMgt/memberList');
|
|
} else {
|
|
to.params.serviceId = serviceId;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// url Check 유치채널
|
|
if (nextUrl == '/attractMgt/channelDetail') {
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
if (menuUrls[i] == '/attractMgt/channelList') {
|
|
moveFlag = true;
|
|
}
|
|
}
|
|
var userSeq = store.getters['dataStore/getUserSeq'];
|
|
if (to.params.userSeq == undefined) {
|
|
if (userSeq == '') {
|
|
return next('/attractMgt/channelList');
|
|
} else {
|
|
to.params.userSeq = userSeq;
|
|
}
|
|
}
|
|
}
|
|
// url Check 날짜별 통계
|
|
if (nextUrl == '/stats/dayList') {
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
if (menuUrls[i] == '/stats/monthList') {
|
|
moveFlag = true;
|
|
}
|
|
}
|
|
}
|
|
// url Check 사업자별 통계
|
|
if (nextUrl == '/stats/bsnmDayList') {
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
if (menuUrls[i] == '/stats/bsnmMonthList') {
|
|
moveFlag = true;
|
|
}
|
|
}
|
|
}
|
|
// url Check 권한 관리
|
|
if (
|
|
nextUrl == '/sysMgt/authAdd' ||
|
|
nextUrl == '/sysMgt/authModify' ||
|
|
nextUrl == '/sysMgt/authModify' ||
|
|
nextUrl.indexOf('/sysMgt/batchDetail') > -1
|
|
) {
|
|
for (var i = 0; i < menuUrls.length; i++) {
|
|
if (menuUrls[i] == '/sysMgt/authList') {
|
|
moveFlag = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!moveFlag) {
|
|
if (
|
|
fromUrl == '/login' ||
|
|
fromUrl == '/view/login/auth' ||
|
|
fromUrl == '/view/login/resetPassword' ||
|
|
fromUrl == '/view/login/updatePassword'
|
|
) {
|
|
return next('/login');
|
|
}
|
|
// store.commit("login/isErrorPage", true);
|
|
return next('/view/error/404');
|
|
}
|
|
|
|
if (
|
|
nextUrl == '/view/login/auth' ||
|
|
nextUrl == '/view/login/resetPassword' ||
|
|
nextUrl == '/view/login/updatePassword'
|
|
) {
|
|
if (fromUrl != '/login') {
|
|
return next('/login');
|
|
}
|
|
}
|
|
|
|
if (nextUrl === '/') {
|
|
const rootUrl = store.getters['login/getRootUrl'];
|
|
if (rootUrl == null) {
|
|
return next('/login');
|
|
}
|
|
return next(rootUrl);
|
|
}
|
|
|
|
if (nextUrl == '/login' && loggedIn) {
|
|
const rootUrl = store.getters['login/getRootUrl'];
|
|
if (rootUrl == null) {
|
|
return next('/login');
|
|
}
|
|
return next(rootUrl);
|
|
}
|
|
}
|
|
}
|
|
|
|
to.matched.some((record) => {
|
|
if (record.meta.usingSearchCondition) {
|
|
const shareList = record.meta.shareList;
|
|
if (from.name && shareList && shareList.includes(from.name)) {
|
|
// shareList에 포함되어 있는 라우터에서 온 경우 검색 조건을 유지한다.
|
|
} else {
|
|
// 그 외의 경우 검색 조건 초기화
|
|
store.commit('searchcondition/updateSearchCondition', null);
|
|
}
|
|
}
|
|
next();
|
|
});
|
|
});
|
|
|
|
export default router;
|