diff --git a/package-lock.json b/package-lock.json index 8260de0..3434c2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "core-js": "^3.6.5", "vue": "^2.6.11", "vue-router": "^3.2.0", + "vue-show-more-text": "^2.0.2", "vue2-datepicker": "^3.11.1", "vue2-editor": "^2.10.3", "vue2-timepicker": "^1.1.6", @@ -14488,6 +14489,15 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==" }, + "node_modules/vue-show-more-text": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vue-show-more-text/-/vue-show-more-text-2.0.2.tgz", + "integrity": "sha512-x/WuikWAx8Hm4gpZx6KHtJYiXDordGdSoXrd34lTiJeAnlT8Y7Yc0FfGBNdUv6mXncuET3LiRwwNz+X5gI+oiw==", + "dependencies": { + "core-js": "^3.6.5", + "vue": "^2.6.11" + } + }, "node_modules/vue-style-loader": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", @@ -27252,6 +27262,15 @@ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==" }, + "vue-show-more-text": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vue-show-more-text/-/vue-show-more-text-2.0.2.tgz", + "integrity": "sha512-x/WuikWAx8Hm4gpZx6KHtJYiXDordGdSoXrd34lTiJeAnlT8Y7Yc0FfGBNdUv6mXncuET3LiRwwNz+X5gI+oiw==", + "requires": { + "core-js": "^3.6.5", + "vue": "^2.6.11" + } + }, "vue-style-loader": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", diff --git a/package.json b/package.json index 3800d20..352a21e 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "core-js": "^3.6.5", "vue": "^2.6.11", "vue-router": "^3.2.0", + "vue-show-more-text": "^2.0.2", "vue2-datepicker": "^3.11.1", "vue2-editor": "^2.10.3", "vue2-timepicker": "^1.1.6", diff --git a/src/api/audio_content_series.js b/src/api/audio_content_series.js new file mode 100644 index 0000000..b7bfbe6 --- /dev/null +++ b/src/api/audio_content_series.js @@ -0,0 +1,68 @@ +import Vue from 'vue'; + +async function getGenreList() { + return Vue.axios.get("/creator-admin/audio-content/series/genre"); +} + +async function getSeriesList(page) { + return Vue.axios.get("/creator-admin/audio-content/series?page=" + (page - 1) + "&size=10"); +} + +async function createSeries(formData) { + return Vue.axios.post("/creator-admin/audio-content/series", formData, { + headers: { + "Content-Type": "multipart/form-data", + }, + }); +} + +async function modifySeries(formData) { + return Vue.axios.put("/creator-admin/audio-content/series", formData, { + headers: { + "Content-Type": "multipart/form-data", + }, + }); +} + +async function getSeriesDetail(seriesId) { + return Vue.axios.get("/creator-admin/audio-content/series/" + seriesId); +} + +async function getSeriesContent(seriesId, page) { + return Vue.axios.get( + "/creator-admin/audio-content/series/" + seriesId + "/content?page=" + (page - 1) + "&size=10" + ); +} + +async function searchContentNotInSeries(seriesId, searchWord) { + return Vue.axios.get( + "/creator-admin/audio-content/series/content/search?series_id=" + seriesId + + "&search_word=" + searchWord + ) +} + +async function addingContentToTheSeries(seriesId, contentIdList) { + return Vue.axios.post( + "/creator-admin/audio-content/series/add/content", + {seriesId: seriesId, contentIdList: contentIdList} + ) +} + +async function removeContentInTheSeries(seriesId, contentId) { + return Vue.axios.put( + "/creator-admin/audio-content/series/remove/content", + {seriesId: seriesId, contentId: contentId} + ) +} + +export { + getGenreList, + getSeriesList, + createSeries, + modifySeries, + getSeriesDetail, + getSeriesContent, + addingContentToTheSeries, + removeContentInTheSeries, + searchContentNotInSeries +} diff --git a/src/router/index.js b/src/router/index.js index 9e3d825..caa22eb 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,6 +25,16 @@ const routes = [ name: 'ContentCategoryList', component: () => import(/* webpackChunkName: "content" */ '../views/Content/ContentCategoryList.vue') }, + { + path: '/content/series/list', + name: 'ContentSeriesList', + component: () => import(/* webpackChunkName: "content" */ '../views/Content/ContentSeriesList.vue') + }, + { + path: '/content/series/detail', + name: 'ContentSeriesDetail', + component: () => import(/* webpackChunkName: "content" */ '../views/Content/ContentSeriesDetail.vue') + }, { path: '/calculate/live', name: 'CalculateLive', diff --git a/src/views/Content/ContentCategoryList.vue b/src/views/Content/ContentCategoryList.vue index 12f54dc..5431067 100644 --- a/src/views/Content/ContentCategoryList.vue +++ b/src/views/Content/ContentCategoryList.vue @@ -339,33 +339,6 @@ export default { page: 1, total_page: 0, - - headers: [ - { - text: '커버이미지', - align: 'center', - sortable: false, - value: 'image', - }, - { - text: '제목', - align: 'center', - sortable: false, - value: 'title', - }, - { - text: '19금', - align: 'center', - sortable: false, - value: 'isAdult', - }, - { - text: '관리', - align: 'center', - sortable: false, - value: 'management' - }, - ] } }, diff --git a/src/views/Content/ContentList.vue b/src/views/Content/ContentList.vue index 13424dd..1b990f0 100644 --- a/src/views/Content/ContentList.vue +++ b/src/views/Content/ContentList.vue @@ -617,20 +617,6 @@ - - - - - - - - diff --git a/src/views/Content/ContentSeriesDetail.vue b/src/views/Content/ContentSeriesDetail.vue new file mode 100644 index 0000000..2810713 --- /dev/null +++ b/src/views/Content/ContentSeriesDetail.vue @@ -0,0 +1,517 @@ + + + + + diff --git a/src/views/Content/ContentSeriesList.vue b/src/views/Content/ContentSeriesList.vue new file mode 100644 index 0000000..31cbeb6 --- /dev/null +++ b/src/views/Content/ContentSeriesList.vue @@ -0,0 +1,707 @@ + + + + +