(车辆管理系统)2018-07-30实训第九,十天笔记 (总结)

到最后寝室只剩下我一个人去实习了,嘎嘎

还是有点小累的,不过也收获了许多

九、十天加快了进度,把维修申请、待审核申请、以及已审核申请都做了

以下是维修申请的界面的截图

以点击服务里的维修为例(因为换胎和维修都是一样的)

点击维修超链接后可以传过来一个车牌号,然后再给到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毕竟新手上路多多指点啊

猜你喜欢

转载自blog.csdn.net/acDream_/article/details/81320820
今日推荐