From 439cc21e573a09f1dbfa7b9be290c46ffb86fc93 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Tue, 5 Aug 2025 15:14:24 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9D=B4=EB=93=9C=20=EB=A9=94?= =?UTF-8?q?=EB=89=B4=20-=20=EC=BA=90=EB=A6=AD=ED=84=B0=20=EC=B1=97?= =?UTF-8?q?=EB=B4=87=20=EB=A9=94=EB=89=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/character.js | 16 ++++++++++++++++ src/components/SideMenu.vue | 18 ++++++++++++++++++ src/router/index.js | 11 +++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/api/character.js diff --git a/src/api/character.js b/src/api/character.js new file mode 100644 index 0000000..1fc22b9 --- /dev/null +++ b/src/api/character.js @@ -0,0 +1,16 @@ +import Vue from 'vue'; + +// 캐릭터 리스트 +async function getCharacterList() { + return Vue.axios.get('/api/admin/characters') +} + +// 캐릭터 등록 + +// 캐릭터 수정 + +// 캐릭터 삭제 + +export { + getCharacterList +} diff --git a/src/components/SideMenu.vue b/src/components/SideMenu.vue index 8fa647a..26c4fc4 100644 --- a/src/components/SideMenu.vue +++ b/src/components/SideMenu.vue @@ -95,6 +95,24 @@ export default { let res = await api.getMenus(); if (res.status === 200 && res.data.success === true && res.data.data.length > 0) { this.items = res.data.data + + // 캐릭터 챗봇 메뉴 추가 + this.items.push({ + title: '캐릭터 챗봇', + route: null, + items: [ + { + title: '배너 등록', + route: '/character/banner', + items: null + }, + { + title: '캐릭터 리스트', + route: '/character', + items: null + } + ] + }) } else { this.notifyError("알 수 없는 오류가 발생했습니다. 다시 로그인 해주세요!") this.logout(); diff --git a/src/router/index.js b/src/router/index.js index 4b2f7fa..1f1270c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -255,6 +255,17 @@ const routes = [ name: 'MarketingAdStatisticsView', component: () => import(/* webpackChunkName: "marketing" */ '../views/Marketing/MarketingAdStatisticsView.vue') }, + { + path: '/character', + name: 'CharacterList', + component: () => import(/* webpackChunkName: "character" */ '../views/Chat/CharacterList.vue') + }, + // TODO: CharacterBanner 컴포넌트가 구현되면 아래 라우트 주석 해제 + // { + // path: '/character/banner', + // name: 'CharacterBanner', + // component: () => import(/* webpackChunkName: "character" */ '../views/Chat/CharacterBanner.vue') + // }, ] }, {