1.project_edit.jshtml
$(document).ready(function () {
//绑定点击事件
$("#modal-dialog").on("click",".ok",saveOrUpdate);
//当弹框被隐藏时执行的函数
$("#modal-dialog").on("hidden.bs.modal",function () {
//当弹框被隐藏时执行的函数
$("#modal-dialog").off("click",".ok");
$("#modal-dialog").removeData("id");
});
var id = $("#modal-dialog").data("id");
if(id){//若是有值说明单机的是修改按钮
findProjectById(id);
}
})
//修改弹框获取值
function findProjectById(id) {
var url = "project/findProjectById";
var params = {"id":id};
$.getJSON(url,params,function (result) {
if(result.state == 1){//查询成功
//给弹框赋值
initFormDate(result.data);
}else{
alert(result.message);
}
});
}
//初始话弹窗的数据
function initFormDate(project){
$("#nameId").val(project.name);
$("#codeId").val(project.code);
$("#beginDateId").val(project.beginDate);
$("#endDateId").val(project.endDate);
$("input[type='radio']").each(function () {
//设置选中状态
if(project.status == $(this).val()){//判断状态值
$(this).prop("checked",true);
}
});
$("#endDateId").val(project.endDate);
}
//添加或者修改项目数据
function saveOrUpdate() {
//验证表单数据是否为空
if(!$("#editFormId").valid()){//表单为空返回false
return;
}
//获取表单数据
var params = {
name:$("#nameId").val(),
code:$("#codeId").val(),
beginDate:$("#beginDateId").val(),
endDate:$("#endDateId").val(),
remarks:$("#remarks").val(),
status:$("input[type='radio']:checked").val()
};
// console.log(params);
//异步提交数据
var saveUrl = "project/saveProject";
var updateUrl = "project/updateProject";
//从模态框取出id判断当前操做是新增仍是修改
var id = $("#modal-dialog").data("id");
var url = (id?updateUrl:saveUrl);
if(id){
params.id = id;
}else{
alert("模态框当前id不存在")
}
$.post(url,params,function (result) {
if(result.state == 1){
alert(result.message);
$("#modal-dialog").modal("hide");
findAllObject();
} else{
alert(result.message);
}
});
}
2.project_listjava
// $(document).read(function () { // //调用 // findAllObject(); // }) $(function () { findAllObject(); //单击事件 //获取表单对象 $("#queryFormId").on("click",".btn-search",doQueryObject); $("#queryFormId").on("click",".btn-invalid,.btn-valid",updateStatusById); //绑定添加按钮 $("#queryFormId").on("click",".btn-add",loadEditPage); //在修改按钮上绑定一个事件 $("#queryFormId").on("click",".btn-info",loadEditPage); }) //add编辑页面 function loadEditPage() { //显示编辑页面 var url = "project/editUI"; var title; if($(this).hasClass("btn-add")){ title = "添加项目信息"; }else if($(this).hasClass("btn-info")){ title = "修改项目信息"; //修改按钮父亲是td,td父亲是tr var ValueId = $(this).parent().parent().data("id"); $("#modal-dialog").data("id",ValueId); } //在弹框中异步加载显示编辑页面 $("#modal-dialog .modal-body").load(url,function () { //页面加载完成后显示弹框 //方法传入show表示显示,传入hide表示隐藏 $(".modal-title").html(title); $("#modal-dialog").modal("show"); }); } //禁用启用项目信息 function updateStatusById(){ //获取当前点击按钮是启用仍是禁用 // var clazz = $(this).attr("class"); // if(clazz == "btn btn-primary btn-invalid"){} var status; if($(this).hasClass("btn-invalid")){ status = 0; } if($(this).hasClass("btn-valid")){ status = 1; } //获取选中的复选框id的值 var ids = ""; $("#tbodyId input[name='checkId']").each(function () { //获取全部的复选框进行遍历 //判断哪一个被选中 if($(this).prop("checked")){//若是结果为true,表明当前遍历到的复选框被选中 if(ids == ""){ ids += $(this).val(); }else{ ids += ","+$(this).val(); } } }) if(ids==""){ alert("😙亲,请至少选用一条记录!"); return; } var url = "project/updateStatusById"; var params={"status":status,"ids":ids}; //发送异步请求,更新数据 $.post(url,params,function (result) { if(result.state == 1){ alert(result.message); findAllObject(); }else{ alert(result.message); } }); } function doQueryObject(){//按条件查询 //先初始化页码 $("pageId").data("pageCurrent",1); findAllObject(); } function findAllObject() { // var url = "project/findAllProject"; var url = "project/findPageObject"; var pageCurrent = $("#pageId").data("pageCurrent"); if(!pageCurrent){ pageCurrent = 1; } var params = {"pageCurrent":pageCurrent}; params.name = $("#searchNameId").val(); params.status = $("#searchValidId").val(); $.getJSON(url,params,function (result) { setTableBodyRows(result.data.list);//查询数据 setPagination(result.data.pageObject);//分页 }); } function setTableBodyRows(result){ //1.先获取tbody对象 var tbody = $("#tbodyId"); tbody.empty();//清空数据为了防止还保留着之前的数据 //2. 循环数据result for(var i in result){ //3.建立一个tr对象,用来显示每行数据 var tr = $("<tr></tr>"); //给tr绑定id值 tr.data("id",result[i].id); //var td = $("<td></td>") //td.append(result[i].id) //4.建立每行的td对象(一行有多个数据) //5.在td对象内部填充查询出来的具体数据 var td = "<td><input type='checkbox' name='checkId' value="+result[i].id+" /></td>" +"<td>"+result[i].code+"</td>" +"<td>"+result[i].name+"</td>" +"<td>"+result[i].beginDate+"</td>" +"<td>"+result[i].endDate+"</td>" // +"<td>"+new Date(result[i].beginDate).toLocaleDateString()+"</td>" // +"<td>"+new Date(result[i].endDate).toLocaleDateString()+"</td>" +"<td>"+(result[i].status==1?'有效':'无效')+"</td>" +"<td><input type='button' class='btn btn-info btn-warning' value='修改' /></td>"; //6.将建立出来的td对象添加到tr对象当中去 tr.append(td); //7.将建立出来的tr对象添加到tbody中 tbody.append(tr); } }
3.projectMapper.xmlweb
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tanzhou.tzms.product.dao.ProjectDao"> <!-- 抽取重复代码 --> <sql id="whereQuery"> <where><!-- 将条件前多余的and或者or去掉 --> <if test = "name!=null and name != ''"> name like concat("%",#{name},"%") </if> <if test = "status!=null"> and status = #{status} </if> </where> </sql> <!-- public List<Project> findAllProject(); --> <select id="findAllProject" resultType="com.tanzhou.tzms.product.domain.Project"> SELECT id,code,name,beginDate,endDate,status,remarks,createdTime, modifiedTime,createdUser,modifiedUser FROM tz_projects </select> <!-- public List<Project> findPageObject(--> <!-- @Param("startIndex") int startIndex,--> <!-- @Param("pageSize") int pageSize,--> <!-- @Param("name") String name,--> <!-- @Param("status") Integer status);--> <select id="findPageObject" resultType="com.tanzhou.tzms.product.domain.Project"> SELECT id,code,name,beginDate,endDate,status,remarks,createdTime,modifiedTime,createdUser,modifiedUser FROM tz_projects <include refid="whereQuery"></include><!-- 重复代码块复用 --> ORDER BY beginDate DESC LIMIT #{startIndex},#{pageSize} </select> <!-- public int getRowCount(); --> <update id="updateProject"> update tz_projects <set> <if test="code != null and code != ''"> code = #{code} </if> <if test="name != null and name != ''"> ,name = #{name} </if> <if test="beginDate != null and beginDate != ''"> ,beginDate = #{beginDate} </if> <if test="endDate != null and endDate != ''"> ,endDate = #{endDate} </if> <if test="status != null and status != ''"> ,status = #{status} </if> <if test="remarks != null and remarks != ''"> ,remarks = #{remarks} </if> , modifiedTime = now() </set> where id = #{id} </update> <!-- public Integer updateStatusById(Integer status,String[] Ids); --> <select id="getRowCount" resultType="int"> SELECT COUNT(*) FROM tz_projects <include refid="whereQuery"></include><!-- 重复代码块复用 --> </select> <!-- public Project findProjectById(Integer id);--> <select id="findProjectById" resultType="com.tanzhou.tzms.product.domain.Project"> select * from tz_projects where id = #{id} </select> <!-- public Integer updateProject(Project project);--> <update id = "updateStatusById"> update tz_projects set status=#{status} where id in <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </update> <!-- public Integer insertProject(Project project); --> <insert id="insertProject"> insert into tz_projects(code,name,beginDate,endDate,remarks,createdTime,createdUser,modifiedTime,modifiedUser) values(#{code},#{name},#{beginDate},#{endDate},#{remarks},now(),#{createdUser},now(),#{modifiedUser}) </insert> </mapper>
4.projectServiceImpl.javaspring
package com.tanzhou.tzms.product.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.tanzhou.tzms.common.exception.ServiceException; import com.tanzhou.tzms.common.web.PageObject; import com.tanzhou.tzms.product.dao.ProjectDao; import com.tanzhou.tzms.product.domain.Project; import com.tanzhou.tzms.product.service.ProjectService; @Service("projectService") public class ProjectServiceImpl implements ProjectService{ @Autowired private ProjectDao projectDao; public List<Project> findAllProject() { return projectDao.findAllProject(); } /** * 分页须要返回两个数据,一个是查询出来的当前数据,一个是分页的数据 */ public Map<String,Object> findPageObject(int currentPage,String name,Integer status) { //页面显示条数 int pageSize = 5; Integer startIndex = (currentPage - 1) * pageSize; System.out.println("pageSize---"+pageSize+" startIndex---"+startIndex); //获取当前页面数据 List<Project> findPageObject = projectDao.findPageObject(startIndex, pageSize,name,status); System.out.println("findPageObjectIMPL当前页数据条数------>"+findPageObject.size()); //获取总条数 int rowCount = projectDao.getRowCount(name,status); System.out.println("获取总条数"+rowCount); //计算总页数 // int pageCount; // if(rowCount%2 == 0) { // pageCount = rowCount/2; // }else { // pageCount = rowCount/2; // pageCount += 1; // } //封装分页信息 PageObject page = new PageObject(); page.setRowCount(rowCount);//总条数 page.setPageSize(pageSize);//每一页显示的数据 page.setPageCurrent(currentPage);//选择的页数(用户传递) page.setStartIndex(startIndex);//查询数据开始 //把当前数据以及分页信息封装到map进行返回 Map<String,Object> map = new HashMap<String,Object>(); map.put("list",findPageObject); map.put("pageObject",page); return map; } @Override public Integer updateStatusById(Integer status, String ids) { //ids:1,2,3-->数组 if(ids.length() == 0 && ids.equals("")) { throw new ServiceException("ids的值不能为空"); } String[] idArray = ids.split(","); if(status != 0 && status != 1) { throw new ServiceException("状态值不合法"); } return projectDao.updateStatusById(status,idArray); } @Override public void saveProject(Project project) { if(project == null) throw new ServiceException("保存对象不能为空"); Integer rows = projectDao.insertProject(project); System.out.println("新增行数==="+rows); if(rows <= 0) { throw new ServiceException("新增失败 "); } } @Override public void updateProject(Project project) { if(project == null){ throw new ServiceException("修改对象不能为空"); } Integer rows = projectDao.updateProject(project); if(rows <= 0){ throw new ServiceException("修改失败"); } } @Override public Project findProjectById(Integer id) { if(id ==null){ throw new ServiceException("修改对象不能为空"); } Project project = projectDao.findProjectById(id); if(project == null){ throw new ServiceException("对象不存在"); } return project; } }
5.projectController.javasql
package com.tanzhou.tzms.product.controller; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.tanzhou.tzms.common.web.JsonResult; import com.tanzhou.tzms.product.domain.Project; import com.tanzhou.tzms.product.service.ProjectService; @Controller @RequestMapping("/project") public class ProjectController { @Autowired private ProjectService projectService; /** * 返回项目管理页面 * @return */ @RequestMapping("/listUI") public String listUI(){ return "product/project_list";//项目列表页面 } /** * 项目管理下的首页展现数据 */ @RequestMapping("/findAllProject") @ResponseBody public List<Project> findAllProject(){ System.out.println("全部数据"); List<Project> list = projectService.findAllProject(); return list;//转成json[{"id":1,"name":"日本游"...},{}] } // @RequestMapping("/findPageObject") // @ResponseBody // /** // * { // * "list":[{id:1,name:"长沙游"}] // * "page":[pageCount:1,pageCount:2] // * } // * @return // */ // public Map<String,Object> findPageObject(Integer pageCurrent,String name,Integer status){ // Map<String, Object> map = projectService.findPageObject(pageCurrent,name,status); // return map; // } /** * { * * } * @return */ /* { status:1 message:"ok" data:{ "list":[{id:1,name:"长沙游"}] "page":[pageCount:1,pageCount:2] } } */ @RequestMapping("/findPageObject") @ResponseBody public JsonResult findPageObject(Integer pageCurrent, String name, Integer status){ System.out.println(pageCurrent+"===="+name+"========"+status); Map<String, Object> map = projectService.findPageObject(pageCurrent,name,status); return new JsonResult(map); // return map; } // /** // * 状态更新 // */ // @RequestMapping("/updateStatusById") // @ResponseBody // public void updateStatusById(Integer status, String ids) { // projectService.updateStatusById(status, ids); // } //重构 /** * 状态更新 */ /** * * 正确: * { * status:1 * message:"启用成功或者禁用成功失败" * data: * } * 出现异常: * { * status:0 * message:"状态值不合法" * data: * } * @param status * @param ids * @return */ @RequestMapping("/updateStatusById") @ResponseBody public JsonResult updateStatusById(Integer status, String ids) { projectService.updateStatusById(status, ids); return new JsonResult(status==1?"启用成功":"禁用成功"); } /** * 新增 * @param project * @return */ @RequestMapping("/saveProject") @ResponseBody public JsonResult saveProject(Project project){ projectService.saveProject(project); //springmvc底层获取到的参数数据,会对数据进行解析 //调用参数project对象的set的方法将数据封装到project对象中去 return new JsonResult("新增成功"); } /** * 用于显示编辑页面 */ @RequestMapping("/editUI") public String editUI() { return "product/project_edit"; } /** * 修改项目信息 */ @RequestMapping("/updateProjet") @ResponseBody public JsonResult updateProjet(Project project){ projectService.updateProject(project); return new JsonResult("修改为功"); } /** * 根据id拿到数据 * @param id * @return */ @RequestMapping("findProjectById") @ResponseBody public JsonResult findProjectById(Integer id){ return new JsonResult(projectService.findProjectById(id)); } }