$(document).ready(function () {
var status = 0;
var currentPage = 1; // 定义变量,用于存储当前的页码
var pageSize = 20; // 定义变量,用于存储当前页条数
var totalPages = 0;
var pageData = []
// 渲染分页按钮
function renderPagination() {
const pageNumbers = $('#page-numbers');
pageNumbers.empty();
// 总页数小于等于 7 时,显示所有页码
if (totalPages <= 7) {
for (let i = 1; i <= totalPages; i++) {
pageNumbers.append(`${i}`);
}
} else {
// 总页数大于 7 时,显示部分页码并用省略号代替
if (currentPage <= 4) {
// 前 5 页 + 省略号 + 最后一页
for (let i = 1; i <= 5; i++) {
pageNumbers.append(`${i}`);
}
pageNumbers.append('...');
pageNumbers.append(`${totalPages}`);
} else if (currentPage >= totalPages - 3) {
// 第一页 + 省略号 + 最后 5 页
pageNumbers.append('1');
pageNumbers.append('...');
for (let i = totalPages - 4; i <= totalPages; i++) {
pageNumbers.append(`${i}`);
}
} else {
// 第一页 + 省略号 + 当前页及前后两页 + 省略号 + 最后一页
pageNumbers.append('1');
pageNumbers.append('...');
for (let i = currentPage - 2; i <= currentPage + 2; i++) {
pageNumbers.append(`${i}`);
}
pageNumbers.append('...');
pageNumbers.append(`${totalPages}`);
}
}
// 绑定页码点击事件
pageNumbers.find('span').click(function () {
const page = parseInt($(this).text());
if (!isNaN(page)) {
currentPage = page;
getRenderData();
}
});
if(totalPages>0){
$(".pagination").removeClass('hide');
}else{
$(".pagination").addClass('hide');
}
}
// 初始化渲染
getRenderData();
function getRenderData(){
$.ajax({
type: "post",
dataType: 'json',
url: '/index/ajax_user_list',
data: {
currentPage,
pageSize
},
success: function (res) {
if(!res.status){
alert(`请求失败`);
}
renderData(res.data)
}
})
}
function renderData(data){
totalPages = data.last_page;
var pageData = data.list
$('#tbody-wrap').empty()
renderList()
var html = '';
pageData.forEach((item)=>{
html += `
${item.nickname} |
${item.realname} |
${item.addtime} |
|
`
$('#tbody-wrap').html(html)
})
renderPagination()
}
// 当文档加载完成后执行以下函数
function renderList() {
function createPagination(currentPage, totalPages) {
var paginationHtml = ""; // 初始化一个字符串,用于存放分页条的HTML代码
// 如果当前页不是第一页,则生成一个“上一页”按钮
// if (currentPage > 1) {
paginationHtml += "<";
// }
// 始终显示第一页的页码
paginationHtml += generatePageNumberHtml(1, currentPage);
// 如果总页数大于1页,则继续生成分页条的其余部分
if (totalPages > 1) {
// 如果当前页码大于3,则在第一页和当前页之间添加省略号
if (currentPage > 3) {
paginationHtml += "...";
}
// 遍历当前页附近的页码,并生成对应的分页按钮
for (
let i = Math.max(currentPage - 2, 2); i <= Math.min(currentPage + 2, totalPages - 1); i++
) {
paginationHtml += generatePageNumberHtml(i, currentPage);
}
// 如果当前页码小于总页数减去2,则在当前页和最后一页之间添加省略号
if (currentPage < totalPages - 2) {
paginationHtml += "...";
}
}
// 始终显示最后一页的页码
paginationHtml += generatePageNumberHtml(totalPages, currentPage);
// 如果当前页不是最后一页,则生成一个“下一页”按钮
if (currentPage < totalPages) {
paginationHtml += ">";
}
// 返回生成的分页条HTML字符串
return paginationHtml;
}
// 创建分页条的函数
// 生成单个页码按钮的HTML的函数
function generatePageNumberHtml(pageNumber, currentPage) {
// 返回一个格式化后的HTML字符串,包含激活状态的判断
return (
'' +
pageNumber +
""
);
}
// 选择页码的函数
function selectPage(pageNumber) {
// 更新当前页码的变量,并重新生成分页条
currentPage = pageNumber;
$("#pagination").html(createPagination(currentPage, totalPages));
}
// 为分页条上的每个按钮绑定点击事件
$("#pagination").on("click", "li", function (event) {
let pageNumber = $(this).text(); // 获取点击的页码或按钮文本
// 如果点击的是省略号,则不执行任何操作
if (pageNumber === "...") {
event.preventDefault();
return;
}
// 根据点击的按钮,调用selectPage函数更新当前页码
if (pageNumber === "<") {
if (currentPage < 2) {
return
}
selectPage(currentPage - 1);
} else if (pageNumber === ">") {
// if(currentPage <2){
// return
// }
selectPage(currentPage + 1);
} else {
selectPage(parseInt(pageNumber));
}
});
// 初始化分页条,总页数为20,默认显示第一页
$("#pagination").html(createPagination(currentPage, totalPages));
}
// 上一页
$('#prev-page').click(function () {
if (currentPage > 1) {
currentPage--;
getRenderData();
}
});
// 下一页
$('#next-page').click(function () {
if (currentPage < totalPages) {
currentPage++;
getRenderData();
}
});
// 跳转到指定页
$('#go-to-page').click(function () {
const page = parseInt($('#jump-to-page').val());
if (page >= 1 && page <= totalPages) {
currentPage = page;
getRenderData();
} else {
alert(`请输入有效的页码(1-${totalPages})`);
}
});
let currentRow = null;
// 显示操作图标
$('tr').hover(
function () {
$(this).find('.action-icon').show();
},
function () {
$(this).find('.action-icon').hide();
}
);
// 点击编辑图标
$('#tbody-wrap').on('click','.action-icon',function () {
const row = $(this).closest('tr');
currentRow = row;
const cell = row.find('td').eq(1); // 编辑第2列数据
const currentValue = cell.text();
$('#editInput').val(currentValue);
$('#editPopover').css({
top: row.offset().top - $('#editPopover').height() - row.height(),
left: cell.offset().left - Math.ceil($('#editPopover').width() /2)
}).show();
});
// 确认修改
$('#confirmBtn').click(function () {
const newValue = $('#editInput').val();
if (newValue && currentRow) {
const id = currentRow.data('id');
const realname = newValue;
$.ajax({
type: "post",
dataType: 'json',
url: '/index/ajax_change_user',
data: {
id,
realname
},
success: function (res) {
if(!res.status){
alert(res.info);
}else{
currentRow.find('td').eq(1).html(newValue+'
');
}
$('#editPopover').hide();
}
})
}
});
// 取消修改
$('#cancelBtn').click(function () {
$('#editPopover').hide();
});
//Switch 开关切换
$('#tbody-wrap').on('change','.switch input',function () {
const that = $(this);
const row = that.closest('tr');
const isChecked = that.is(':checked');
const id = row.data('id');
const status = isChecked ? '1' : '2';
$.ajax({
type: "post",
dataType: 'json',
url: '/index/ajax_change_user',
data: {
id,
status
},
success: function (res) {
if(!res.status){
alert(res.info);
if(isChecked){
that.prop('checked', false)
}else{
that.prop('checked', true)
}
}
}
})
});
checkAddNewBtn();
function checkAddNewBtn(){
if($('#bind_id').val().length>0){
$('.addChildNumWrap, .modal-overlay').fadeIn();
}
}
$('.addNewBtn').click(function () {
$('.addChildNumWrap, .modal-overlay').fadeIn();
});
$('.cancelBtn').click(function(){
$('.addChildNumWrap, .modal-overlay').fadeOut();
if(!$('.scanSuccess').hasClass('hide')){
setTimeout(function (){ window.location.href = '/index/user_list'},1000)
}
})
$('.confirmBtn').click(function(){
const id = $('#bind_id').val();
const realname = $('#bind_realname').val();
$.ajax({
type: "post",
dataType: 'json',
url: '/index/ajax_change_user',
data: {
id,
realname
},
success: function (res) {
if(!res.status){
alert(res.info);
}
$('.addChildNumWrap, .modal-overlay').fadeOut();
setTimeout(function (){ window.location.href = '/index/user_list'},1000)
}
})
})
})