From 23acbd6af3cbdf745e73d6e0290e65188f0b298d Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Thu, 5 Feb 2026 18:02:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20-=20=EC=BB=A4=EB=B2=84=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 11 + package.json | 1 + src/api/audio_content.js | 8 +- src/views/Content/ContentList.vue | 447 +++++++++++++++++++++--------- 4 files changed, 332 insertions(+), 135 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3759ea..f908cfc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "core-js": "^3.6.5", + "cropperjs": "^1.5.13", "file-saver": "^2.0.5", "lodash": "^4.17.21", "vue": "^2.6.11", @@ -4907,6 +4908,11 @@ "sha.js": "^2.4.8" } }, + "node_modules/cropperjs": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.13.tgz", + "integrity": "sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==" + }, "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -19708,6 +19714,11 @@ "sha.js": "^2.4.8" } }, + "cropperjs": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.13.tgz", + "integrity": "sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==" + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", diff --git a/package.json b/package.json index 8707b7b..f9e8f84 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "core-js": "^3.6.5", + "cropperjs": "^1.5.13", "file-saver": "^2.0.5", "lodash": "^4.17.21", "vue": "^2.6.11", diff --git a/src/api/audio_content.js b/src/api/audio_content.js index adf292a..1946b05 100644 --- a/src/api/audio_content.js +++ b/src/api/audio_content.js @@ -15,8 +15,12 @@ async function searchAudioContent(searchWord, page) { ) } -async function modifyAudioContent(request) { - return Vue.axios.put("/admin/audio-content", request) +async function modifyAudioContent(formData) { + return Vue.axios.put("/admin/audio-content", formData, { + headers: { + "Content-Type": "multipart/form-data" + } + }) } async function getBannerList(tabId) { diff --git a/src/views/Content/ContentList.vue b/src/views/Content/ContentList.vue index 9032984..c900ecd 100644 --- a/src/views/Content/ContentList.vue +++ b/src/views/Content/ContentList.vue @@ -125,7 +125,13 @@ :lines="3" /> - + {{ item.creatorNickname }} {{ item.theme }} - + - {{ item.totalContentCount - item.remainingContentCount }} / {{ item.totalContentCount }} + {{ item.totalContentCount - item.remainingContentCount }} / + {{ item.totalContentCount }} Sold Out @@ -233,9 +260,60 @@ persistent > - - 콘텐츠 수정 - + 콘텐츠 수정 + + + + 커버 이미지 + + + + + + + + + + +
+ +
+ + 크롭 적용 + + + 취소 + +
+
+
@@ -373,16 +451,18 @@ - +