后端接口
RespBean的作用是返回告诉前端成功与否
controller
package com.akk.vhr.controller.system.basic;
import com.akk.vhr.model.Position;
import com.akk.vhr.model.RespBean;
import com.akk.vhr.service.PositionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/system/basic/pos")
public class PositionController {
@Autowired
PositionService positionService;
@GetMapping("/")
public List<Position> getAllPostions(){
return positionService.getAllPostions();
}
@PostMapping("/")
public RespBean addPosition(@RequestBody Position position){
if (positionService.addPosition(position) == 1) {
return RespBean.ok("添加成功");
}
return RespBean.error("添加失败");
}
@PutMapping("/")
public RespBean updatePosition(@RequestBody Position position){
if (positionService.updatePosition(position) == 1) {
return RespBean.ok("更新成功");
}
return RespBean.error("更新失败");
}
@DeleteMapping("/{id}")
public RespBean deletePosition(@PathVariable Integer id){
if (positionService.deletePosition(id) == 1) {
return RespBean.ok("删除成功");
}
return RespBean.error("删除失败");
}
}
service
package com.akk.vhr.service;
import com.akk.vhr.mapper.PositionMapper;
import com.akk.vhr.model.Position;
import com.akk.vhr.model.RespBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class PositionService {
@Autowired
PositionMapper positionMapper;
public List<Position> getAllPostions() {
return positionMapper.getAllPostions();
}
public Integer addPosition(Position position) {
position.setEnabled(true);
position.setCreateDate(new Date());
return positionMapper.insertSelective(position);
}
public Integer updatePosition(Position position) {
return positionMapper.updateByPrimaryKeySelective(position);
}
public Integer deletePosition(Integer id) {
return positionMapper.deleteByPrimaryKey(id);
}
}
xml
<?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.akk.vhr.mapper.PositionMapper" >
<resultMap id="BaseResultMap" type="com.akk.vhr.model.Position" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="createDate" property="createDate" jdbcType="TIMESTAMP" />
<result column="enabled" property="enabled" jdbcType="BIT" />
</resultMap>
<select id="getAllPostions" resultMap="BaseResultMap">
select * from position;
</select>
<sql id="Base_Column_List" >
id, name, createDate, enabled
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from position
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from position
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.akk.vhr.model.Position" >
insert into position (id, name, createDate,
enabled)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP},
#{enabled,jdbcType=BIT})
</insert>
<insert id="insertSelective" parameterType="com.akk.vhr.model.Position" >
insert into position
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="name != null" >
name,
</if>
<if test="createDate != null" >
createDate,
</if>
<if test="enabled != null" >
enabled,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="createDate != null" >
#{createDate,jdbcType=TIMESTAMP},
</if>
<if test="enabled != null" >
#{enabled,jdbcType=BIT},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.akk.vhr.model.Position" >
update position
<set >
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
<if test="createDate != null" >
createDate = #{createDate,jdbcType=TIMESTAMP},
</if>
<if test="enabled != null" >
enabled = #{enabled,jdbcType=BIT},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.akk.vhr.model.Position" >
update position
set name = #{name,jdbcType=VARCHAR},
createDate = #{createDate,jdbcType=TIMESTAMP},
enabled = #{enabled,jdbcType=BIT}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
postman测试
getAllPostions
addPosition
updatePosition
deletePosition
前端画面
<template>
<div>
<div>
<el-input
size="small"
class="addPosInput"
placeholder="添加职位..."
prefix-icon="el-icon-plus"
// 回车提交,以为使用elementui所以需要native
@keydown.enter.native="addPosition"
v-model="pos.name">
</el-input>
<el-button icon="el-icon-plus" size="small" type="primary" @click="addPosition">添加</el-button>
</div>
<div class="posManaMain">
<el-table :data="positions"
border
size="small"
stripe
style="width: 70%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
prop="id"
label="编号"
width="55">
</el-table-column>
<el-table-column
prop="name"
label="职称编号"
width="120">
</el-table-column>
<el-table-column
prop="createDate"
label="创建时间">
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
name: "PosMana",
data(){
return{
pos:{
name:''
},
positions:[]
}
},
mounted() {
this.initPositions();
},
methods:{
addPosition(){
if (this.pos.name) {
this.postRequest("/system/basic/pos/",this.pos).then(resp=>{
if (resp) {
// 提交后重新装在数据,然后数据框的值赋空
this.initPositions()
this.pos.name='';
}
})
}else{
this.$message.error('职位名称不能为空');
}
},
handleEdit(index,data){
},
handleDelete(index,data){
this.$confirm('此操作将删除【'+data.name+'】职位, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.deleteRequest("/system/basic/pos/"+data.id).then(resp=>{
if (resp) {
this.initPositions();
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
// 初始化数据 发送请求绑定到表单数据源上
initPositions(){
this.getRequest("/system/basic/pos/").then(resp=>{
if (resp) {
this.positions = resp;
}
})
}
}
}
</script>
<style>
.addPosInput{
width:25%;
margin-right: 10px;
}
</style>
添加
添加