Files
HRS/SMMS/WebContent/view/studentList.jsp

557 lines
21 KiB
Plaintext
Raw Normal View History

2026-04-01 07:43:05 +08:00
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta charset="UTF-8">
<title>学生列表</title>
<link rel="stylesheet" type="text/css" href="static/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="static/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="static/easyui/css/demo.css">
<script type="text/javascript" src="static/easyui/jquery.min.js"></script>
<script type="text/javascript" src="static/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/easyui/js/validateExtends.js"></script>
<script type="text/javascript">
$(function() {
//datagrid初始化
$('#dataList').datagrid({
title:'学生列表',
iconCls:'icon-more',//图标
border: true,
collapsible:false,//是否可折叠的
fit: true,//自动大小
method: "post",
url:"StudentServlet?method=StudentList&t="+new Date().getTime(),
idField:'studentId',
singleSelect:false,//是否单选
pagination:true,//分页控件
rownumbers:true,//行号
sortName:'studentId',
sortOrder:'DESC',
remoteSort: false,
columns: [[
{field:'chk',checkbox: true,width:50},
{field:'studentId',title:'ID',width:50, sortable: true},
{field:'number',title:'学号',width:150, sortable: true},
{field:'name',title:'姓名',width:80},
{field:'sex',title:'性别',width:50,
formatter: function(value,row,index){
if (row.sex == '0') {
return '男';
}
return '女';
}
},
{field:'phone',title:'联系方式',width:120},
{field:'birthday',title:'生日',width:130},
{field:'major',title:'专业',width:100},
{field:'honor',title:'荣誉',width:150},
{field:'scoreNow',title:'本周学分',width:80},
{field:'clazzId',title:'班级',width:130,
formatter: function(value,row,index){
if (row.clazzId){
var clazzList = $("#clazzList").combobox("getData");
for(var i=0;i<clazzList.length;i++ ){
if(row.clazzId == clazzList[i].id)return clazzList[i].clazzName;
}
return row.clazzId;
} else {
return 'not found';
}
}
},
]],
toolbar: "#toolbar",
onBeforeLoad : function(){
try{
$("#clazzList").combobox("getData")
}catch(err){
preLoadClazz();
}
}
});
//设置分页控件
var p = $('#dataList').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数默认为10
pageList: [10,20,30,50,100],//可以设置每页记录条数的列表
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录',
});
//设置工具类按钮
$("#add").click(function(){
$("#addDialog").dialog("open");
});
//修改
$("#edit").click(function(){
var selectRows = $("#dataList").datagrid("getSelections");
if(selectRows.length != 1){
$.messager.alert("消息提醒", "请选择一条数据进行操作!", "warning");
} else{
$("#editDialog").dialog("open");
}
});
//删除
$("#delete").click(function(){
var selectRows = $("#dataList").datagrid("getSelections");
var selectLength = selectRows.length;
if(selectLength == 0){
$.messager.alert("消息提醒", "请选择数据进行删除!", "warning");
} else{
var numbers = [];
$(selectRows).each(function(i, row){
numbers[i] = row.sn;
});
var studentIds = [];
$(selectRows).each(function(i, row){
studentIds[i] = row.studentId;
});
var userIds = [];
$(selectRows).each(function(i, row){
userIds[i] = row.userId;
});
$.messager.confirm("消息提醒", "将删除与学生相关的所有数据(包括成绩),确认继续?", function(r){
if(r){
$.ajax({
type: "post",
url: "StudentServlet?method=DeleteStudent",
data: {userIds: userIds, studentIds: studentIds},
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","删除成功!","info");
//刷新表格
$("#dataList").datagrid("reload");
$("#dataList").datagrid("uncheckAll");
} else{
$.messager.alert("消息提醒","删除失败!","warning");
return;
}
}
});
}
});
}
});
function preLoadClazz(){
$("#clazzList").combobox({
width: "150",
height: "25",
valueField: "id",
textField: "clazzName",
multiple: false, //可多选
editable: false, //不可编辑
method: "post",
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onChange: function(newValue, oldValue){
}
});
}
//下拉框通用属性
$("#add_clazzList, #edit_clazzList").combobox({
width: "200",
height: "30",
valueField: "id",
textField: "clazzName",
multiple: false, //可多选
editable: false, //不可编辑
method: "post",
});
$("#add_clazzList").combobox({
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onLoadSuccess: function(){
//默认选择第一条数据
var data = $(this).combobox("getData");;
$(this).combobox("setValue", data[0].id);
}
});
$("#edit_clazzList").combobox({
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onLoadSuccess: function(){
//默认选择第一条数据
var data = $(this).combobox("getData");
$(this).combobox("setValue", data[0].id);
}
});
//设置添加学生窗口
$("#addDialog").dialog({
title: "添加学生",
width: 650,
height: 460,
iconCls: "icon-add",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'添加',
plain: true,
iconCls:'icon-user_add',
handler:function(){
var validate = $("#addForm").form("validate");
if(!validate){
$.messager.alert("消息提醒","请检查你输入的数据!","warning");
return;
} else{
var clazzid = $("#add_clazzList").combobox("getValue");
$.ajax({
type: "post",
url: "StudentServlet?method=AddStudent",
data: $("#addForm").serialize(),
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","添加成功!","info");
//关闭窗口
$("#addDialog").dialog("close");
//清空原表格数据
$("#add_name").textbox('setValue', "");
$("#add_sex").textbox('setValue', "男");
$("#add_userName").textbox('setValue', "");
$("#add_number").textbox('setValue', "");
$("#add_phone").textbox('setValue', "");
$("#add_clazzList").textbox('setValue', "");
$("#add_major").textbox('setValue', "");
$("#add_honor").textbox('setValue', "");
$("#add_birthday").textbox('setValue', "");
$("#add_scoreNow").textbox('setValue', "");
//重新刷新页面数据
$('#dataList').datagrid("options").queryParams = {clazzid: clazzid};
$('#dataList').datagrid("reload");
} else{
$.messager.alert("消息提醒","添加失败!","warning");
return;
}
}
});
}
}
},
{
text:'重置',
plain: true,
iconCls:'icon-reload',
handler:function(){
$("#add_name").textbox('setValue', "");
$("#add_sex").textbox('setValue', "男");
$("#add_userName").textbox('setValue', "");
$("#add_number").textbox('setValue', "");
$("#add_phone").textbox('setValue', "");
$("#add_clazzList").textbox('setValue', "");
$("#add_major").textbox('setValue', "");
$("#add_honor").textbox('setValue', "");
$("#add_birthday").textbox('setValue', "");
$("#add_scoreNow").textbox('setValue', "");
//重新加载班级
$("#add_gradeList").combobox("clear");
$("#add_gradeList").combobox("reload");
}
},
]
});
//设置编辑学生窗口
$("#editDialog").dialog({
title: "修改学生信息",
width: 650,
height: 460,
iconCls: "icon-edit",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'提交',
plain: true,
iconCls:'icon-user_add',
handler:function(){
var validate = $("#editForm").form("validate");
var clazzid = $("#edit_clazzList").combobox("getValue");
if(!validate){
$.messager.alert("消息提醒","请检查你输入的数据!","warning");
return;
} else{
$.ajax({
type: "post",
url: "StudentServlet?method=EditStudent&t="+new Date().getTime(),
data: $("#editForm").serialize(),
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","更新成功!","info");
//关闭窗口
$("#editDialog").dialog("close");
//刷新表格
$('#dataList').datagrid("options").queryParams = {clazzid: clazzid};
$("#dataList").datagrid("reload");
$("#dataList").datagrid("uncheckAll");
} else{
$.messager.alert("消息提醒","更新失败!","warning");
return;
}
}
});
}
}
},
{
text:'重置',
plain: true,
iconCls:'icon-reload',
handler:function(){
$("#edit_name").textbox('setValue', "");
$("#edit_sex").textbox('setValue', "男");
$("#edit_userName").textbox('setValue', "");
$("#edit_number").textbox('setValue', "");
$("#edit_phone").textbox('setValue', "");
$("#edit_clazzList").textbox('setValue', "");
$("#edit_honor").textbox('setValue', "");
$("#edit_scoreNow").textbox('setValue', "");
//重新加载班级
$("#edit_gradeList").combobox("clear");
$("#edit_gradeList").combobox("reload");
}
}
],
onBeforeOpen: function(){
var selectRow = $("#dataList").datagrid("getSelected");
//设置值
$("#edit_name").textbox('setValue', selectRow.name);
$("#edit_userName").textbox('setValue', selectRow.userName);
$("#edit_phone").textbox('setValue', selectRow.phone);
$("#edit-studentId").val(selectRow.studentId);
$("#edit-userId").val(selectRow.userId);
$("#edit_number").textbox('setValue', selectRow.number);
$("#edit_scoreNow").textbox('setValue', selectRow.scoreNow);
$("#edit_honor").textbox('setValue', selectRow.honor);
var clazzid = selectRow.clazzId;
var sex = selectRow.sex;
setTimeout(function(){
$("#edit_clazzList").combobox('setValue', clazzid);
$("#edit_sex").combobox('setValue', sex);
}, 100);
}
});
//搜索按钮监听事件
$("#search-btn").click(function(){
$('#dataList').datagrid('load',{
studentName: $('#search_student_name').val(),
clazzId: $("#clazzList").combobox('getValue') == '' ? 0 : $("#clazzList").combobox('getValue')
});
});
//设置导入工具类按钮
$("#import").click(function(){
$("#importDialog").dialog("open");
});
//设置导入窗口
$("#importDialog").dialog({
title: "导入学生信息",
width: 450,
height: 150,
iconCls: "icon-add",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'确认导入',
plain: true,
iconCls:'icon-book-add',
handler:function(){
var validate = $("#importForm").form("validate");
if(!validate){
$.messager.alert("消息提醒","请选择文件!","warning");
return;
} else{
importStudent();
$("#importDialog").dialog("close");
}
}
}
]
});
function importStudent(){
$("#importForm").submit();
$.messager.progress({text:'正在上传导入中...'});
var interval = setInterval(function(){
var message = $(window.frames["import_target"].document).find("#message").text();
if(message != null && message != ''){
$.messager.progress('close');
$.messager.alert("消息提醒",message,"info");
$('#dataList').datagrid("reload");
clearInterval(interval);
}
}, 1000)
}
//清空搜索条件
$("#clear-btn").click(function(){
$('#dataList').datagrid("reload",{});
$("#clazzList").combobox('clear');
$("#search_student_name").textbox('setValue', "");
});
});
</script>
<script type="text/javascript">
function myformatter(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
}
function myparser(s){
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
</script>
</head>
<body>
<!-- 学生列表 -->
<table id="dataList" cellspacing="0" cellpadding="0">
</table>
<!-- 工具栏 -->
<div id="toolbar">
<c:if test="${roleCode == 'admin' || roleCode == 'teacher'}">
<div style="float: left;"><a id="add" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">添加</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="edit" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true">修改</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="delete" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-some-delete',plain:true">删除</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="download" href="StudentServlet?method=DownLoad" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">导入模板</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="import" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">导入</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;margin-top:4px;">&nbsp;&nbsp;姓名:<input id="search_student_name" class="easyui-textbox" name="search_student_name" /></div>
</c:if>
<div style="margin-left: 10px;margin-top:4px;" >&nbsp;&nbsp;班级:<input id="clazzList" class="easyui-textbox" name="clazz" />
<a id="search-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">搜索</a>
<a id="clear-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">清空搜索</a>
</div>
</div>
<!-- 添加学生窗口 -->
<div id="addDialog" style="padding: 10px">
<form id="addForm" method="post">
<table cellpadding="8" >
<tr>
<td>姓名:</td>
<td><input id="add_name" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'" /></td>
<td>性别:</td>
<td><select id="add_sex" class="easyui-combobox" data-options="required:true, missingMessage:'请选择性别',editable: false, panelHeight: 50, width: 60, height: 30" name="sex"><option value="0">男</option><option value="1">女</option></select></td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input id="add_userName" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="userName" data-options="required:true, missingMessage:'请输入用户名'" />
</td>
<td>联系方式:</td>
<td><input id="add_phone" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="phone" validType="mobile" /></td>
</tr>
<tr>
<td>学号:</td>
<td><input id="add_number" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="number" validType="number" data-options="required:true, missingMessage:'请输入学号'" /></td>
<td>班级:</td>
<td><input id="add_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox" name="clazzId" data-options="required:true, missingMessage:'请选择班级'" /></td>
</tr>
<tr>
<td>专业:</td>
<td>
<input id="add_major" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="major" data-options="required:true, missingMessage:'请输入专业'" />
</td>
<td>个人荣誉:</td>
<td><input id="add_honor" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="honor" /></td>
</tr>
<tr>
<td>生日:</td>
<td>
<input id="add_birthday" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="birthday" />
</td>
<td>本周学分:</td>
<td><input id="add_scoreNow" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="scoreNow" validType="number" data-options="required:true, missingMessage:'请输入本周学分'" /></td>
</tr>
</table>
</form>
</div>
<!-- 修改学生窗口 -->
<div id="editDialog" style="padding: 10px">
<form id="editForm" method="post">
<input type="hidden" name="userId" id="edit-userId">
<input type="hidden" name="studentId" id="edit-studentId">
<table cellpadding="8" >
<tr>
<td>姓名:</td>
<td><input id="edit_name" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'" /></td>
<td>性别:</td>
<td><select id="edit_sex" class="easyui-combobox" data-options="required:true, missingMessage:'请选择性别',editable: false, panelHeight: 50, width: 60, height: 30" name="sex"><option value="0">男</option><option value="1">女</option></select></td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input id="edit_userName" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="userName" data-options="required:true, missingMessage:'请输入用户名'" />
</td>
<td>联系方式:</td>
<td><input id="edit_phone" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="phone" validType="mobile" /></td>
</tr>
<tr>
<td>学号:</td>
<td><input id="edit_number" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="number" validType="number" data-options="required:true, missingMessage:'请输入学号'" /></td>
<td>班级:</td>
<td><input id="edit_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox" name="clazzId" data-options="required:true, missingMessage:'请选择班级'" /></td>
</tr>
<tr>
<c:if test="${roleCode == 'admin' || roleCode == 'teacher'}">
<td>本周学分:</td>
<td><input id="edit_scoreNow" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="scoreNow" validType="number" data-options="required:true, missingMessage:'请输入本周学分'" /></td>
</c:if>
<td>个人荣誉:</td>
<td><input id="edit_honor" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="honor" /></td>
</tr>
</table>
</form>
</div>
<!-- 导入数据窗口 -->
<div id="importDialog" style="padding: 10px">
<form id="importForm" method="post" enctype="multipart/form-data" action="StudentServlet?method=ImportStudent" target="import_target">
<table cellpadding="8" >
<tr>
<td>请选择文件:</td>
<td>
<input class="easyui-filebox" name="importStudent" data-options="required:true,min:0,precision:2, missingMessage:'请选择文件',prompt:'选择文件'" style="width:200px;">
</td>
</tr>
</table>
</form>
</div>
<!-- 提交表单处理iframe框架 -->
<iframe id="import_target" name="import_target"></iframe>
</body>
</html>