From 1082c9334f113f9d1eaa6369c1c038c1a8da83b1 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Tue, 23 Apr 2024 00:18:32 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D/=EC=88=98=EC=A0=95/=EC=82=AD=EC=A0=9C=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 19 + package.json | 1 + src/api/audio_content_series.js | 60 +++ src/router/index.js | 5 + src/views/Content/ContentSeriesList.vue | 684 ++++++++++++++++++++++++ 5 files changed, 769 insertions(+) create mode 100644 src/api/audio_content_series.js create mode 100644 src/views/Content/ContentSeriesList.vue 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..304c8c8 --- /dev/null +++ b/src/api/audio_content_series.js @@ -0,0 +1,60 @@ +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 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.post( + "/creator-admin/audio-content/series/remove/content", + {seriesId: seriesId, contentId: contentId} + ) +} + +export { + getGenreList, + getSeriesList, + createSeries, + modifySeries, + getSeriesDetail, + getSeriesContent, + addingContentToTheSeries, + removeContentInTheSeries +} diff --git a/src/router/index.js b/src/router/index.js index 9e3d825..11ad3fc 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,6 +25,11 @@ 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: '/calculate/live', name: 'CalculateLive', diff --git a/src/views/Content/ContentSeriesList.vue b/src/views/Content/ContentSeriesList.vue new file mode 100644 index 0000000..30a9c6b --- /dev/null +++ b/src/views/Content/ContentSeriesList.vue @@ -0,0 +1,684 @@ + + + + +