|
6 | 6 |
|
7 | 7 | <template #listCards> |
8 | 8 | <LoginLogsListCard |
9 | | - v-for="info in DUMMY_LOGIN_LOGS_LIST_DATA" |
| 9 | + v-for="info in data?.content" |
10 | 10 | :key="info.logId" |
11 | 11 | :info="info" /> |
| 12 | + <NoContent v-if="data?.content.length === 0" /> |
12 | 13 | </template> |
13 | 14 |
|
14 | 15 | <template #pagination> |
15 | 16 | <ListPagination |
16 | | - :page-number="params.page" |
17 | | - :total-page="DUMMY_TOTAL_PAGE" |
| 17 | + :page-number="params.page + 1" |
| 18 | + :total-page="totalPage || 0" |
18 | 19 | @update:page-number="onPageChange" /> |
19 | 20 | </template> |
20 | 21 | </ListContainer> |
|
23 | 24 | <script setup lang="ts"> |
24 | 25 | import ListPagination from '../lists/ListPagination.vue' |
25 | 26 | import ListContainer from '../lists/ListContainer.vue' |
26 | | -import { DUMMY_LOGIN_LOGS_LIST_DATA } from '@/datas/dummy' |
27 | | -import { useRequestParamsStore } from '@/stores/params' |
| 27 | +import { useLogsParamsStore } from '@/stores/params' |
28 | 28 | import LoginLogsListBar from './LoginLogsListBar.vue' |
29 | 29 | import LoginLogsListCard from './LoginLogsListCard.vue' |
| 30 | +import { axiosInstance } from '@/utils/axios' |
| 31 | +import { useQuery } from '@tanstack/vue-query' |
| 32 | +import { computed } from 'vue' |
| 33 | +import type { LoginLogsResponse } from '@/types/admin' |
| 34 | +import NoContent from '../lists/NoContent.vue' |
30 | 35 |
|
31 | | -const { params } = useRequestParamsStore() |
32 | | -const DUMMY_TOTAL_PAGE = 18 |
| 36 | +const { params } = useLogsParamsStore() |
33 | 37 | const onPageChange = (value: number) => { |
34 | 38 | params.page = value |
35 | 39 | } |
36 | 40 |
|
37 | | -// Data Handling |
| 41 | +const fetchLoginLogsList = async () => { |
| 42 | + const response = await axiosInstance.get('/api/managements/logs/login', { |
| 43 | + params: { |
| 44 | + ...params, |
| 45 | + logStatus: params.logStatus.join(',') |
| 46 | + } |
| 47 | + }) |
| 48 | + return response.data |
| 49 | +} |
| 50 | +
|
| 51 | +const { data } = useQuery<LoginLogsResponse>({ |
| 52 | + queryKey: ['loginLogs', params], |
| 53 | + queryFn: fetchLoginLogsList |
| 54 | +}) |
| 55 | +
|
| 56 | +const totalPage = computed(() => { |
| 57 | + return data.value?.totalPages |
| 58 | +}) |
38 | 59 | </script> |
0 commit comments