到最后寝室只剩下我一个人去实习了,嘎嘎
还是有点小累的,不过也收获了许多
九、十天加快了进度,把维修申请、待审核申请、以及已审核申请都做了
以下是维修申请的界面的截图
以点击服务里的维修为例(因为换胎和维修都是一样的)
点击维修超链接后可以传过来一个车牌号,然后再给到jsp页面中
难点在于异步刷新
下面来说一下异步刷新的实现:
维修项目是查数据库里所有的维修类型,根据根目录查询
给一张数据库的数据字典就比较清晰了
查询 root =1002的记录
就可以找到所有的维修类型
选择了维修项目以后通过jq代码来进行回写,代码如下
<script type="text/javascript">
$(function(){
//id为sort的change处理事件
$("#Fitems").change(function(){
//异步获取
/**
$.post(提交地址,参数值,回调函数,返回值类型)
**/
$.post("<%=basePath%>infoAjaxSortRepair","Fitems="+$("#Fitems").val(),function(data){
$("#items").empty();
$("#items").append(data);
},"text");
});
})
</script>
通过选择框里id所映射的值的变化来执行函数到Servlet来进行回写,代码如下:
/**
* 回写车辆服务界面的选择框
* @param request
* @param response
* @throws IOException
*/
private void reWriteRepair(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
DicService dicService = new DicService();
String Fitems = request.getParameter("Fitems");
List<Dic> list = dicService.findDicByRoot(Fitems);
response.setCharacterEncoding("utf-8");
PrintWriter printWriter = response.getWriter();
for (Dic dic : list) {
printWriter.print("<option value='"+dic.getId()+"'>"+dic.getName()+"</option>");
}
printWriter.flush();
printWriter.close();
}
如果不执行$("#items").empty();那么下一次查出来的就直接拼接上去了,所以需要清空一下下拉选择框
换胎和维修都是一样的道理的
点击车牌号后到车辆详情页面(截图如下):
这些都是通过车牌号到info、t_vehicle_service、t_vehicle_tire表中通过查询查出来的,就是比较麻烦,但是不是很难
下面来看一下待审核申请页面:
点击车牌号是可以进行查看里面的信息然后审批的
查询的话就直接把is_end为0的全查出来就行了
但是在JSP页面中进行显示的时候要加一个小细节,如下
然后跳到Servlet里的时候处理就行,然后到不同的表里去查就行,代码如下:
/**
* 跳转到车辆维修记录申请审批界面
* @param request
* @param response
* @throws IOException
* @throws ServletException
*/
private void repairNote(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
ShengqingService shengqingService = new ShengqingService();
Shengqing shengqing = null;
if(request.getParameter("server_id")!=null){
shengqing = shengqingService.findShengqingBySer_id(Integer.valueOf(request.getParameter("server_id")));
}else if (request.getParameter("ser_tir")!=null) {
shengqing = shengqingService.findShengqingBySer_tir(Integer.valueOf(request.getParameter("ser_tir")));
}
request.setAttribute("shengqing", shengqing);
request.getRequestDispatcher("daiSp/repairSp.jsp").forward(request, response);
}
跳转到审批界面截图如下:
点击保存后通过查询序号知道他是维修还是换胎
点击保存的时候更新申请表的同时别忘了更新维修表或换胎表就行
已审核也差不多的道理
还有一个用户权限的问题
在登录的时候稍作处理就行
因为只有一个单位里只有几个领导来审批的,所以就不会太复杂
在显示栏目的时候,如果他的职位的id是8或者是什么的话,他就会有权限,反之就没有权限
在查询的时候进行处理一下就行
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到网页中输入的用户名和密码
String name = request.getParameter("username");
String password = request.getParameter("password");
LoginService service = new LoginService();
Vuer user = service.login(name, password);
if(user!=null){
List<Fun> list = null;
if(user.getRank()==8){
list = new FunService().getAllFuns(1);
}else{
list = new FunService().getAllFuns(0);
}
//创建Session会话---因为在打开网页的时候都要使用该对象
request.getSession().setAttribute("user", user);
request.getSession().setAttribute("funList", list);
request.getRequestDispatcher("main.jsp").forward(request, response);
}else{
//JSP内置对象
request.setAttribute("error","用户名密码错误,请重新输入");
//跳转页面
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
Dao层代码(因为待审核和已审核的栏目的id是8和9所以没权限的时候查询的时候出去id为8和9的就行):
/**
* 得到所有的栏目名字
* @return
*/
public List<Fun> getFuns(int havePower){
List<Fun> list = new ArrayList<Fun>();
try {
conn = getConn();
String sql = "select * from t_fun";
if(havePower==0){
sql = "select * from t_fun where id!=8 and id!=9";
}
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
list.add(new Fun(rs.getInt("id"), rs.getString("name"),rs.getString("links")));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeConn(conn, ps, rs);
}
return list;
}
这样就有权限去显示处理一些东西或者不去显示处理一些东西啦
不同权限登录页面截图如下:
有权限:
无权限:
这样的一个项目基本完成了,页面是比较丑丑丑的233333,但是基本的功能都已经实现了(完)
如果大牛有更好的方法或者有更好的提议欢迎下面留言,5555毕竟新手上路多多指点啊