From 245c026e5012b422d67ff3d1d9b5631dee6c4491 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sun, 31 May 2026 19:02:05 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EB=A5=BC=20=ED=9A=8C=EC=9B=90=20=EA=B4=80=EB=A6=AC(?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90)=EB=A1=9C=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 데모 user 대신 member 기반. 목록·검색·역할·상태 변경·삭제, 관리자 전용·모바일 대응 Co-Authored-By: Claude Opus 4.8 --- src/api/adminApi.js | 14 + src/components/layout/AppSidebar.vue | 2 +- src/router/index.js | 2 +- src/views/UsersView.vue | 373 ++++++++++++++++----------- 4 files changed, 244 insertions(+), 147 deletions(-) diff --git a/src/api/adminApi.js b/src/api/adminApi.js index 3179d52..969f695 100644 --- a/src/api/adminApi.js +++ b/src/api/adminApi.js @@ -29,4 +29,18 @@ export const adminApi = { setBoardSetting(tagCategoryId) { return http.put('/admin/board-setting', { tagCategoryId }) }, + + // 회원 관리 (관리자) + members() { + return http.get('/admin/members') + }, + updateMemberRole(id, role) { + return http.put(`/admin/members/${id}/role`, { role }) + }, + updateMemberStatus(id, status) { + return http.put(`/admin/members/${id}/status`, { status }) + }, + removeMember(id) { + return http.delete(`/admin/members/${id}`) + }, } diff --git a/src/components/layout/AppSidebar.vue b/src/components/layout/AppSidebar.vue index f686991..d6e3d41 100644 --- a/src/components/layout/AppSidebar.vue +++ b/src/components/layout/AppSidebar.vue @@ -29,7 +29,7 @@ const inAccount = computed(() => route.path.startsWith('/account')) 예산 설정 태그 관리 - 사용자 관리 + 회원 관리 태그 관리 diff --git a/src/router/index.js b/src/router/index.js index ad8da0a..d77ca18 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -15,7 +15,7 @@ const router = createRouter({ path: '/users', name: 'users', component: () => import('../views/UsersView.vue'), - meta: { requiresAuth: true }, + meta: { requiresAuth: true, requiresAdmin: true }, }, { path: '/board', diff --git a/src/views/UsersView.vue b/src/views/UsersView.vue index da940c9..d3edf6e 100644 --- a/src/views/UsersView.vue +++ b/src/views/UsersView.vue @@ -1,222 +1,305 @@