test #77

Merged
klaus merged 2 commits from test into main 2025-09-18 19:42:41 +00:00
2 changed files with 45 additions and 5 deletions
Showing only changes of commit a4cf43b88a - Show all commits

View File

@@ -7,13 +7,20 @@ async function getCharacterList(page = 1, size = 20) {
}) })
} }
// 캐릭터 검색 // 캐릭터 검색 (배너용 기존 함수)
async function searchCharacters(searchTerm, page = 1, size = 20) { async function searchCharacters(searchTerm, page = 1, size = 20) {
return Vue.axios.get('/admin/chat/banner/search-character', { return Vue.axios.get('/admin/chat/banner/search-character', {
params: { searchTerm, page: page - 1, size } 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) { async function getCharacter(id) {
return Vue.axios.get(`/admin/chat/character/${id}`) return Vue.axios.get(`/admin/chat/character/${id}`)
@@ -257,6 +264,7 @@ async function getCharacterCalculateList({ startDateStr, endDateStr, sort = 'TOT
export { export {
getCharacterList, getCharacterList,
searchCharacters, searchCharacters,
searchCharacterList,
getCharacter, getCharacter,
createCharacter, createCharacter,
updateCharacter, updateCharacter,

View File

@@ -9,7 +9,7 @@
<br> <br>
<v-container> <v-container>
<v-row> <v-row align="center">
<v-col cols="4"> <v-col cols="4">
<v-btn <v-btn
color="primary" color="primary"
@@ -19,6 +19,29 @@
캐릭터 추가 캐릭터 추가
</v-btn> </v-btn>
</v-col> </v-col>
<v-col
cols="8"
class="d-flex justify-end align-center"
>
<v-text-field
v-model="searchTerm"
label="검색어"
placeholder="캐릭터명, 태그, mbti 검색"
outlined
dense
hide-details
style="max-width: 320px;"
class="mr-2"
@keyup.enter="onSearch"
/>
<v-btn
:style="{ backgroundColor: '#3bb9f1', color: 'white' }"
:disabled="is_loading"
@click="onSearch"
>
검색
</v-btn>
</v-col>
</v-row> </v-row>
<v-row> <v-row>
<v-col> <v-col>
@@ -244,7 +267,7 @@
</template> </template>
<script> <script>
import { getCharacterList, updateCharacter } from '@/api/character' import { getCharacterList, updateCharacter, searchCharacterList } from '@/api/character'
export default { export default {
name: "CharacterList", name: "CharacterList",
@@ -260,7 +283,8 @@ export default {
page: 1, page: 1,
total_page: 0, total_page: 0,
characters: [], characters: [],
selected_character: {} selected_character: {},
searchTerm: ''
} }
}, },
@@ -369,10 +393,18 @@ export default {
await this.getCharacters() await this.getCharacters()
}, },
onSearch() {
this.page = 1;
this.getCharacters();
},
async getCharacters() { async getCharacters() {
this.is_loading = true this.is_loading = true
try { try {
const response = await getCharacterList(this.page); const hasSearch = this.searchTerm && this.searchTerm.trim() !== '';
const response = hasSearch
? await searchCharacterList(this.searchTerm.trim(), this.page, 20)
: await getCharacterList(this.page);
if (response && response.status === 200) { if (response && response.status === 200) {
if (response.data.success === true) { if (response.data.success === true) {