qcast-front/src/util/board-utils.js

47 lines
1.1 KiB
JavaScript

import { useAxios } from '@/hooks/useAxios'
// 파일 다운로드
export const handleFileDown = async (file) => {
const { get } = useAxios()
const url = `/api/board/file/download`
const params = new URLSearchParams({
encodeFileNo: file.encodeFileNo,
})
const apiUrl = `${url}?${params.toString()}`
const resultData = await get({ url: apiUrl })
if (resultData) {
const blob = new Blob([resultData])
const fileUrl = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = fileUrl
link.download = file.srcFileNm
document.body.appendChild(link)
link.click()
link.remove()
window.URL.revokeObjectURL(url)
}
}
// 페이지 번호 생성
export const generateBlockPagination = (currentPage, totalPages, pageBlock) => {
const currentBlock = Math.ceil(currentPage / pageBlock)
let startPage = (currentBlock - 1) * pageBlock + 1
let endPage = startPage + pageBlock - 1
if (endPage > totalPages) {
endPage = totalPages
}
let pageArr = []
for (let i = startPage; i <= endPage; i++) {
pageArr.push(i)
}
return pageArr
}