From 6c8c5fb6601ea5225fa076560c5e07dae717487c Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Mon, 13 Apr 2026 18:18:54 +0900 Subject: [PATCH] =?UTF-8?q?feat(agent-calc):=20=EC=97=90=EC=9D=B4=EC=A0=84?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=84=EC=9A=A9=20=EC=A0=95=EC=82=B0=20=EB=A9=94?= =?UTF-8?q?=EB=89=B4/=EB=9D=BC=EC=9A=B0=ED=8A=B8=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B8=B0=EB=B3=B8=20=EB=A9=94=EB=89=B4=20=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EA=B5=90=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/20260413_정산메뉴에이전트전용분리.md | 29 +++++++++++++++++++ src/components/SideMenu.vue | 8 ++++- src/router/index.js | 26 +++++++++++++++++ .../AgentCalculateChannelDonation.vue | 15 ++++++++++ .../Calculate/AgentCalculateCommunityPost.vue | 15 ++++++++++ .../Agent/Calculate/AgentCalculateContent.vue | 15 ++++++++++ .../AgentCalculateContentDonation.vue | 15 ++++++++++ .../Agent/Calculate/AgentCalculateLive.vue | 15 ++++++++++ 8 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 docs/20260413_정산메뉴에이전트전용분리.md create mode 100644 src/views/Agent/Calculate/AgentCalculateChannelDonation.vue create mode 100644 src/views/Agent/Calculate/AgentCalculateCommunityPost.vue create mode 100644 src/views/Agent/Calculate/AgentCalculateContent.vue create mode 100644 src/views/Agent/Calculate/AgentCalculateContentDonation.vue create mode 100644 src/views/Agent/Calculate/AgentCalculateLive.vue diff --git a/docs/20260413_정산메뉴에이전트전용분리.md b/docs/20260413_정산메뉴에이전트전용분리.md new file mode 100644 index 0000000..aaba50b --- /dev/null +++ b/docs/20260413_정산메뉴에이전트전용분리.md @@ -0,0 +1,29 @@ +# 정산 메뉴 에이전트 전용 분리 계획 + +## 배경/목표 +- 기존 `/calculate/*` 경로는 크리에이터 전용 라우트/페이지다. +- 빈 메뉴일 때 기본으로 추가한 정산 메뉴 5종은 에이전트 전용으로 분리되어야 한다. +- 에이전트 전용 라우트를 `/agent/calculate/*` 네임스페이스로 제공하고, 페이지는 추후 구현을 위해 플레이스홀더로 생성한다. + +## 구현 체크리스트 +- [x] 라우터에 에이전트 전용 경로 추가 (`/agent/calculate/*`) + - [x] `/agent/calculate/live` + - [x] `/agent/calculate/content-by-date` + - [x] `/agent/calculate/content-donation-by-date` + - [x] `/agent/calculate/community-post` + - [x] `/agent/calculate/channel-donation` +- [x] 에이전트 전용 뷰 컴포넌트(플레이스홀더) 생성: `src/views/Agent/Calculate/*` +- [x] 사이드 메뉴 기본 항목이 에이전트 전용 경로를 가리키도록 수정 +- [x] 기본 동작 수동 검증 (라우팅/메뉴 이동 확인) + +## 범위/제한 +- API 연동은 포함하지 않음. 화면은 "추후 구현" 플레이스홀더로 둔다. +- 기존 크리에이터 전용 라우트/화면은 변경하지 않는다. + +## 검증 기록 +### 1차 구현 +- 무엇을: 에이전트 전용 라우트 5종 추가 및 사이드 메뉴 경로 교체, 플레이스홀더 화면 생성 +- 왜: 크리에이터 전용 경로와 구분하여 접근/권한/콘텍스트 분리를 명확히 하기 위함 +- 어떻게: + - 라우팅 수동 점검: 각 메뉴 클릭 시 `/agent/calculate/*` 로 이동되는지 확인 + - 결과: 성공(플레이스홀더 화면 타이틀 확인) diff --git a/src/components/SideMenu.vue b/src/components/SideMenu.vue index f6c0def..fa2b1e1 100644 --- a/src/components/SideMenu.vue +++ b/src/components/SideMenu.vue @@ -97,8 +97,14 @@ export default { this.items = res.data.data } else { // 빈 메뉴일 경우 기본 단독 메뉴를 제공한다. + // 요구사항: 정산 관련 기본 메뉴를 추가한다. this.items = [ - { title: '소속 크리에이터', route: '/agent/creators' } + { title: '소속 크리에이터', route: '/agent/creators' }, + { title: '크리에이터별 라이브 정산', route: '/agent/calculate/live' }, + { title: '크리에이터별 콘텐츠 정산', route: '/agent/calculate/content-by-date' }, + { title: '크리에이터별 콘텐츠 후원 정산', route: '/agent/calculate/content-donation-by-date' }, + { title: '크리에이터별 커뮤니티 정산', route: '/agent/calculate/community-post' }, + { title: '크리에이터별 채널 후원 정산', route: '/agent/calculate/channel-donation' }, ] } } else { diff --git a/src/router/index.js b/src/router/index.js index 386007f..1fa7b8e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,6 +25,32 @@ const routes = [ name: 'AgentCreators', component: () => import(/* webpackChunkName: "agent" */ '../views/Agent/Creators.vue') }, + // Agent-only calculate routes (placeholders) + { + path: '/agent/calculate/live', + name: 'AgentCalculateLive', + component: () => import(/* webpackChunkName: "agent-calc" */ '../views/Agent/Calculate/AgentCalculateLive.vue') + }, + { + path: '/agent/calculate/content-by-date', + name: 'AgentCalculateContent', + component: () => import(/* webpackChunkName: "agent-calc" */ '../views/Agent/Calculate/AgentCalculateContent.vue') + }, + { + path: '/agent/calculate/content-donation-by-date', + name: 'AgentCalculateContentDonation', + component: () => import(/* webpackChunkName: "agent-calc" */ '../views/Agent/Calculate/AgentCalculateContentDonation.vue') + }, + { + path: '/agent/calculate/community-post', + name: 'AgentCalculateCommunityPost', + component: () => import(/* webpackChunkName: "agent-calc" */ '../views/Agent/Calculate/AgentCalculateCommunityPost.vue') + }, + { + path: '/agent/calculate/channel-donation', + name: 'AgentCalculateChannelDonation', + component: () => import(/* webpackChunkName: "agent-calc" */ '../views/Agent/Calculate/AgentCalculateChannelDonation.vue') + }, { path: '/content/category/list', name: 'ContentCategoryList', diff --git a/src/views/Agent/Calculate/AgentCalculateChannelDonation.vue b/src/views/Agent/Calculate/AgentCalculateChannelDonation.vue new file mode 100644 index 0000000..20e4c91 --- /dev/null +++ b/src/views/Agent/Calculate/AgentCalculateChannelDonation.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/Agent/Calculate/AgentCalculateCommunityPost.vue b/src/views/Agent/Calculate/AgentCalculateCommunityPost.vue new file mode 100644 index 0000000..06051f7 --- /dev/null +++ b/src/views/Agent/Calculate/AgentCalculateCommunityPost.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/Agent/Calculate/AgentCalculateContent.vue b/src/views/Agent/Calculate/AgentCalculateContent.vue new file mode 100644 index 0000000..d0d986d --- /dev/null +++ b/src/views/Agent/Calculate/AgentCalculateContent.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/Agent/Calculate/AgentCalculateContentDonation.vue b/src/views/Agent/Calculate/AgentCalculateContentDonation.vue new file mode 100644 index 0000000..cea6269 --- /dev/null +++ b/src/views/Agent/Calculate/AgentCalculateContentDonation.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/Agent/Calculate/AgentCalculateLive.vue b/src/views/Agent/Calculate/AgentCalculateLive.vue new file mode 100644 index 0000000..8ec08dc --- /dev/null +++ b/src/views/Agent/Calculate/AgentCalculateLive.vue @@ -0,0 +1,15 @@ + + + + +