0
点赞
收藏
分享

微信扫一扫

员工管理-增删改查案例——4

沐之轻语 2023-10-16 阅读 40

2、员工的分页条件查询

(1)新建web/employeeList.html(登录页面)

(2)新建web/css/employeeList.css样式文件

(3)新建web/js/data.js文件

(3)具体代码如下:

前端代码

web/employeeList.html文件

<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <title>员工管理</title>
   <link rel="stylesheet" href="./css/common.css">
   <link rel="stylesheet" href="./css/employeeList.css">
   <script src="./js/jquery-2.1.4.min.js"></script>
</head>
<body>
   <div id="tabData">
       <h2 class="title">员工信息列表</h2>
       <div class="top">
           <i><br><br><br></i>
           <!-- 条件查询表单 -->
           <form action="#" class="querySelect">
               用户名:<input class="username" name="username" type="text">
               姓名:<input class="name" name="name" type="text">
               年龄:<input class="age" name="age" type="number">
               籍贯:<input class="hometown" name="hometown" type="text">
               工龄:<input class="workTime" name="workTime" type="number">
               入职日期:<input class="createTime" name="createTime" type="date">
               性别:<select name="sex" class="sex">
                   <option value="0" selected>选择性别</option>
                   <option value="1"></option>
                   <option value="2"></option>
               </select>
               等级:<select name="level" class="level">
                   <option value="0" selected>选择等级</option>
                   <option value="1">特级</option>
                   <option value="2">高级</option>
                   <option value="3">中级</option>
                   <option value="4">初级</option>
               </select>
           </form>

           <p class="other">
               <span onclick="goSavePage(0)">添加员工</span>
               <span onclick="delEmployeesByIds()">批量删除</span>
           </p>

           <p class="formBtn">
               <span onclick="querySelect()">查询</span>
               <span onclick="clearQuery()">清空</span>
           </p>
       </div>

<!-- 数据表格 -->
       <div class="myTable">
           <table border="1" cellspacing="0">
               <thead>
                   <tr class="thead">
                       <td><input type="checkbox"></td>
                       <td>序号</td>
                       <td>员工编号</td>
                       <td style="width: 110px;">用户名</td>
                       <td>角色</td>
                       <td>姓名</td>
                       <td>性别</td>
                       <td>年龄</td>
                       <td>等级</td>
                       <td>简介</td>
                       <td style="width: 130px;">籍贯</td>
                       <td>工龄</td>
                       <td>联系方式</td>
                       <td>入职日期</td>
                       <td>操作</td>
                   </tr>
               </thead>
               <tbody></tbody>
           </table>
       </div>
       <!-- 分页组件 -->
       <div class="page">
           <span class="total"><span></span> </span>
           <p>
               <a href="#" class="firstPage" onclick="toFirstPage()">首页</a>
               <a href="#" class="prePage" onclick="toPrePage()">上一页</a>
               <a href="#" class="currentPage">
                   <span class="current" style="color: #009688;">

</span> / <span class="pages"></span>
               </a>
               <a href="#" class="nextPage" onclick="toNextPage()">下一页</a>
               <a href="#" class="lastPage" onclick="toLastPage()">尾页</a>
               <a href="#" class="limit">
                   <select name="limit" onchange="pageSizeChange()">
                       <option value="5" selected>5 /</option>
                       <option value="10">10 /</option>
                       <option value="15">15 /</option>
                       <option value="20">20 /</option>
                       <option value="30">30 /</option>
                       <option value="50">50 /</option>
                       <option value="100">100 /</option>
                   </select>
               </a>
           </p>
       </div>
   </div>
</body>
<script src="./js/data.js"></script>
</html>

web/css/employeeList.css样式文件

.title {
   text-align: center;
   margin-top: 15px;
   font-size: 22px;
}

.top {
   width: 1330px;
   height: 70px;
   margin: 15px auto;
   border: 1px solid #ddd;
   border-radius: 6px;
   padding: 15px 0 10px 20px;
}

.top i {
   position: absolute;
   font-size: 14px;
   font-style: normal;
   margin: -6px 0 0 -30px;
   color: #009688;
   font-weight: 700;
   background-color: #FFF;
}

/* 条件查询表单 样式 */
.querySelect {
   color: #333;
   font-size: 12px;
}

.querySelect input {
   width: 100px;
   outline: none;
   height: 22px;
   line-height: 22px;
   font-size: 12px;
   color: #333;
   padding-left: 10px;
   margin-right: 15px;
   border: 1px solid #aaa;
}

