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 @@
+
+
+
+
+
+
+