feat(calculate): 정산 페이지 엑셀 다운로드 방식 수정

- vue-excel-xlsx 사용방식에서 API 호출 방식으로 변경
This commit is contained in:
Yu Sung
2026-03-05 13:50:35 +09:00
parent dfcc746738
commit c9f49a208a
9 changed files with 248 additions and 442 deletions

View File

@@ -47,22 +47,15 @@
<v-spacer />
<v-col cols="2">
<vue-excel-xlsx
:data="items"
:columns="excelColumns"
:file-name="'채널후원정산'"
:file-type="'xlsx'"
:sheet-name="'정산'"
<v-btn
block
color="#3bb9f1"
dark
depressed
@click="downloadExcel"
>
<v-btn
block
color="#3bb9f1"
dark
depressed
>
엑셀 다운로드
</v-btn>
</vue-excel-xlsx>
엑셀 다운로드
</v-btn>
</v-col>
</v-row>
@@ -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('엑셀 다운로드 중 오류가 발생했습니다.')
}
}
}
}