
--- client/views/layout/SideMenu.vue
... | ... | @@ -1,117 +0,0 @@ |
1 | -<template> | |
2 | - <nav class="side-menu"> | |
3 | - <ul class="main-menu"> | |
4 | - <li v-for="(mainMenu, idx) in menuList" :key="idx" @click="toggleMenu(mainMenu)"> | |
5 | - <div class="flex-between"> | |
6 | - <p>{{ mainMenu.pathName }}</p> | |
7 | - <svg-icon v-if="mainMenu.subMenu" type="mdi" :path="mainMenu.path" color="#fff"></svg-icon> | |
8 | - </div> | |
9 | - <ul v-if="mainMenu.subMenu" class="sub-menu" :style="{ 'max-height': mainMenu.isOpen ? '360px' : '0' }"> | |
10 | - <li v-for="(subMenu, idx) in mainMenu.subMenu" :key="idx"> | |
11 | - <router-link :to="subMenu.subPath">{{ subMenu.pathName }}</router-link> | |
12 | - </li> | |
13 | - </ul> | |
14 | - </li> | |
15 | - </ul> | |
16 | - </nav> | |
17 | -</template> | |
18 | - | |
19 | -<script> | |
20 | -import SvgIcon from '@jamescoyle/vue-icon'; | |
21 | -import { mdiMenuUp, mdiMenuDown } from '@mdi/js'; | |
22 | -export default { | |
23 | - data() { | |
24 | - return { | |
25 | - menuList: [ | |
26 | - // { path: "/", pathName: "Dashboard", }, | |
27 | - { | |
28 | - mainPath: "/", pathName: "데이터관리", | |
29 | - subMenu: [ | |
30 | - { subPath: "/fileManagement.page", pathName: "파일관리" }, | |
31 | - { subPath: "/hostManagement.page", pathName: "호스트관리" }, | |
32 | - { subPath: "/", pathName: "데이터셋 목록" }, | |
33 | - { subPath: "/", pathName: "데이터 공유 관리" }, | |
34 | - ], | |
35 | - isOpen: false, | |
36 | - path: mdiMenuUp, | |
37 | - }, | |
38 | - { | |
39 | - mainPath: "/", pathName: "메타관리", | |
40 | - subMenu: [ | |
41 | - { subPath: "/", pathName: "데이터 메타 정보" }, | |
42 | - { subPath: "/", pathName: "표준 용어 관리" }, | |
43 | - ], | |
44 | - isOpen: false, | |
45 | - path: mdiMenuUp, | |
46 | - }, | |
47 | - { | |
48 | - mainPath: "/", pathName: "작업관리", | |
49 | - subMenu: [ | |
50 | - { subPath: "/scheduleManagement.page", pathName: "작업 스케줄 관리" }, | |
51 | - { subPath: "/scheduleLogManagement.page", pathName: "로그 관리" }, | |
52 | - ], | |
53 | - isOpen: false, | |
54 | - path: mdiMenuUp, | |
55 | - }, | |
56 | - { | |
57 | - mainPath: "/", pathName: "데이터활용", | |
58 | - subMenu: [ | |
59 | - { subPath: "/", pathName: "데이터 활용 관리" }, | |
60 | - { subPath: "/", pathName: "데이터 활용 공유 관리" }, | |
61 | - { subPath: "/", pathName: "GIS데이터 관리" }, | |
62 | - { subPath: "/", pathName: "데이터현황 관리" }, | |
63 | - { subPath: "/openApiList.page", pathName: "OpenAPI 목록" }, | |
64 | - ], | |
65 | - isOpen: false, | |
66 | - path: mdiMenuUp, | |
67 | - }, | |
68 | - { | |
69 | - mainPath: "/", pathName: "통합관리", | |
70 | - subMenu: [ | |
71 | - { subPath: "/user.page", pathName: "사용자관리" }, | |
72 | - { subPath: "/department.page", pathName: "부서관리" }, | |
73 | - { subPath: "/", pathName: "연계정보관리" }, | |
74 | - ], | |
75 | - isOpen: false, | |
76 | - path: mdiMenuUp, | |
77 | - }, | |
78 | - { | |
79 | - mainPath: "/", pathName: "정보관리", | |
80 | - subMenu: [ | |
81 | - { subPath: "/", pathName: "내정보관리" }, | |
82 | - { subPath: "/", pathName: "비밀번호 변경" }, | |
83 | - { subPath: "/", pathName: "부서메일" }, | |
84 | - ], | |
85 | - isOpen: false, | |
86 | - path: mdiMenuUp, | |
87 | - }, | |
88 | - { mainPath: "/", pathName: "ai solution", path: mdiMenuUp, }, | |
89 | - ], | |
90 | - | |
91 | - } | |
92 | - }, | |
93 | - methods: { | |
94 | - toggleMenu: function (menu) { | |
95 | - this.menuList.forEach(item => { | |
96 | - if (item === menu) { | |
97 | - item.isOpen = !menu.isOpen; | |
98 | - item.path = item.isOpen ? mdiMenuDown : mdiMenuUp | |
99 | - | |
100 | - } else{ | |
101 | - item.isOpen = false; | |
102 | - item.path = mdiMenuUp; | |
103 | - } | |
104 | - }); | |
105 | - }, | |
106 | - }, | |
107 | - watch: { | |
108 | - | |
109 | - }, | |
110 | - computed: { | |
111 | - | |
112 | - }, | |
113 | - components: { | |
114 | - 'SvgIcon': SvgIcon | |
115 | - }, | |
116 | -} | |
117 | -</script>(파일 끝에 줄바꿈 문자 없음) |
--- client/views/layout/TopMenu.vue
+++ client/views/layout/TopMenu.vue
... | ... | @@ -24,7 +24,6 @@ |
24 | 24 |
pathName: "데이터관리", |
25 | 25 |
subMenu: [ |
26 | 26 |
{ path: "/fileManagement.page", pathName: "파일관리" }, |
27 |
- { path: "/hostManagement.page", pathName: "호스트관리" }, |
|
28 | 27 |
{ path: "/dataManagement.page", pathName: "데이터관리" }, |
29 | 28 |
], |
30 | 29 |
}, |
... | ... | @@ -47,15 +46,21 @@ |
47 | 46 |
{ path: "/customSelectList.page", pathName: "데이터 활용 관리" }, |
48 | 47 |
{ path: "/gisInfoList.page", pathName: "GIS 기능 관리" }, |
49 | 48 |
{ path: "/openApiList.page", pathName: "OpenAPI 목록" }, |
50 |
- { path: "/openApiKeyList.page", pathName: "OpenAPI key 관리" }, |
|
51 | 49 |
], |
52 | 50 |
}, |
53 | 51 |
{ |
54 |
- pathName: "통합관리", |
|
52 |
+ pathName: "회원관리", |
|
55 | 53 |
subMenu: [ |
56 |
- { path: "/user.page", pathName: "사용자관리" }, |
|
54 |
+ { path: "/user.page", pathName: "일반사용자관리" }, |
|
57 | 55 |
{ path: "/adminManagement.page", pathName: "관리자관리" }, |
58 |
- { path: "/department.page", pathName: "부서관리" }, |
|
56 |
+ { path: "/departmentManagement.page", pathName: "부서관리" }, |
|
57 |
+ ], |
|
58 |
+ }, |
|
59 |
+ { |
|
60 |
+ pathName: "시스템 관리", |
|
61 |
+ subMenu: [ |
|
62 |
+ { path: "/hostManagement.page", pathName: "호스트관리" }, |
|
63 |
+ { path: "/openApiKeyList.page", pathName: "OpenAPI key 관리" }, |
|
59 | 64 |
{ path: "/dbConnectionList.page", pathName: "연계정보관리" }, |
60 | 65 |
], |
61 | 66 |
}, |
... | ... | @@ -84,9 +89,31 @@ |
84 | 89 |
], |
85 | 90 |
userMenu: [ |
86 | 91 |
{ |
92 |
+ pathName: "데이터관리", |
|
93 |
+ subMenu: [ |
|
94 |
+ { path: "/fileManagement.page", pathName: "파일관리" }, |
|
95 |
+ { path: "/dataManagement.page", pathName: "데이터관리" }, |
|
96 |
+ ], |
|
97 |
+ }, |
|
98 |
+ { |
|
99 |
+ pathName: "메타관리", |
|
100 |
+ subMenu: [ |
|
101 |
+ { path: "/dataMetaManagement.page", pathName: "데이터 메타 정보" }, |
|
102 |
+ { path: "/termManagement.page", pathName: "표준 용어 관리" }, |
|
103 |
+ ], |
|
104 |
+ }, |
|
105 |
+ { |
|
106 |
+ pathName: "작업관리", |
|
107 |
+ subMenu: [ |
|
108 |
+ { path: "/scheduleManagement.page", pathName: "작업 스케줄 관리" }, |
|
109 |
+ ], |
|
110 |
+ }, |
|
111 |
+ { |
|
87 | 112 |
pathName: "데이터활용", |
88 | 113 |
subMenu: [ |
89 | 114 |
{ path: "/customSelectList.page", pathName: "데이터 활용 관리" }, |
115 |
+ { path: "/gisInfoList.page", pathName: "GIS 기능 관리" }, |
|
116 |
+ { path: "/openApiList.page", pathName: "OpenAPI 목록" }, |
|
90 | 117 |
], |
91 | 118 |
}, |
92 | 119 |
{ |
--- client/views/pages/App.vue
+++ client/views/pages/App.vue
... | ... | @@ -1,75 +1,51 @@ |
1 | 1 |
<template> |
2 |
- <div v-cloak :class="layoutType === 'side' ? 'dashboard-wrap' : 'layout-wrap'"> |
|
3 |
- <Header v-if="store.state.loginUser != null" :className="layoutType" /> |
|
4 |
- <SideMenu v-if="layoutType === 'side' && store.state.loginUser != null" /> |
|
5 |
- <TopMenu v-else-if="layoutType === 'top'&& store.state.loginUser != null"/> |
|
6 |
- <div :class="store.state.loginUser != null ? 'main' : 'login'"> |
|
7 |
- <PageNavigation v-if="layoutType === 'side'&& store.state.loginUser != null" /> |
|
8 |
- <router-view /> |
|
9 |
- </div> |
|
10 |
- </div> |
|
11 |
- <AlertModal id="cmmnAlert" ref="Alert"></AlertModal> |
|
2 |
+ <div v-cloak :class="layoutType === 'side' ? 'dashboard-wrap' : 'layout-wrap'"> |
|
3 |
+ <Header v-if="store.state.loginUser != null" :className="layoutType" /> |
|
4 |
+ <TopMenu v-if="layoutType === 'top' && store.state.loginUser != null" /> |
|
5 |
+ <div :class="store.state.loginUser != null ? 'main' : 'login'"> |
|
6 |
+ <PageNavigation v-if="layoutType === 'side' && store.state.loginUser != null" /> |
|
7 |
+ <router-view /> |
|
8 |
+ </div> |
|
9 |
+ </div> |
|
10 |
+ <AlertModal id="cmmnAlert" ref="Alert"></AlertModal> |
|
12 | 11 |
</template> |
13 |
- |
|
14 | 12 |
<script> |
15 | 13 |
import Header from '../layout/Header.vue'; |
16 |
-import SideMenu from '../layout/SideMenu.vue'; |
|
17 | 14 |
import TopMenu from '../layout/TopMenu.vue'; |
18 | 15 |
import PageNavigation from '../component/PageNavigation.vue'; |
19 | 16 |
import AlertModal from '../component/common/AlertModal.vue'; |
20 | 17 |
import store from './AppStore' |
21 |
-import Vue from "vue"; |
|
22 | 18 |
|
23 | 19 |
const App = { |
24 |
- data: () => { |
|
25 |
- return { |
|
26 |
- // side혹은 top 둘중 한개 타입 |
|
27 |
- layoutType: "top", |
|
28 |
- loginpage : false, |
|
29 |
- store : store, |
|
30 |
- } |
|
31 |
- }, |
|
32 |
- methods: { |
|
33 |
- |
|
34 |
- }, |
|
35 |
- watch: { |
|
36 |
- |
|
37 |
- }, |
|
38 |
- computed: { |
|
39 |
- |
|
40 |
- }, |
|
41 |
- components: { |
|
42 |
- 'Header': Header, |
|
43 |
- 'SideMenu': SideMenu, |
|
44 |
- 'TopMenu': TopMenu, |
|
45 |
- 'PageNavigation': PageNavigation, |
|
46 |
- 'AlertModal' : AlertModal, |
|
47 |
- }, |
|
48 |
- mounted: function() { |
|
49 |
- // 공통 모듈 alert |
|
50 |
- this.$setAlertRef(this.$refs.Alert); |
|
51 |
- this.$setDefaultObject(); |
|
52 |
- let vm = this; |
|
53 |
- // this.$router.beforeEach((to, from, next) => { |
|
54 |
- |
|
55 |
- // if( to.path === "/login.page" || from.path == "/login.page" ) vm.loginpage = true; |
|
56 |
- // else vm.loginpage = false; |
|
57 |
- // next(); |
|
58 |
- |
|
59 |
- // }); |
|
60 |
- } |
|
20 |
+ data: () => { |
|
21 |
+ return { |
|
22 |
+ layoutType: "top", |
|
23 |
+ loginpage: false, |
|
24 |
+ store: store, |
|
25 |
+ } |
|
26 |
+ }, |
|
27 |
+ components: { |
|
28 |
+ 'Header': Header, |
|
29 |
+ 'TopMenu': TopMenu, |
|
30 |
+ 'PageNavigation': PageNavigation, |
|
31 |
+ 'AlertModal': AlertModal, |
|
32 |
+ }, |
|
33 |
+ mounted: function () { |
|
34 |
+ // 공통 모듈 alert |
|
35 |
+ this.$setAlertRef(this.$refs.Alert); |
|
36 |
+ this.$setDefaultObject(); |
|
37 |
+ } |
|
61 | 38 |
} |
62 | 39 |
|
63 | 40 |
export default App; |
64 | 41 |
</script> |
65 |
- |
|
66 | 42 |
<style scoped> |
67 | 43 |
[v-cloak] { |
68 |
- display: none; |
|
44 |
+ display: none; |
|
69 | 45 |
} |
70 | 46 |
|
71 | 47 |
.main-warp { |
72 |
- border: 1px solid #000; |
|
73 |
- margin: 20px 0px; |
|
48 |
+ border: 1px solid #000; |
|
49 |
+ margin: 20px 0px; |
|
74 | 50 |
} |
75 | 51 |
</style> |
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
... | ... | @@ -3,10 +3,10 @@ |
3 | 3 |
import { createWebHistory, createRouter } from "vue-router"; |
4 | 4 |
// #페이지 |
5 | 5 |
// 통합관리 |
6 |
-import UserManagement from "../pages/integrated/UserManagement.vue"; // 사용자관리 |
|
7 |
-import AdminManagement from "../pages/integrated/AdminManagement.vue"; // 관리자관리 |
|
8 |
-import Department from "../pages/integrated/DepartmentManagement.vue"; // 부서관리 |
|
9 |
-import DBConnectionList from "../pages/dbConnection/DBConnectionList.vue"; // 연계정보관리 |
|
6 |
+import UserManagement from "../pages/integrated/UserManagement.vue"; // 사용자 관리 |
|
7 |
+import AdminManagement from "../pages/integrated/AdminManagement.vue"; // 관리자 관리 |
|
8 |
+import DepartmentManagement from "../pages/integrated/DepartmentManagement.vue"; // 부서 관리 |
|
9 |
+import DBConnectionList from "../pages/dbConnection/DBConnectionList.vue"; // 연계정보 관리 |
|
10 | 10 |
|
11 | 11 |
import DBConnectionDetail from "../pages/dbConnection/DBConnectionDetail.vue"; |
12 | 12 |
import FileManagement from "../pages/data/FileManagement.vue"; |
... | ... | @@ -54,10 +54,10 @@ |
54 | 54 |
|
55 | 55 |
const routes = [ |
56 | 56 |
// 통합관리 |
57 |
- { path: "/user.page", name: "User", component: UserManagement }, // 사용자관리 |
|
58 |
- { path: "/adminManagement.page", name: "AdminManagement", component: AdminManagement }, // 관리자관리 |
|
59 |
- { path: "/department.page", name: "Department", component: Department }, // 부서관리 |
|
60 |
- { path: "/dbConnectionList.page", name: "DBConnectionList", component: DBConnectionList }, // 연계정보관리 |
|
57 |
+ { path: "/user.page", name: "User", component: UserManagement }, // 사용자 관리 |
|
58 |
+ { path: "/adminManagement.page", name: "AdminManagement", component: AdminManagement }, // 관리자 관리 |
|
59 |
+ { path: "/departmentManagement.page", name: "Department", component: DepartmentManagement }, // 부서 관리 |
|
60 |
+ { path: "/dbConnectionList.page", name: "DBConnectionList", component: DBConnectionList }, // 연계정보 관리 |
|
61 | 61 |
|
62 | 62 |
{ path: "/fileManagement.page", name: "FileManagement", component: FileManagement }, |
63 | 63 |
{ path: "/hostManagement.page", name: "HostManagement", component: HostManagement }, |
... | ... | @@ -102,54 +102,50 @@ |
102 | 102 |
]; |
103 | 103 |
|
104 | 104 |
function userAuthCheck(to, from, next) { |
105 |
- const vm = this; |
|
105 |
+ const authList = store.state.loginUser.user_auth; |
|
106 | 106 |
|
107 |
- let authList = store.state.loginUser.user_auth; |
|
108 |
- let userAdmAuthCheck = false; |
|
107 |
+ let userAdmAuthCheck = "ROLE_USER"; |
|
108 |
+ for (let auth of authList) { |
|
109 |
+ if (auth == "ROLE_VIEWER") { |
|
110 |
+ userAdmAuthCheck = "ROLE_VIEWER"; |
|
111 |
+ break; |
|
112 |
+ } |
|
113 |
+ } |
|
109 | 114 |
for (let auth of authList) { |
110 | 115 |
if (auth == "ROLE_ADMIN") { |
111 |
- userAdmAuthCheck = true; |
|
116 |
+ userAdmAuthCheck = "ROLE_ADMIN"; |
|
112 | 117 |
break; |
113 | 118 |
} |
114 | 119 |
} |
115 | 120 |
|
116 |
- if (userAdmAuthCheck) { // ROLE_ADMIN |
|
117 |
- if (to.path == "/login.page") { |
|
121 |
+ if (userAdmAuthCheck == "ROLE_ADMIN") { |
|
122 |
+ if (to.path == "/" || to.path == "/login.page") { |
|
118 | 123 |
next("/fileManagement.page"); |
119 | 124 |
} else { |
120 | 125 |
next(); |
121 | 126 |
} |
122 |
- } else { // ROLE_ADMIN 외 모든 롤 |
|
123 |
- let userViewerAuthCheck = false; |
|
124 |
- for (let auth of authList) { |
|
125 |
- if (auth == "ROLE_VIEWER") { |
|
126 |
- userViewerAuthCheck = true; |
|
127 |
- break; |
|
128 |
- } |
|
129 |
- } |
|
130 |
- |
|
131 |
- if (userViewerAuthCheck) { |
|
132 |
- if (to.path == "/openApiList.page" || to.path == "/openApiListOne.page" || to.path == "/myPage.page" || to.path == "/myPagePwd.page") { |
|
133 |
- next(); |
|
134 |
- } else { |
|
135 |
- alert("접근 권한이 없습니다."); |
|
136 |
- next("/openApiList.page"); |
|
137 |
- } |
|
127 |
+ } else if (userAdmAuthCheck == "ROLE_VIEWER") { |
|
128 |
+ if (to.path == "/openApiList.page" || to.path == "/openApiListOne.page" || to.path == "/myPage.page" || to.path == "/myPagePwd.page") { |
|
129 |
+ next(); |
|
138 | 130 |
} else { |
139 |
- if (to.path == "/customSelectList.page" || to.path == "/customSelectOne.page" || to.path == "/customInsert.page" || to.path == "/customInsertDev.page" || to.path == "/myPage.page" || to.path == "/myPagePwd.page") { |
|
140 |
- next(); |
|
141 |
- } else { |
|
131 |
+ if (to.path != "/") { |
|
142 | 132 |
alert("접근 권한이 없습니다."); |
143 |
- next("/customSelectList.page"); |
|
144 | 133 |
} |
134 |
+ next("/openApiList.page"); |
|
135 |
+ } |
|
136 |
+ } else { |
|
137 |
+ if (to.path == "/") { |
|
138 |
+ next("/fileManagement.page"); |
|
139 |
+ } else if (to.path != "/user.page" && to.path != "/adminManagement.page" && to.path != "/departmentManagement.page" && to.path != "/hostManagement.page" && to.path != "/openApiKeyList.page" || to.path != "/dbConnectionList.page") { |
|
140 |
+ next(); |
|
141 |
+ } else { |
|
142 |
+ alert("접근 권한이 없습니다."); |
|
143 |
+ next("/fileManagement.page"); |
|
145 | 144 |
} |
146 | 145 |
} |
147 | 146 |
} |
148 | 147 |
|
149 |
-const AppRouter = createRouter({ |
|
150 |
- history: createWebHistory(), |
|
151 |
- routes, |
|
152 |
-}); |
|
148 |
+const AppRouter = createRouter({ history: createWebHistory(), routes, }); |
|
153 | 149 |
|
154 | 150 |
AppRouter.beforeEach(async (to, from, next) => { |
155 | 151 |
const userId = store.state.loginUser; |
--- client/views/pages/integrated/AdminManagement.vue
+++ client/views/pages/integrated/AdminManagement.vue
... | ... | @@ -199,7 +199,7 @@ |
199 | 199 |
import axios from "axios"; |
200 | 200 |
// icon용 svg import |
201 | 201 |
import SvgIcon from "@jamescoyle/vue-icon"; |
202 |
-import { mdiClose, mdiMagnify } from "@mdi/js"; |
|
202 |
+import { mdiMagnify, mdiClose } from "@mdi/js"; |
|
203 | 203 |
// 컴포넌트 import |
204 | 204 |
import PageNavigation from "../../component/PageNavigation.vue"; |
205 | 205 |
import PaginationButton from "../../component/PaginationButton.vue"; |
--- client/views/pages/integrated/UserManagement.vue
+++ client/views/pages/integrated/UserManagement.vue
... | ... | @@ -208,7 +208,7 @@ |
208 | 208 |
import axios from "axios"; |
209 | 209 |
// icon용 svg import |
210 | 210 |
import SvgIcon from "@jamescoyle/vue-icon"; |
211 |
-import { mdiClose, mdiMagnify } from "@mdi/js"; |
|
211 |
+import { mdiMagnify, mdiClose } from "@mdi/js"; |
|
212 | 212 |
// 컴포넌트 import |
213 | 213 |
import PageNavigation from "../../component/PageNavigation.vue"; |
214 | 214 |
import PaginationButton from "../../component/PaginationButton.vue"; |
... | ... | @@ -252,7 +252,7 @@ |
252 | 252 |
}, |
253 | 253 |
|
254 | 254 |
mounted() { |
255 |
- this.fnSelectUser(); // 사용자 개별 조회 |
|
255 |
+ this.fnSelectUser(); // 사용자 상세 조회 |
|
256 | 256 |
this.fnSelectUserList(); // 사용자 목록 조회 |
257 | 257 |
this.fnSelectDeptList(); // 부서 목록 조회 |
258 | 258 |
}, |
... | ... | @@ -303,7 +303,7 @@ |
303 | 303 |
this.userSelectList = []; |
304 | 304 |
} |
305 | 305 |
}, |
306 |
- // 사용자 목록 개별 선택 |
|
306 |
+ // 사용자 목록 상세 선택 |
|
307 | 307 |
fnChangeChk() { |
308 | 308 |
if (this.userSelectList.length == this.userList.length) { |
309 | 309 |
this.isChkAll = true; |
... | ... | @@ -351,7 +351,7 @@ |
351 | 351 |
// 부서 목록 조회 |
352 | 352 |
fnSelectDeptList() { |
353 | 353 |
const vm = this; |
354 |
- // 데이터 세팅팅 |
|
354 |
+ // 데이터 세팅 |
|
355 | 355 |
let search = Object.assign({}, this.$getDefaultSerchVO()); |
356 | 356 |
search.currentPage = 0; |
357 | 357 |
search.perPage = 0; |
... | ... | @@ -402,7 +402,7 @@ |
402 | 402 |
}); |
403 | 403 |
}, |
404 | 404 |
|
405 |
- // 사용자 개별 조회 |
|
405 |
+ // 사용자 상세 조회 |
|
406 | 406 |
fnSelectUser(userId) { |
407 | 407 |
const vm = this; |
408 | 408 |
// 데이터 세팅 |
... | ... | @@ -537,7 +537,7 @@ |
537 | 537 |
.then(response => { |
538 | 538 |
if (response.data.checkMessage.status === 200) { |
539 | 539 |
vm.$showAlert("사용자 관리", "사용자 잠금이 해제되었습니다."); |
540 |
- vm.fnSelectUser(vm.currentUser.userId); // 사용자 개별 재조회 |
|
540 |
+ vm.fnSelectUser(vm.currentUser.userId); // 사용자 상세 재조회 |
|
541 | 541 |
} else { |
542 | 542 |
vm.$showAlert("사용자 관리", response.data.checkMessage.message); |
543 | 543 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?