페이징 작업을 해야해서 찾아봤다.
모르겠다.
고로 만든다.
var pageNum = 1,
pageCount= 10,
pageNumCount = 5,
startPageNum = 1,
endPageNum = 5,
pageLimit = 5;
var authSettings = new Vue({
el: '#contents',
data: {
accessLogList : [],
pageNum : 0
},
mounted(){
searchList();
},
methods: {
firstPage:function(){
pageNum = 1;
startPageNum = 1;
endPageNum = pageNumCount;
contentsVue.pageNum=pageNum;
},
prevPage:function(){
if(startPageNum < pageNum){
pageNum = pageNum -1;
contentsVue.pageNum=pageNum;
}else if(startPageNum==pageNum&&startPageNum!=1){
pageNum = pageNum - pageNumCount;
startPageNum = startPageNum - pageNumCount;
endPageNum = startPageNum + pageNumCount -1;
contentsVue.pageNum=pageNum;
}
},
nextPage:function(){
if(pageNum < endPageNum&&pageNum!=pageLimit){
pageNum = pageNum + 1;
contentsVue.pageNum=pageNum;
}else if(endPageNum==pageNum && endPageNum != pageLimit){
pageNum = pageNum + 1;
startPageNum = pageNum;
endPageNum = endPageNum + pageNumCount;
contentsVue.pageNum=pageNum;
}
},
lastPage:function(){
pageNum = pageLimit;
startPageNum = parseInt(pageLimit/pageNumCount)*pageNumCount + 1;
endPageNum = pageLimit;
contentsVue.pageNum = pageNum;
},
},
watch:{
pageNum:function(){
searchList()
}
}
});
function clickPageNum(index){
pageNum = index;
authSettings.pageNum = pageNum;
}
function searchList(){
$.ajax({
url: '/myasset/mypage/getAccessLog',
type: 'POST',
dataType: 'json',
data: {
pageNum: pageNum,
startDate: startDate,
endDate: endDate
},
error: function (data, status, error) {
console.log("에러 >> " + JSON.stringify(data));
},
success: function (data, textStatus) {
console.log(data);
if(data.size!=0){
$(data.list).each(function(index, item){
item.index = index+(pageNum-1)*10+1;
let temp = item.dateTime;
item.dateTime = temp.substr(0,4)+"-"+temp.substr(4,2)+'-'+temp.substr(6,2)
});
authSettings.accessLogList = data.list;
pageLimit = Math.ceil(data.size/pageCount);
pagination(pageLimit, pageNum);
}
}
})
}
function pagination(pageSize,selectedNum){
let innerHtml = '';
let pageNumTemplate = $('#pageNumTemplate').html();
for(let i=startPageNum;i<pageSize+1;i++){
if(i==selectedNum){
innerHtml += pageNumTemplate.replace('paging','paging active').replaceAll('{{i}}',i);
} else{
innerHtml += pageNumTemplate.replaceAll('{{i}}',i);
}
if(i==endPageNum){
break;
}
}
$('#pageNumDiv').html(innerHtml);
}
<div class="btn-pagination">
<a class="paging first" href="javascript:void(0)" data-index=""><i class="icon-paging-first"></i></a>
<a class="paging prev" href="javascript:void(0)" data-index="" @click="prevPage"><i class="icon-paging-prev"></i></a>
<div id="pageNumDiv"></div>
<a class="paging next" href="javascript:void(0)" data-index="" @click="nextPage"><i class="icon-paging-next"></i></a>
<a class="paging last" href="javascript:void(0)" data-index=""><i class="icon-paging-last"></i></a>
</div>
<script id="pageNumTemplate" type="template/text">
<a class="paging" href="javascript:void(0);clickPageNum({{i}});" data-index="{{i}}">{{i}}</a>
</script>
'JS' 카테고리의 다른 글
Vue 필터 (0) | 2022.02.18 |
---|---|
Vue.js v-for에 click 이벤트 만들기. 링크 (0) | 2022.02.07 |
jQuery or Vue Sorting (0) | 2022.01.26 |
분리된 JS 파일에 파라미터 넘기고 받기. (0) | 2022.01.18 |
Jqeury $().text시 내부 태그 삭제. (0) | 2022.01.11 |