test #56
@@ -43,8 +43,8 @@ async function updateBannerOrders(ids) {
 | 
				
			|||||||
    return Vue.axios.put('/admin/audio-content/banner/orders', {ids: ids})
 | 
					    return Vue.axios.put('/admin/audio-content/banner/orders', {ids: ids})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function getCurations() {
 | 
					async function getCurations(tabId) {
 | 
				
			||||||
    return Vue.axios.get("/admin/audio-content/curation")
 | 
					    return Vue.axios.get("/admin/audio-content/curation?tabId=" + tabId)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function saveCuration(request) {
 | 
					async function saveCuration(request) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,11 +10,25 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <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="getCurations"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            <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
 | 
				
			||||||
            @click="showWriteDialog"
 | 
					            @click="showWriteDialog"
 | 
				
			||||||
@@ -103,6 +117,26 @@
 | 
				
			|||||||
          <v-card-title v-else>
 | 
					          <v-card-title v-else>
 | 
				
			||||||
            콘텐츠 큐레이션 등록
 | 
					            콘텐츠 큐레이션 등록
 | 
				
			||||||
          </v-card-title>
 | 
					          </v-card-title>
 | 
				
			||||||
 | 
					          <v-card-text>
 | 
				
			||||||
 | 
					            <v-row align="center">
 | 
				
			||||||
 | 
					              <v-col cols="4">
 | 
				
			||||||
 | 
					                메인 탭
 | 
				
			||||||
 | 
					              </v-col>
 | 
				
			||||||
 | 
					              <v-col cols="8">
 | 
				
			||||||
 | 
					                <v-radio-group
 | 
				
			||||||
 | 
					                  v-model="curation.tab_id"
 | 
				
			||||||
 | 
					                  row
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <v-radio
 | 
				
			||||||
 | 
					                    v-for="tab in tabs"
 | 
				
			||||||
 | 
					                    :key="tab.tabId"
 | 
				
			||||||
 | 
					                    :label="tab.title"
 | 
				
			||||||
 | 
					                    :value="tab.tabId"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
 | 
					                </v-radio-group>
 | 
				
			||||||
 | 
					              </v-col>
 | 
				
			||||||
 | 
					            </v-row>
 | 
				
			||||||
 | 
					          </v-card-text>
 | 
				
			||||||
          <v-card-text>
 | 
					          <v-card-text>
 | 
				
			||||||
            <v-row align="center">
 | 
					            <v-row align="center">
 | 
				
			||||||
              <v-col cols="4">
 | 
					              <v-col cols="4">
 | 
				
			||||||
@@ -222,6 +256,8 @@ export default {
 | 
				
			|||||||
            selected_curation: {},
 | 
					            selected_curation: {},
 | 
				
			||||||
            curation: {is_adult: false},
 | 
					            curation: {is_adult: false},
 | 
				
			||||||
            curations: [],
 | 
					            curations: [],
 | 
				
			||||||
 | 
					            tabs: [],
 | 
				
			||||||
 | 
					            selected_tab_id: 1,
 | 
				
			||||||
            headers: [
 | 
					            headers: [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    text: '제목',
 | 
					                    text: '제목',
 | 
				
			||||||
@@ -252,7 +288,7 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async created() {
 | 
					    async created() {
 | 
				
			||||||
        await this.getCurations()
 | 
					        await this.getAudioContentMainTabList()
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
@@ -273,6 +309,7 @@ export default {
 | 
				
			|||||||
            this.selected_curation = item
 | 
					            this.selected_curation = item
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.curation.id = item.id
 | 
					            this.curation.id = item.id
 | 
				
			||||||
 | 
					            this.curation.tab_id = item.tabId
 | 
				
			||||||
            this.curation.title = item.title
 | 
					            this.curation.title = item.title
 | 
				
			||||||
            this.curation.description = item.description
 | 
					            this.curation.description = item.description
 | 
				
			||||||
            this.curation.is_adult = item.isAdult
 | 
					            this.curation.is_adult = item.isAdult
 | 
				
			||||||
@@ -289,6 +326,15 @@ export default {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        validate() {
 | 
					        validate() {
 | 
				
			||||||
 | 
					            if (
 | 
				
			||||||
 | 
					              this.curation.tab_id === null ||
 | 
				
			||||||
 | 
					              this.curation.tab_id === undefined ||
 | 
				
			||||||
 | 
					              this.curation.tab_id <= 0
 | 
				
			||||||
 | 
					            ) {
 | 
				
			||||||
 | 
					              this.notifyError("메인 탭을 선택하세요")
 | 
				
			||||||
 | 
					              return false
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (
 | 
					            if (
 | 
				
			||||||
                this.curation.title === null ||
 | 
					                this.curation.title === null ||
 | 
				
			||||||
                this.curation.title === undefined ||
 | 
					                this.curation.title === undefined ||
 | 
				
			||||||
@@ -320,6 +366,27 @@ export default {
 | 
				
			|||||||
            this.show_delete_confirm_dialog = false
 | 
					            this.show_delete_confirm_dialog = false
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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.filter(item => item.title !== '홈' && item.title !== '단편')
 | 
				
			||||||
 | 
					              this.selected_tab_id = this.tabs[0].tabId
 | 
				
			||||||
 | 
					              await this.getCurations()
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              this.notifyError(res.data.message || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          } catch (e) {
 | 
				
			||||||
 | 
					            this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
 | 
				
			||||||
 | 
					          } finally {
 | 
				
			||||||
 | 
					            this.is_loading = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        async submit() {
 | 
					        async submit() {
 | 
				
			||||||
            if (!this.validate()) return;
 | 
					            if (!this.validate()) return;
 | 
				
			||||||
            if (this.is_loading) return;
 | 
					            if (this.is_loading) return;
 | 
				
			||||||
@@ -328,6 +395,7 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                const request = {
 | 
					                const request = {
 | 
				
			||||||
 | 
					                    tabId: this.curation.tab_id,
 | 
				
			||||||
                    title: this.curation.title,
 | 
					                    title: this.curation.title,
 | 
				
			||||||
                    description: this.curation.description,
 | 
					                    description: this.curation.description,
 | 
				
			||||||
                    isAdult: this.curation.is_adult
 | 
					                    isAdult: this.curation.is_adult
 | 
				
			||||||
@@ -357,6 +425,10 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                let request = {id: this.curation.id}
 | 
					                let request = {id: this.curation.id}
 | 
				
			||||||
 | 
					                if (this.selected_curation.tab_id !== this.curation.tab_id) {
 | 
				
			||||||
 | 
					                  request.tabId = this.curation.tab_id
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (this.selected_curation.title !== this.curation.title && this.curation.title.trim().length > 0) {
 | 
					                if (this.selected_curation.title !== this.curation.title && this.curation.title.trim().length > 0) {
 | 
				
			||||||
                    request.title = this.curation.title
 | 
					                    request.title = this.curation.title
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -439,7 +511,7 @@ export default {
 | 
				
			|||||||
            this.is_loading = true
 | 
					            this.is_loading = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                const res = await api.getCurations()
 | 
					                const res = await api.getCurations(this.selected_tab_id)
 | 
				
			||||||
                if (res.status === 200 && res.data.success === true) {
 | 
					                if (res.status === 200 && res.data.success === true) {
 | 
				
			||||||
                    this.curations = res.data.data
 | 
					                    this.curations = res.data.data
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user