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