diff --git a/src/main/front/src/App.vue b/src/main/front/src/App.vue index 08429dc..7d28d8d 100644 --- a/src/main/front/src/App.vue +++ b/src/main/front/src/App.vue @@ -5,14 +5,13 @@ import { userApi } from '@/components/userInfo' const router = useRouter() -onMounted(() => { - userApi.loginCheck().then(() => { - if (userInfo.isLogin) { - router.push('/main.html') - } else { - router.replace('/login.html') - } - }) +onMounted(async () => { + const isLogin = await userApi.loginCheck() + if (isLogin) { + router.push('/main.html') + } else { + router.replace('/login.html') + } }) diff --git a/src/main/front/src/components/MessageDataView.vue b/src/main/front/src/components/MessageDataView.vue index 7350780..b94166f 100644 --- a/src/main/front/src/components/MessageDataView.vue +++ b/src/main/front/src/components/MessageDataView.vue @@ -10,8 +10,8 @@ const props = defineProps({ const modalEl = ref(null) let bsModal = null -let dataList = [] -let columnList = [] +let dataList = ref([]) +let columnList = ref([]) onMounted(() => { if (modalEl.value) { @@ -26,8 +26,8 @@ onMounted(() => { onBeforeUnmount(() => { if (bsModal) { bsModal.hide() - dataList = [] - columnList = [] + dataList.value = [] + columnList.value = [] // Bootstrap v5에서는 dispose 지원 if (typeof bsModal.dispose === 'function') { bsModal.dispose() @@ -39,25 +39,31 @@ onBeforeUnmount(() => { function open() { if (bsModal) { if (props.dto.messageData) { - dataList = JSON.parse(props.dto.messageData) - columnList = Object.keys(dataList[0]) + dataList.value = JSON.parse(props.dto.messageData) + columnList.value = Object.keys(dataList.value[0]) } bsModal.show() - console.log(props.dto) } } function close() { if (bsModal) { bsModal.hide() - dataList = [] - columnList = [] + dataList.value = [] + columnList.value = [] } } function excelExport() { - let sheet = XSLX.utils.table_to_sheet(document.getElementById(props.modalId + 'Table')) - XSLX.writeFile(sheet, props.dto.senderPostmanId + '.xlsx') + const table = document.getElementById(props.modalId + 'Table') + if (!table) { + return + } + const workbook = XSLX.utils.book_new() + const sheet = XSLX.utils.table_to_sheet(table, { raw: true }) + XSLX.utils.book_append_sheet(workbook, sheet, 'data') + const fileName = (props.dto && props.dto.senderPostmanId ? props.dto.senderPostmanId : 'interface-messages') + '.xlsx' + XSLX.writeFile(workbook, fileName) } defineExpose({ @@ -69,8 +75,8 @@ defineExpose({ - + diff --git a/src/main/front/src/components/SearchParameterDto.js b/src/main/front/src/components/SearchParameterDto.js index 13039eb..dc725eb 100644 --- a/src/main/front/src/components/SearchParameterDto.js +++ b/src/main/front/src/components/SearchParameterDto.js @@ -10,10 +10,11 @@ SearchParameterDto.prototype.calculatePageList = function (currentPage, currentI this.itemCountPerPage = currentItemCountPerPage this.totalItemCount = currentTotalItemCount if (this.totalItemCount > 0) { - let pageSize = Math.floor(this.totalItemCount / this.itemCountPerPage) + 1 + let pageSize = Math.ceil(this.totalItemCount / this.itemCountPerPage) + 1 + pageSize = pageSize < 1 ? 1 : pageSize this.page = currentPage >= 1 && currentPage <= pageSize ? currentPage : 1 let startPage = Math.floor((this.page - 1) / 10) * 10 + 1 - let lastPage = Math.min(startPage + 10, pageSize) + let lastPage = Math.min(startPage + 9, pageSize) let pageArray = [] for (let i = startPage; i <= lastPage; i++) { pageArray.push(i)