diff --git a/src/api/character.js b/src/api/character.js
index 9986da2..394c923 100644
--- a/src/api/character.js
+++ b/src/api/character.js
@@ -7,13 +7,20 @@ async function getCharacterList(page = 1, size = 20) {
})
}
-// 캐릭터 검색
+// 캐릭터 검색 (배너용 기존 함수)
async function searchCharacters(searchTerm, page = 1, size = 20) {
return Vue.axios.get('/admin/chat/banner/search-character', {
params: { searchTerm, page: page - 1, size }
})
}
+// 캐릭터 리스트 검색 (요구사항: /admin/chat/character/search)
+async function searchCharacterList(searchTerm, page = 1, size = 20) {
+ return Vue.axios.get('/admin/chat/character/search', {
+ params: { searchTerm, page: page - 1, size }
+ })
+}
+
// 캐릭터 상세 조회
async function getCharacter(id) {
return Vue.axios.get(`/admin/chat/character/${id}`)
@@ -257,6 +264,7 @@ async function getCharacterCalculateList({ startDateStr, endDateStr, sort = 'TOT
export {
getCharacterList,
searchCharacters,
+ searchCharacterList,
getCharacter,
createCharacter,
updateCharacter,
diff --git a/src/api/original.js b/src/api/original.js
index 7844b3f..8969011 100644
--- a/src/api/original.js
+++ b/src/api/original.js
@@ -1,6 +1,6 @@
import Vue from 'vue';
-// 공통: 빈 문자열 -> null
+// 공통: 값 그대로 전달 (빈 문자열 유지)
function toNullIfBlank(value) {
if (typeof value === 'string') {
return value.trim() === '' ? null : value;
@@ -25,7 +25,12 @@ export async function createOriginal(data) {
category: toNullIfBlank(data.category),
isAdult: !!data.isAdult,
description: toNullIfBlank(data.description),
- originalLink: toNullIfBlank(data.originalLink)
+ originalLink: toNullIfBlank(data.originalLink), // 원천 원작 링크
+ originalWork: toNullIfBlank(data.originalWork),
+ writer: toNullIfBlank(data.writer),
+ studio: toNullIfBlank(data.studio),
+ originalLinks: Array.isArray(data.originalLinks) ? data.originalLinks : [],
+ tags: Array.isArray(data.tags) ? data.tags : []
};
formData.append('request', JSON.stringify(request));
return Vue.axios.post('/admin/chat/original/register', formData, {
@@ -39,12 +44,7 @@ export async function updateOriginal(data, image = null) {
if (image) formData.append('image', image);
const processed = {};
Object.keys(data).forEach(key => {
- const value = data[key];
- if (typeof value === 'string' || value === '') {
- processed[key] = toNullIfBlank(value)
- } else {
- processed[key] = value
- }
+ processed[key] = data[key];
})
formData.append('request', JSON.stringify(processed));
return Vue.axios.put('/admin/chat/original/update', formData, {
diff --git a/src/views/Chat/CharacterList.vue b/src/views/Chat/CharacterList.vue
index 31f872d..117c5c4 100644
--- a/src/views/Chat/CharacterList.vue
+++ b/src/views/Chat/CharacterList.vue
@@ -9,7 +9,7 @@
-
+
+
+
+
+ 검색
+
+
@@ -244,7 +267,7 @@