diff --git a/src/App.vue b/src/App.vue
index 3ec463e..168da05 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -38,4 +38,12 @@
}
}
}
+
+html::-webkit-scrollbar, body::-webkit-scrollbar {
+ overflow-y: hidden;
+}
+
+html, body {
+ overflow-y: hidden;
+}
diff --git a/src/api/audio_content_series.js b/src/api/audio_content_series.js
index b7bfbe6..f77959e 100644
--- a/src/api/audio_content_series.js
+++ b/src/api/audio_content_series.js
@@ -55,6 +55,13 @@ async function removeContentInTheSeries(seriesId, contentId) {
)
}
+async function updateSeriesOrders(ids) {
+ return Vue.axios.put(
+ "/creator-admin/audio-content/series/orders",
+ {ids: ids}
+ )
+}
+
export {
getGenreList,
getSeriesList,
@@ -62,6 +69,7 @@ export {
modifySeries,
getSeriesDetail,
getSeriesContent,
+ updateSeriesOrders,
addingContentToTheSeries,
removeContentInTheSeries,
searchContentNotInSeries
diff --git a/src/views/Content/ContentSeriesList.vue b/src/views/Content/ContentSeriesList.vue
index 142cac8..e994149 100644
--- a/src/views/Content/ContentSeriesList.vue
+++ b/src/views/Content/ContentSeriesList.vue
@@ -22,44 +22,54 @@
-
-
+
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
- 수정
-
-
- 삭제
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+ 수정
+
+
+ 삭제
+
+
+
+
+
+
+
import * as api from '@/api/audio_content_series';
+import Draggable from "vuedraggable";
export default {
name: "ContentSeriesList",
-
+ components: {Draggable},
data() {
return {
is_loading: false,
@@ -378,6 +389,14 @@ export default {
},
methods: {
+ async onScroll() {
+ const scrollContainer = this.$refs.scroll_container;
+ const threshold = scrollContainer.scrollHeight - scrollContainer.clientHeight;
+ if (scrollContainer.scrollTop >= threshold - 10 && this.total_page >= this.page) {
+ await this.getSeriesList();
+ }
+ },
+
imageAdd(payload) {
const file = payload;
if (file) {
@@ -485,8 +504,18 @@ export default {
this.$router.push({name: 'ContentSeriesDetail', params: {seriesId: series.seriesId}})
},
+ async onDropCallback(items) {
+ const ids = items.map((item) => {
+ return item.seriesId
+ })
+
+ const res = await api.updateSeriesOrders(ids)
+ if (res.status === 200 && res.data.success === true) {
+ this.notifySuccess(res.data.message)
+ }
+ },
+
async getSeriesGenreList() {
- this.is_loading = true
try {
const res = await api.getGenreList()
if (res.status === 200 && res.data.success === true) {
@@ -496,23 +525,24 @@ export default {
} else {
this.notifyError(res.data.message || '알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
}
-
- this.is_loading = false
} catch (e) {
this.notifyError('알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.')
- this.is_loading = false
}
},
async getSeriesList() {
+ if (this.is_loading) return;
+
this.is_loading = true
try {
const res = await api.getSeriesList(this.page)
if (res.status === 200 && res.data.success === true) {
const data = res.data.data
+ const total_page = Math.ceil(data.totalCount / 10)
- const total_page = Math.ceil(data.totalCount / 20)
- this.series_list = data.items
+ if (this.page === 1) this.series_list.length = 0;
+ this.page += 1;
+ this.series_list.push(...data.items);
if (total_page <= 0)
this.total_page = 1
@@ -665,6 +695,11 @@ export default {