Merge pull request 'feat(calculate): 라이브 환불 기능 API 연동 및 UI 수정' (#95) from test into main

Reviewed-on: #95
This commit is contained in:
2026-03-16 07:27:32 +00:00
2 changed files with 42 additions and 10 deletions

View File

@@ -138,6 +138,15 @@ async function deleteCreatorSettlementRatio(memberId) {
return Vue.axios.post('/admin/calculate/ratio/delete/' + memberId); return Vue.axios.post('/admin/calculate/ratio/delete/' + memberId);
} }
async function refundLive(roomId, canUsageStr) {
const request = {
roomId: roomId,
canUsageStr: canUsageStr
};
return Vue.axios.post('/admin/calculate/live/refund', request);
}
export { export {
getCalculateLive, getCalculateLive,
getCalculateContent, getCalculateContent,
@@ -148,6 +157,7 @@ export {
createCreatorSettlementRatio, createCreatorSettlementRatio,
updateCreatorSettlementRatio, updateCreatorSettlementRatio,
deleteCreatorSettlementRatio, deleteCreatorSettlementRatio,
refundLive,
getCalculateLiveByCreator, getCalculateLiveByCreator,
getCalculateContentByCreator, getCalculateContentByCreator,
getCalculateCommunityByCreator, getCalculateCommunityByCreator,

View File

@@ -69,10 +69,6 @@
class="elevation-1" class="elevation-1"
hide-default-footer hide-default-footer
> >
<template v-slot:item.email="{ item }">
{{ item.email }}
</template>
<template v-slot:item.nickname="{ item }"> <template v-slot:item.nickname="{ item }">
{{ item.nickname }} {{ item.nickname }}
</template> </template>
@@ -116,6 +112,16 @@
<template v-slot:item.depositAmount="{ item }"> <template v-slot:item.depositAmount="{ item }">
{{ item.depositAmount.toLocaleString() }} {{ item.depositAmount.toLocaleString() }}
</template> </template>
<template v-slot:item.actions="{ item }">
<v-btn
small
color="error"
@click="refund(item)"
>
환불
</v-btn>
</template>
</v-data-table> </v-data-table>
</v-col> </v-col>
</v-row> </v-row>
@@ -151,12 +157,6 @@ export default {
total_page: 0, total_page: 0,
items: [], items: [],
headers: [ headers: [
{
text: '이메일',
align: 'center',
sortable: false,
value: 'email',
},
{ {
text: '크리에이터', text: '크리에이터',
align: 'center', align: 'center',
@@ -227,6 +227,12 @@ export default {
align: 'center', align: 'center',
sortable: false, sortable: false,
value: 'depositAmount', value: 'depositAmount',
},
{
text: '관리',
align: 'center',
sortable: false,
value: 'actions',
} }
], ],
} }
@@ -286,6 +292,22 @@ export default {
this.getCalculateLive() this.getCalculateLive()
}, },
async refund(item) {
if (confirm('정말로 환불하시겠습니까?')) {
try {
const res = await api.refundLive(item.roomId, item.canUsageStr)
if (res.status === 200 && res.data.success === true) {
this.notifySuccess('환불 처리가 완료되었습니다.')
await this.getCalculateLive()
} else {
this.notifyError(res.data.message || '환불 처리 중 오류가 발생했습니다.')
}
} catch (e) {
this.notifyError('환불 처리 중 오류가 발생했습니다.')
}
}
},
async downloadExcel() { async downloadExcel() {
try { try {
const res = await api.downloadCalculateLiveExcel(this.start_date, this.end_date) const res = await api.downloadCalculateLiveExcel(this.start_date, this.end_date)