diff --git a/src/api/calculate.js b/src/api/calculate.js index d530512..36c249d 100644 --- a/src/api/calculate.js +++ b/src/api/calculate.js @@ -75,6 +75,54 @@ async function downloadCalculateChannelDonationByCreatorExcel(startDate, endDate }); } +async function downloadCalculateLiveExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/live/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateContentExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/content-list/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateContentDonationExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/content-donation-list/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateCommunityPostExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/community-post/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateLiveByCreatorExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/live-by-creator/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateContentByCreatorExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/content-by-creator/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateCommunityByCreatorExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/community-by-creator/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + +async function downloadCalculateChannelDonationByDateExcel(startDate, endDate) { + return Vue.axios.get('/admin/calculate/channel-donation-by-date/excel?startDateStr=' + startDate + '&endDateStr=' + endDate, { + responseType: 'blob' + }); +} + async function updateCreatorSettlementRatio(creatorSettlementRatio) { const request = { memberId: creatorSettlementRatio.creator_id, @@ -105,5 +153,13 @@ export { getCalculateCommunityByCreator, getCalculateChannelDonationByCreator, getCalculateChannelDonationByDate, - downloadCalculateChannelDonationByCreatorExcel + downloadCalculateChannelDonationByCreatorExcel, + downloadCalculateLiveExcel, + downloadCalculateContentExcel, + downloadCalculateContentDonationExcel, + downloadCalculateCommunityPostExcel, + downloadCalculateLiveByCreatorExcel, + downloadCalculateContentByCreatorExcel, + downloadCalculateCommunityByCreatorExcel, + downloadCalculateChannelDonationByDateExcel } diff --git a/src/views/Calculate/CalculateChannelDonation.vue b/src/views/Calculate/CalculateChannelDonation.vue index ca7077a..097c96d 100644 --- a/src/views/Calculate/CalculateChannelDonation.vue +++ b/src/views/Calculate/CalculateChannelDonation.vue @@ -47,22 +47,15 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -187,17 +180,6 @@ export default { { text: '정산금액', align: 'center', sortable: false, value: 'settlementAmount' }, { text: '원천세(3.3%)', align: 'center', sortable: false, value: 'withholdingTax' }, { text: '입금액', align: 'center', sortable: false, value: 'depositAmount' } - ], - excelColumns: [ - { label: '날짜', field: 'date' }, - { label: '크리에이터', field: 'creator' }, - { label: '건수', field: 'count' }, - { label: '캔', field: 'totalCan' }, - { label: '원화', field: 'krw' }, - { label: '수수료(6.6%)', field: 'fee' }, - { label: '정산금액', field: 'settlementAmount' }, - { label: '원천세(3.3%)', field: 'withholdingTax' }, - { label: '입금액', field: 'depositAmount' } ] } }, @@ -252,6 +234,24 @@ export default { } finally { this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateChannelDonationByDateExcel( + this.start_date.substring(0, 10), + this.end_date.substring(0, 10) + ) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '채널후원정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateCommunityByCreator.vue b/src/views/Calculate/CalculateCommunityByCreator.vue index 8bcd22f..1b43f99 100644 --- a/src/views/Calculate/CalculateCommunityByCreator.vue +++ b/src/views/Calculate/CalculateCommunityByCreator.vue @@ -47,22 +47,15 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -156,40 +149,6 @@ export default { page_size: 20, total_page: 0, items: [], - columns: [ - { - label: "이메일", - field: "email", - }, - { - label: "크리에이터", - field: "nickname", - }, - { - label: "합계(캔)", - field: "totalCan", - }, - { - label: "원화", - field: "totalKrw", - }, - { - label: "결제수수료(6.6%)", - field: "paymentFee", - }, - { - label: "정산금액", - field: "settlementAmount", - }, - { - label: "원천세(3.3%)", - field: "tax", - }, - { - label: "입금액", - field: "depositAmount", - }, - ], headers: [ { text: '이메일', @@ -309,6 +268,21 @@ export default { } finally { this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateCommunityByCreatorExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '크리에이터별_커뮤니티정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateCommunityPost.vue b/src/views/Calculate/CalculateCommunityPost.vue index 3fda528..5e5c7c0 100644 --- a/src/views/Calculate/CalculateCommunityPost.vue +++ b/src/views/Calculate/CalculateCommunityPost.vue @@ -35,7 +35,7 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -136,52 +129,6 @@ export default { page_size: 20, total_page: 0, items: [], - columns: [ - { - label: '날짜', - field: 'date', - }, - { - label: '크리에이터', - field: 'nickname', - }, - { - label: '내용(앞 10글자)', - field: 'title' - }, - { - label: '판매금액(캔)', - field: 'can', - }, - { - label: '구매유저수', - field: 'numberOfPurchase', - }, - { - label: '합계(캔)', - field: 'totalCan', - }, - { - label: '원화', - field: 'totalKrw', - }, - { - label: '수수료\n(6.6%)', - field: 'paymentFee', - }, - { - label: '정산금액', - field: 'settlementAmount', - }, - { - label: '원천세\n(3.3%)', - field: 'tax', - }, - { - label: '입금액', - field: 'depositAmount', - } - ], headers: [ { text: '날짜', @@ -309,6 +256,21 @@ export default { this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.') this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateCommunityPostExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '커뮤니티-정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateContent.vue b/src/views/Calculate/CalculateContent.vue index ce16f42..901aa2c 100644 --- a/src/views/Calculate/CalculateContent.vue +++ b/src/views/Calculate/CalculateContent.vue @@ -35,7 +35,7 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -144,60 +137,6 @@ export default { start_date: null, end_date: null, items: [], - columns: [ - { - label: '판매일', - field: 'saleDate', - }, - { - label: '크리에이터', - field: 'nickname', - }, - { - label: '제목', - field: 'title', - }, - { - label: '구분', - field: 'orderType', - }, - { - label: '판매금액(캔)', - field: 'orderPrice', - }, - { - label: '판매수', - field: 'numberOfPeople', - }, - { - label: '합계(캔)', - field: 'totalCan', - }, - { - label: '원화', - field: 'totalKrw', - }, - { - label: '수수료\n(6.6%)', - field: 'paymentFee', - }, - { - label: '정산금액', - field: 'settlementAmount', - }, - { - label: '원천세\n(3.3%)', - field: 'tax', - }, - { - label: '입금액', - field: 'depositAmount', - }, - { - label: '등록일', - field: 'registrationDate', - }, - ], headers: [ { text: '판매일', @@ -333,6 +272,21 @@ export default { this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.') this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateContentExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '콘텐츠정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateContentByCreator.vue b/src/views/Calculate/CalculateContentByCreator.vue index 5a6117d..d4ed59d 100644 --- a/src/views/Calculate/CalculateContentByCreator.vue +++ b/src/views/Calculate/CalculateContentByCreator.vue @@ -47,22 +47,15 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -156,40 +149,6 @@ export default { page_size: 20, total_page: 0, items: [], - columns: [ - { - label: "이메일", - field: "email", - }, - { - label: "크리에이터", - field: "nickname", - }, - { - label: "합계(캔)", - field: "totalCan", - }, - { - label: "원화", - field: "totalKrw", - }, - { - label: "결제수수료(6.6%)", - field: "paymentFee", - }, - { - label: "정산금액", - field: "settlementAmount", - }, - { - label: "원천세(3.3%)", - field: "tax", - }, - { - label: "입금액", - field: "depositAmount", - }, - ], headers: [ { text: '이메일', @@ -309,6 +268,21 @@ export default { } finally { this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateContentByCreatorExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '크리에이터별_콘텐츠정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateContentDonation.vue b/src/views/Calculate/CalculateContentDonation.vue index ca8b18a..7e667e4 100644 --- a/src/views/Calculate/CalculateContentDonation.vue +++ b/src/views/Calculate/CalculateContentDonation.vue @@ -35,7 +35,7 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -136,56 +129,6 @@ export default { start_date: null, end_date: null, items: [], - columns: [ - { - label: '후원날짜', - field: 'donationDate', - }, - { - label: '크리에이터', - field: 'nickname', - }, - { - label: '콘텐츠 제목', - field: 'title', - }, - { - label: '구분', - field: 'paidOrFree', - }, - { - label: '후원수', - field: 'numberOfDonation', - }, - { - label: '합계(캔)', - field: 'totalCan', - }, - { - label: '원화', - field: 'totalKrw', - }, - { - label: '수수료\n(6.6%)', - field: 'paymentFee', - }, - { - label: '정산금액', - field: 'settlementAmount', - }, - { - label: '원천세\n(3.3%)', - field: 'tax', - }, - { - label: '입금액', - field: 'depositAmount', - }, - { - label: '콘텐츠 등록일', - field: 'registrationDate', - }, - ], headers: [ { text: '후원날짜', @@ -315,6 +258,21 @@ export default { this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.') this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateContentDonationExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '콘텐츠후원정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateLive.vue b/src/views/Calculate/CalculateLive.vue index e5bd94d..5333f0e 100644 --- a/src/views/Calculate/CalculateLive.vue +++ b/src/views/Calculate/CalculateLive.vue @@ -35,7 +35,7 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -144,60 +137,6 @@ export default { start_date: null, end_date: null, items: [], - columns: [ - { - label: "이메일", - field: "email", - }, - { - label: "크리에이터", - field: "nickname", - }, - { - label: "날짜", - field: "date", - }, - { - label: "제목", - field: "title", - }, - { - label: "구분", - field: "canUsageStr", - }, - { - label: "입장캔", - field: "entranceFee", - }, - { - label: "인원", - field: "numberOfPeople", - }, - { - label: "합계(캔)", - field: "totalAmount", - }, - { - label: "원화", - field: "totalKrw", - }, - { - label: "결제수수료(6.6%)", - field: "paymentFee", - }, - { - label: "정산금액", - field: "settlementAmount", - }, - { - label: "원천세(3.3%)", - field: "tax", - }, - { - label: "입금액", - field: "depositAmount", - }, - ], headers: [ { text: '이메일', @@ -327,6 +266,21 @@ export default { this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.') this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateLiveExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '라이브정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } } diff --git a/src/views/Calculate/CalculateLiveByCreator.vue b/src/views/Calculate/CalculateLiveByCreator.vue index 1acb535..c4b302e 100644 --- a/src/views/Calculate/CalculateLiveByCreator.vue +++ b/src/views/Calculate/CalculateLiveByCreator.vue @@ -47,22 +47,15 @@ - - - 엑셀 다운로드 - - + 엑셀 다운로드 + @@ -156,40 +149,6 @@ export default { page_size: 20, total_page: 0, items: [], - columns: [ - { - label: "이메일", - field: "email", - }, - { - label: "크리에이터", - field: "nickname", - }, - { - label: "합계(캔)", - field: "totalCan", - }, - { - label: "원화", - field: "totalKrw", - }, - { - label: "결제수수료(6.6%)", - field: "paymentFee", - }, - { - label: "정산금액", - field: "settlementAmount", - }, - { - label: "원천세(3.3%)", - field: "tax", - }, - { - label: "입금액", - field: "depositAmount", - }, - ], headers: [ { text: '이메일', @@ -309,6 +268,21 @@ export default { } finally { this.is_loading = false } + }, + + async downloadExcel() { + try { + const res = await api.downloadCalculateLiveByCreatorExcel(this.start_date, this.end_date) + const url = window.URL.createObjectURL(new Blob([res.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', '크리에이터별_라이브정산.xlsx') + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + } catch (e) { + this.notifyError('엑셀 다운로드 중 오류가 발생했습니다.') + } } } }