From 5077ef7532639fb839ab2656db2f88c5f4405497 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Thu, 26 Feb 2026 20:02:34 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B1=84=EB=84=90=20=ED=9B=84=EC=9B=90=20?= =?UTF-8?q?=EC=A0=95=EC=82=B0=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/calculate.js | 9 +- src/components/SideMenu.vue | 20 ++ src/router/index.js | 5 + .../Calculate/CalculateChannelDonation.vue | 267 ++++++++++++++++++ 4 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 src/views/Calculate/CalculateChannelDonation.vue diff --git a/src/api/calculate.js b/src/api/calculate.js index 8cd7573..fb1d872 100644 --- a/src/api/calculate.js +++ b/src/api/calculate.js @@ -57,6 +57,12 @@ async function getCalculateCommunityByCreator(startDate, endDate, page, size) { ) } +async function getCalculateChannelDonationByCreator(startDate, endDate, page, size) { + return Vue.axios.get('/admin/calculate/channel-donation-by-creator?startDateStr=' + + startDate + '&endDateStr=' + endDate + '&page=' + (page - 1) + '&size=' + size + ) +} + async function updateCreatorSettlementRatio(creatorSettlementRatio) { const request = { memberId: creatorSettlementRatio.creator_id, @@ -84,5 +90,6 @@ export { deleteCreatorSettlementRatio, getCalculateLiveByCreator, getCalculateContentByCreator, - getCalculateCommunityByCreator + getCalculateCommunityByCreator, + getCalculateChannelDonationByCreator } diff --git a/src/components/SideMenu.vue b/src/components/SideMenu.vue index de31dbf..2819df9 100644 --- a/src/components/SideMenu.vue +++ b/src/components/SideMenu.vue @@ -149,6 +149,26 @@ export default { }, ] }) + + // 정산 관리 메뉴에 '채널 후원 정산' 추가 + try { + const calculateMenu = this.items.find(m => m && m.title === '정산 관리') + if (calculateMenu) { + if (!Array.isArray(calculateMenu.items)) { + calculateMenu.items = calculateMenu.items ? [].concat(calculateMenu.items) : [] + } + const exists = calculateMenu.items.some(ci => ci && ci.route === '/calculate/channel-donation') + if (!exists) { + calculateMenu.items.push({ + title: '채널 후원 정산', + route: '/calculate/channel-donation', + items: null + }) + } + } + } catch (e) { + // ignore + } } else { this.notifyError("알 수 없는 오류가 발생했습니다. 다시 로그인 해주세요!") this.logout(); diff --git a/src/router/index.js b/src/router/index.js index 0b7b254..66f2eea 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -210,6 +210,11 @@ const routes = [ name: 'CalculateCommunityByCreator', component: () => import(/* webpackChunkName: "calculate" */ '../views/Calculate/CalculateCommunityByCreator.vue') }, + { + path: '/calculate/channel-donation', + name: 'CalculateChannelDonation', + component: () => import(/* webpackChunkName: "calculate" */ '../views/Calculate/CalculateChannelDonation.vue') + }, { path: '/notice', name: 'NoticeView', diff --git a/src/views/Calculate/CalculateChannelDonation.vue b/src/views/Calculate/CalculateChannelDonation.vue new file mode 100644 index 0000000..bb6c9fc --- /dev/null +++ b/src/views/Calculate/CalculateChannelDonation.vue @@ -0,0 +1,267 @@ + + + + +