.querySelect select {
   margin-right: 15px;
   padding: 0 10px;
   height: 28px;
   line-height: 28px;
   font-size: 12px;
   color: #333;
   outline: none;
   text-align: center;
   border: 1px solid #aaa;
}

.formBtn {
   float: right;
   height: 22px;
   line-height: 22px;
   margin: 15px 20px;
}

.formBtn span {
   display: inline-block;
   color: #fff;
   font-size: 12px;
   padding: 0 10px;
   border-radius: 4px;
}

.formBtn span:hover {
   cursor: pointer;
}

.formBtn span:first-child {
   background-color: #009688;
   margin-right: 10px;
}

.formBtn span:last-child {
   background-color: #FF5722;
}

.other {
   float: right;
   height: 22px;
   line-height: 22px;
   margin: 15px 33px;
}

.other span {
   display: inline-block;
   color: #fff;
   font-size: 12px;
   padding: 0 10px;
   border-radius: 4px;
}

.other span:hover {
   cursor: pointer;
}

.other span:first-child {
   background-color: #009688;
   margin-right: 10px;
}

.other span:last-child {
   background-color: #FF5722;
}
/* 数据表格样式 */
.myTable {
   width: 1360px;
   height: 500px;
   overflow-y: auto;
   margin: 20px auto;
}

thead tr {
   background-color: rgba(0, 0, 255, 0.15);
}

thead td {
   padding: 0 10px;
   height: 24px;
   line-height: 24px;
   font-size: 14px;
   text-align: center;
   font-weight: 700;
}

tbody td {
   padding: 5px 8px;
   text-align: center;
   font-size: 14px;
   color: #666;
}

td.intr {
   width: 290px;
   text-align: left;
   font-family: '楷体';
   text-indent: 2em;
}

td span {
   display: block;
   color: #fff;
   font-size: 12px;
   padding: 5px;
   border-radius: 4px;
   margin-bottom: 5px;
}

td span:hover {
   cursor: pointer;
   font-weight: 700;
}

td .edit {
   background-color: #009688;
}

td .del {
   background-color: #FF5722;
}

/* 分页组件 */
.page {
   width: 60%;
   height: 30px;
   line-height: 30px;
   margin: 20px auto 10px;
   text-align: center;
   font-size: 0;
}

.page .total {
   display: inline-block;
   font-size: 14px;
   color: #333;
}

.page p {
   display: inline-block;
   margin: 0 30px;
   font-size: 0;
}

.page p a {
   display: inline-block;
   height: 28px;
   line-height: 28px;
   padding: 0 15px;
   font-size: 14px;
   border: 1px solid #eee;
   color: #333;
}

.page p a {
   border-left: 0;
}

.page p .firstPage {
   border: 1px solid #eee;
}

.page p a:not(.limit):hover {
   background-color: #16baaa;
   color: #fff;
   border-radius: 2px;
}

.page p .limit {
   margin-left: 15px;
   border: 1px solid #eee;
}

.page p .limit:hover {
   border: 1px solid #16baaa;
}

.page p .limit select {
   border: 0;
   outline: none;
}

web/js/data.js文件

