에이전트 기능 #38
29
docs/20260413_정산메뉴에이전트전용분리.md
Normal file
29
docs/20260413_정산메뉴에이전트전용분리.md
Normal file
@@ -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/*` 로 이동되는지 확인
|
||||||
|
- 결과: 성공(플레이스홀더 화면 타이틀 확인)
|
||||||
@@ -97,8 +97,14 @@ export default {
|
|||||||
this.items = res.data.data
|
this.items = res.data.data
|
||||||
} else {
|
} else {
|
||||||
// 빈 메뉴일 경우 기본 단독 메뉴를 제공한다.
|
// 빈 메뉴일 경우 기본 단독 메뉴를 제공한다.
|
||||||
|
// 요구사항: 정산 관련 기본 메뉴를 추가한다.
|
||||||
this.items = [
|
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 {
|
} else {
|
||||||
|
|||||||
@@ -25,6 +25,32 @@ const routes = [
|
|||||||
name: 'AgentCreators',
|
name: 'AgentCreators',
|
||||||
component: () => import(/* webpackChunkName: "agent" */ '../views/Agent/Creators.vue')
|
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',
|
path: '/content/category/list',
|
||||||
name: 'ContentCategoryList',
|
name: 'ContentCategoryList',
|
||||||
|
|||||||
15
src/views/Agent/Calculate/AgentCalculateChannelDonation.vue
Normal file
15
src/views/Agent/Calculate/AgentCalculateChannelDonation.vue
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h2>에이전트 전용 - 크리에이터별 채널 후원 정산</h2>
|
||||||
|
<p>이 페이지는 추후 구현 예정입니다.</p>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AgentCalculateChannelDonation'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
15
src/views/Agent/Calculate/AgentCalculateCommunityPost.vue
Normal file
15
src/views/Agent/Calculate/AgentCalculateCommunityPost.vue
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h2>에이전트 전용 - 크리에이터별 커뮤니티 정산</h2>
|
||||||
|
<p>이 페이지는 추후 구현 예정입니다.</p>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AgentCalculateCommunityPost'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
15
src/views/Agent/Calculate/AgentCalculateContent.vue
Normal file
15
src/views/Agent/Calculate/AgentCalculateContent.vue
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h2>에이전트 전용 - 크리에이터별 콘텐츠 정산</h2>
|
||||||
|
<p>이 페이지는 추후 구현 예정입니다.</p>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AgentCalculateContent'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
15
src/views/Agent/Calculate/AgentCalculateContentDonation.vue
Normal file
15
src/views/Agent/Calculate/AgentCalculateContentDonation.vue
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h2>에이전트 전용 - 크리에이터별 콘텐츠 후원 정산</h2>
|
||||||
|
<p>이 페이지는 추후 구현 예정입니다.</p>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AgentCalculateContentDonation'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
15
src/views/Agent/Calculate/AgentCalculateLive.vue
Normal file
15
src/views/Agent/Calculate/AgentCalculateLive.vue
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h2>에이전트 전용 - 크리에이터별 라이브 정산</h2>
|
||||||
|
<p>이 페이지는 추후 구현 예정입니다.</p>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AgentCalculateLive'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user