新增检查项
完善页面
检查项管理页面对应的是checkitem.html页面,根据产品设计的原型已经完成了页面基本结构的编写,现在需要完善页面动态效果。
弹出新增窗口
页面中已经提供了新增窗口,只是处于隐藏状态。只需要将控制展示状态的属性dialogFormVisible改为true就可以显示出新增窗口。
新建按钮绑定的方法为handleCreate,所以在handleCreate方法中修改dialogFormVisible属性的值为true即可。同时为了增加用户体验度,需要每次点击新建按钮时清空表单输入项。
// 重置表单 resetForm() { this.formData = {}; }, // 弹出添加窗口 handleCreate() { this.resetForm(); this.dialogFormVisible = true; }
输入校验
rules: {//校验规则 code: [{ required: true, message: '项目编码为必填项', trigger: 'blur' }], name: [{ required: true, message: '项目名称为必填项', trigger: 'blur' }] }
提交表单数据
点击新增窗口中的确定按钮时,触发handleAdd方法,所以需要在handleAdd方法中进行完善。
handleAdd () { //校验表单输入项是否合法 this.$refs['dataAddForm'].validate((valid) => { if (valid) { //表单数据校验通过,发送ajax请求将表单数据提交到后台 axios.post("/checkitem/add.do",this.formData).then((response)=> { //隐藏新增窗口 this.dialogFormVisible = false; //判断后台返回的flag值,true表示添加操作成功,false为添加操作失败 if(response.data.flag){ this.$message({ message: response.data.message, type: 'success' }); }else{ this.$message.error(response.data.message); } }).finally(()=> { this.findPage(); }); } else { this.$message.error("表单数据校验失败"); return false; } }); }
后台代码
Controller
在health_backend工程中创建CheckItemController
package com.itheima.controller; import com.alibaba.dubbo.config.annotation.Reference; import com.itheima.constant.MessageConstant; import com.itheima.entity.PageResult; import com.itheima.entity.QueryPageBean; import com.itheima.entity.Result; import com.itheima.pojo.CheckItem; import com.itheima.service.CheckItemService; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 体检检查项管理 */ @RestController @RequestMapping("/checkitem") public class CheckItemController { @Reference private CheckItemService checkItemService; //新增 @RequestMapping("/add") public Result add(@RequestBody CheckItem checkItem){ try { checkItemService.add(checkItem); }catch (Exception e){ return new Result(false,MessageConstant.ADD_CHECKITEM_FAIL); } return new Result(true,MessageConstant.ADD_CHECKITEM_SUCCESS); } }
服务接口
在health_interface工程中创建CheckItemService接口
package com.itheima.service; import com.itheima.pojo.CheckItem; import java.util.List; /** * 检查项服务接口 */ public interface CheckItemService { public void add(CheckItem checkItem); }
服务实现类
在health_service_provider工程中创建CheckItemServiceImpl实现类
package com.itheima.service; import com.alibaba.dubbo.config.annotation.Service; import com.itheima.dao.CheckItemDao; import com.itheima.pojo.CheckItem; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; /** * 检查项服务 */ @Service(interfaceClass = CheckItemService.class) @Transactional public class CheckItemServiceImpl implements CheckItemService { @Autowired private CheckItemDao checkItemDao; //新增 public void add(CheckItem checkItem) { checkItemDao.add(checkItem); } }
Dao接口
在health_service_provider工程中创建CheckItemDao接口,本项目是基于Mybatis的Mapper代理技术实现持久层操作,故只需要提供接口和Mapper映射文件,无须提供实现类
package com.itheima.dao; import com.itheima.pojo.CheckItem; /** * 持久层Dao接口 */ public interface CheckItemDao { public void add(CheckItem checkItem); }
Mapper映射文件
在health_service_provider工程中创建CheckItemDao.xml映射文件,需要和CheckItemDao接口在同一目录下
<?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.itheima.dao.CheckItemDao">
<!--新增-->
<insert id="add" parameterType="com.itheima.pojo.CheckItem">
insert into t_checkitem(code,name,sex,age,price,type,remark,attention)
values
(#{code},#{name},#{sex},#{age},#{price},#{type},#{remark},#{attention})
</insert>
</mapper>