let data = null;
/**
* 网页加载完成自动执行
*/
$(document).ready(function () {
   pageSelect();       // 获取数据
   showEmployees();    // 将数据显示到表格、分页组件中
   selectTr();  // 表格数据行的 选中/取消选中
});
/*
   功能:分页查询员工信息
   参数:
       current:当前页
       limit:每页显示记录数
*/
function pageSelect(current = 1, limit = 5) {
   // 通过ajax请求服务端数据
   $.ajax({
       async: false,
       type: "post",
       url: `http://localhost:8080/pageSelect?current=${current}&limit=${limit}`,
       data: {
           username: $('.querySelect .username').val(),
           name: $('.querySelect .name').val(),
           age: $('.querySelect .age').val(),
           hometown: $('.querySelect .hometown').val(),
           workTime: $('.querySelect .workTime').val(),
           createTime: $('.querySelect .createTime').val(),
           sex: $('.querySelect .sex').val(),
           level: $('.querySelect .level').val()
       },
       success: function (res) {
           let obj = JSON.parse(res);
           data = obj;
       }
   });
}
/**
* 显示员工信息到数据表格中
*/
function showEmployees() {
   $('.formData').hide();  // 隐藏 添加员工/修改员工 的 form 表单
   $('#tabData').show();
   $('#tabData table tbody').empty();
   let str = "";
   if (data.code == 200) {
       let array = data.rows;  // 获取表格中的显示数据
       for (let i = 0; i < array.length; i++) {
           str += `<tr>`
           str += `<td><input type="checkbox" name="empID" value="${array[i].id}"></td>`
           str += `<td>${i + 1}</td>
       <td>${array[i].id}</td>
       <td>${array[i].username}</td>`;
           str += `<td>${array[i].role == 1 ? '管理员' : '普通员工'}</td>`;
           str += `<td>${array[i].name}</td>`;
           str += `<td>${array[i].sex == 1 ? '' : ''}</td>`;
           str += `<td>${array[i].age}</td>`;
           if (array[i].level == 1) {
               str += `<td>特级</td>`;
           } else if (array[i].level == 2) {
               str += `<td>高级</td>`;
           } else if (array[i].level == 3) {
               str += `<td>中级</td>`;
           } else {
               str += `<td>初级</td>`;
           }
           str += `<td class="intr">${array[i].introduction}</td>
       <td>${array[i].hometown}</td>
       <td>${array[i].workTime}</td>
       <td>${array[i].phone}</td>
       <td>${array[i].createTime}</td>
       <td>
           <span class="edit" onclick="goSavePage(${array[i].id})">编辑</span>
           <span class="del" onclick="deleteEmp(${array[i].id})">删除</span>
       </td>`;
           str += `</tr>`;
       }
       $('.page .total span').text(data.total);
       $('.page .current').text(data.current);
       $('.page .pages').text(data.pages);
       $('.page').show();
   } else {
       str += `<tr><td align='center' colspan='15'>暂无数据</td></tr>`;
       $('.page').hide();
   }
   $('#tabData table tbody').html(str);
}
/**
* 条件查询
*/
function querySelect() {
   let limit = parseInt($('.page .limit select').val());
   pageSelect(1, limit);
   showEmployees();
}
/**
* 清空条件查询表单
*/
function clearQuery() {
   let values = $('.querySelect input');
   for (let i = 0; i < values.length; i++) {
       $(values[i]).val("");
   }
   $('.querySelect .sex').find('option').eq(0).prop("selected", true);
   $('.querySelect .level').find('option').eq(0).prop("selected", true);

   let limit = parseInt($('.page .limit select').val());
   pageSelect(1, limit);
   showEmployees();
}
/**
* 跳转至首页
*/
function toFirstPage() {
   let limit = parseInt($('.page .limit select').val());
   pageSelect(1, limit);
   showEmployees();
}
/**
* 跳转至尾页
*/
function toLastPage() {
   let current = parseInt($('.page .pages').text());
   let limit = parseInt($('.page .limit select').val());
   pageSelect(current, limit);
   showEmployees();
}
/**
* 跳转至上一页
*/
function toPrePage() {
   let current = parseInt($('.page .current').text());
   let limit = parseInt($('.page .limit select').val());
   current = current <= 1 ? 1 : current - 1;
   pageSelect(current, limit);
   showEmployees();
}
/**
* 跳转至下一页
*/
function toNextPage() {
   let current = parseInt($('.page .current').text());
   let pages = parseInt($('.page .pages').text());
   let limit = parseInt($('.page .limit select').val());
   current = current >= pages ? pages : current + 1;
   pageSelect(current, limit);
   showEmployees();
}
/**
* 每页记录数发生变化
*/
function pageSizeChange() {
   let limit = parseInt($('.page .limit select').val());
   pageSelect(1, limit);
   showEmployees();

}
/**
* 表格数据行的 全部选中/全部取消 效果
*/
function selectAll() {
   $(".thead input").click(function () {
       let items = $("input[name=empID]");
       for (let i = 0; i < items.length; i++) {
           items[i].checked = this.checked;
       }
       if (this.checked) {
           $("tbody tr").css('background-color', 'rgba(0,0,0,0.15)');
       } else {
           $("tbody tr").css('background-color', '#fff');
       }
   });

}
/**
* 表格数据行的 选中/取消选中
*/
function selectTr() {
   let array = $("tbody input");
   for (let i = 0; i < array.length; i++) {
       $(array[i]).click(function () {
           let index = i;
           if (this.checked) {
               $("tbody tr").eq(index).css('background', 'rgba(0,0,0,0.15)');
           } else {
               $("tbody tr").eq(index).css('background', '#fff');
           }
       })
   }
}

举报

相关推荐

0 条评论