콘텐츠 배너 등록/수정 페이지

- 탭 추가
This commit is contained in:
Yu Sung 2025-01-21 18:36:05 +09:00
parent 152fe817e8
commit 22b185c31a
2 changed files with 49 additions and 7 deletions

View File

@ -19,8 +19,8 @@ async function modifyAudioContent(request) {
return Vue.axios.put("/admin/audio-content", request) return Vue.axios.put("/admin/audio-content", request)
} }
async function getBannerList() { async function getBannerList(tabId) {
return Vue.axios.get("/admin/audio-content/banner") return Vue.axios.get("/admin/audio-content/banner?tabId=" + tabId)
} }
async function saveBanner(formData) { async function saveBanner(formData) {
@ -63,6 +63,10 @@ async function getAudioContentThemeList() {
return Vue.axios.get("/admin/audio-content/theme") return Vue.axios.get("/admin/audio-content/theme")
} }
async function getAudioContentMainTabList() {
return Vue.axios.get("/admin/audio-content/main/tab")
}
export { export {
getAudioContentList, getAudioContentList,
searchAudioContent, searchAudioContent,
@ -75,5 +79,6 @@ export {
saveCuration, saveCuration,
modifyCuration, modifyCuration,
updateCurationOrders, updateCurationOrders,
getAudioContentThemeList getAudioContentThemeList,
getAudioContentMainTabList
} }

View File

@ -16,11 +16,25 @@
<template v-slot:activator="{ on, attrs }"> <template v-slot:activator="{ on, attrs }">
<v-container> <v-container>
<v-row> <v-row>
<v-col cols="10" /> <v-col cols="9">
<v-radio-group
v-model="selected_tab_id"
row
@change="getBanners"
>
<v-radio
v-for="tab in tabs"
:key="tab.tabId"
:label="tab.title"
:value="tab.tabId"
/>
</v-radio-group>
</v-col>
<v-spacer />
<v-col> <v-col>
<v-btn <v-btn
block block
color="#9970ff" color="#3BB9F1"
dark dark
depressed depressed
v-bind="attrs" v-bind="attrs"
@ -300,6 +314,8 @@ export default {
series: [], series: [],
search_query_creator: '', search_query_creator: '',
search_query_series: '', search_query_series: '',
tabs: [],
selected_tab_id: 1
} }
}, },
@ -319,7 +335,7 @@ export default {
async created() { async created() {
await this.getEvents() await this.getEvents()
await this.getBanners() await this.getAudioContentMainTabList()
}, },
mounted() { mounted() {
@ -357,6 +373,27 @@ export default {
this.$dialog.notify.success(message) this.$dialog.notify.success(message)
}, },
async getAudioContentMainTabList() {
this.is_loading = true
try {
const res = await api.getAudioContentMainTabList()
if (res.status === 200 && res.data.success === true) {
const data = res.data.data
this.tabs = data
this.selected_tab_id = data[0].tabId
await this.getBanners()
} else {
this.notifyError(res.data.message || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
}
} catch (e) {
this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
} finally {
this.is_loading = false
}
},
showModifyBannerDialog(banner) { showModifyBannerDialog(banner) {
this.is_modify = true this.is_modify = true
this.selected_banner = banner this.selected_banner = banner
@ -680,7 +717,7 @@ export default {
async getBanners() { async getBanners() {
this.is_loading = true this.is_loading = true
try { try {
const res = await api.getBannerList() const res = await api.getBannerList(this.selected_tab_id)
if (res.status === 200 && res.data.success === true) { if (res.status === 200 && res.data.success === true) {
this.banners = res.data.data this.banners = res.data.data
} else { } else {