关于车辆派遣系统的总结(0804)

关于车辆派遣系统的总结(0804)

因为上周组织培训,项目在上周没有过多的进展。燃尽图:

 

 

通过上周的培训,也重新熟悉了前端的一部分内容。关于车辆派遣系统,实质上是重新又熟悉了一次半成品,另外再加上培训是,觉得有用的知识点,重新对项目进行了调整,特别是前端。因为前端页面的实现方式,不断的更换,使得每一个功能页面的代码,没有比较标准的规范统一。虽然不利于代码的复用性,但是,就当做是对前端的再次学习巩固。

再次熟悉车辆派遣系统后,添加了2个功能模块:业务员管理模块和车辆派遣单模块。

车辆派遣单模块:

前端页面:主要分为上下两部分,下面部分是管理员信息展示列表的DIV,上面部分是负责回显要修改的原有信息和修改后的新信息的input标签区域。

代码:

<body>

<div class="d1" >

<form action="" method="post" id="form">

<div class="d12 dheader">

<p>业务员信息修改</p>

</div>

<div class="d12">

<label>业务员姓名:</label>

<input class="in" name="cname" id="cname" value="${clerk.cname }" placeholder="业务员姓名">

</div>

<div class="d12">

<label>登录密码:</label>

<input class="in" name="cpwd" id="cpwd" value="${clerk.cpwd }" placeholder="业务员登录密码">

</div>

<div class="d12">

<label>身份证号码:</label>

<input class="in" name="cIDnum" id="cIDnum" value="${clerk.cIDnum }" placeholder="业务员身份证号码">

</div>

<div class="d12">

<label>职务:</label>

<input class="in" name="cjob" id="cjob" value="${clerk.cjob }" placeholder="职务">

</div>

<div class="d12">

<label>联系电话:</label>

<input class="in" name="cphone" id="cphone" value="${clerk.cphone }" placeholder="业务员联系方式">

</div>

<div class="d12">

 

<input type="hidden" class="in" name="cid" id="cid" value="${clerk.cid }">

</div>

<div class="d12">

<label></label>

<input type="button" name="button" id="button" value="修改">

</div>

</form>

</div>

<div class="d2" align="center">

<table class="tb" border="1px" cellspacing="0">

<!-- th是表头的单元格,theader是表头行的意思,和tr的作用是一样的,但是theader里面可以有多个tr构成 -->

<!-- 这里没有出效果是因为把theader当做th使用了 -->

<tr>

<th>业务员姓名</th>

<th>登录密码</th>

<th>身份证号码</th>

<th>职务</th>

<th>联系电话</th>

<th>操作</th>

</tr>

 

<tr>

<td>admin</td>

<td>123456</td>

<td>18x</td>

<td>临时管理</td>

<td>11012345678</td>

<td><a href="#">修改</a><a>删除</a> </td>

</tr>

</table>

</div>

</body>

通过jsjstl渲染,展示所有管理员信息的列表。

script

$(function() {

getAllClerk();

});

function getAllClerk() {

$.ajax({

url:webName+"/clerk/getAllClerk.do",

data:"",

type:"get",

dataType:"json",

success:function(obj){

//alert(obj.message);

if (obj.state==1) {

$(".tb").html("");

var s =

'<tr>'+

'<th>业务员姓名</th>'+

'<th>登录密码</th>'+

'<th>身份证号码</th>'+

'<th>职务</th>'+

'<th>联系电话</th>'+

'<th>操作</th>'+

'</tr>';

$(".tb").append(s);

for (var i = 0; i < obj.data.length; i++) {

var str =

'<tr>'+

'<td>'+obj.data[i].cname+'</td>'+

'<td>'+obj.data[i].cpwd+'</td>'+

'<td>'+obj.data[i].cIDnum+'</td>'+

'<td>'+obj.data[i].cjob+'</td>'+

'<td>'+obj.data[i].cphone+'</td>'+

'<td><a href="${pageContext.request.contextPath}/clerk/getClerkByCid.do?cid='+obj.data[i].cid+'">修改</a> | <a class="remove" href="${pageContext.request.contextPath}/clerk/remove.do?cid='+obj.data[i].cid+'">删除</a> </td>'+

'</tr>';

$(".tb").append(str);

}

}

}

});

}

 

$("#button").click(function() {

$.ajax({

url:"${pageContext.request.contextPath}/clerk/change.do",

data:$("#form").serialize(),

type:"post",

dataType:"json",

success:function(obj){

alert(obj.message);

}

});

});

 

后端实现:

controller:

1.管理员列表展示,需要获得clerkList。

@RequestMapping("/getAllClerk.do")

@ResponseBody

public ResponseResult<List<Clerk>> getAllClerk(){

ResponseResult<List<Clerk>> rr = new ResponseResult<List<Clerk>>();

  List<Clerk> clerkList = clerkService.getAllClerk();

  rr.setData(clerkList);

  rr.setMessage("获取clerk列表成功");

  rr.setState(1);

 

 

return rr;

}

可以看出,这里获取list是通过异步实现的,通过和上面的script结合,异步加载渲染数据到业务员管理页面。

同时,可以发现,删除和修改在table的操作列中,删除比较容易,超链接访问对应的后端,并携带对应的cid参数即可。

//根据cid删除对应的clerk信息

@RequestMapping("/remove.do")

public String remove(Integer cid){

ResponseResult<Void> rr = new ResponseResult<Void>();

System.out.println("cid="+cid+",class="+cid.getClass());

int count = clerkService.remove(cid);

System.out.println("couont="+count);

return "redirect:../clerk/showManage.do";//重定向一个请求,这样会让页面重新发送一个请求,请求列表页面

//return "manage-clerk";//只跳转页面,重新刷新页面,不会改变地址栏的a链接地址

}

修改分为2部分,第一,点击修改后,拿到对应的clerk数据,并且异步加载到上面的input标签对应的位置。第二,对对应的input标签的数据,根绝需要修改,提交修改后,修改数据库数据,同时刷新管理页面。

//根据cid修改clerk信息,分为2步

//1.根据cid获取要修改的clerk信息,方便数据回显页面

@RequestMapping("/getClerkByCid.do")

public String getClerkByCid(Integer cid,ModelMap map) {

  Clerk clerk = clerkService.getClerkByCid(cid);

System.out.println(clerk);

map.addAttribute("clerk", clerk);

return "manage-clerk";

 

}

//2.页面回显的数据,经过修改后,提交后台,修改数据库数据

@RequestMapping("/change.do")

@ResponseBody

public ResponseResult<Void> change(Integer cid,String cname,String cpwd,String cIDnum,String cjob,String cphone){

System.out.println("-->/clerk/change.do");

ResponseResult<Void> rr = new ResponseResult<Void>();

Clerk clerk = new Clerk(cid, cname, cpwd, cIDnum, cjob, cphone);

System.out.println(clerk);

Integer count = clerkService.change(clerk);

System.out.println("count="+count);

rr.setState(1);

rr.setMessage("修改clerk成功");

System.out.println("<--/clerk/change.do");

return rr;

}

 

业务员管理模块的页面和controller层以贴出,由controller类调用的方法,生成匹配的service类和DAO类,即可完成该业务员管理模块。

 

 

百度网盘:

链接:https://pan.baidu.com/s/1tVwh-96ed8he9X7paf-gJg
提取码:o2s7

 

posted @ 2020-08-04 23:45  好心晴  阅读(288)  评论(0)    收藏  举报