SpringBoot + Vue 微人事(十)

职位管理前后端接口对接

先把table中的数据展示出来,table里面的数据实际上是positions里面的数据,就是要给positions:[] 赋上值

可以在methods中定义一个initPosition方法

bash 复制代码
 methods:{
            //定义一个初始化positions的方法
            initPositions(){
                //发送一个get请求去获取数据 请求地址是"/system/basic/pos/"
                this.getRequest("/system/basic/pos/").then(resp =>{
                    //判断如果resp存在的话,请求成功
                    if (resp){
                        //就把positions的值赋值歌resp就行了
                        this.positions=resp;
                    }
                })
            }
        }

定义好之后去看职位管理的页面看有没有渲染出数据。

为什么没数据呢?我们可以看到我们定义的initPositions并没有调用,我们以前是登录的时候要点击登录的按钮去调用方法,但是我们这个不应该点,应该是页面一加载就会自动的去执行。那么如果让方法自动去执行呢?这时候就要用到vue的生命周期里面的钩子函数

当这个组件初始化的时候,会自动执行mounted方法,我们在mounted方法里面去调用initPositions就行了

bash 复制代码
 mounted(){
            this.initPositions();
        },

要在表格的前面加上多选按钮的话呢,只需要加上如下一段代码即可

bash 复制代码
        <el-table-column
                        type="selection"
                        width="55">
                </el-table-column>

在表格里面添加编辑和删除操作,新增代码如下:scope.$index:当前操作到第几行 scope.row:这一行对应的json对象

bash 复制代码
<el-table-column label="操作">
                    <!--scope.$index:当前操作到第几行 scope.row:这一行对应的json对象 -->
                    <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>
bash 复制代码
//定义编辑按钮的方法
handleEdit(index,data){
 
},
//定义删除按钮的方法
handleDelete(index,data){
 
},

效果如下图所示:

如何实现添加方法,这个也挺简单,在下面html标签里面加上@click="addPosition()"

bash 复制代码
<el-button type="primary" icon="el-icon-plus" size="small" @click="addPosition()">添加</el-button>

在methods中的定义的添加方法的代码如下;首先要判断用户是否输入了名字,输入了就去发送添加的请求地址,添加成功之后调用initPositions方法刷新数据,没有输入则弹出提示框。

添加成功之后调用initPositions方法刷新数据

也可以添加完成之后清空输入框 this.pos.name=' ';

bash 复制代码
addPosition(){
                if (this.pos.name){
                    //this.pos :参数是pos
                    this.postRequest("/system/basic/pos/",this.pos).then(resp=>{
                        if(resp){
                            //添加成功之后需要把表格刷新一下  可以直接用initPositions,重新加载数据
                            this.initPositions();
                            this.pos.name='';
                        }
                    })
                } else {
                    this.$message.error("职位名称不可以为空");
                }
            },

添加按钮已经做完了,开始做删除按钮,代码如下:借助Element UI里面的MessageBox弹框

bash 复制代码
//定义删除按钮的方法
            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: '已取消删除'
                    });
                });
            },

删除效果如下图:

相关推荐
天人合一peng14 分钟前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
方也_arkling1 小时前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
web打印社区1 小时前
web-print-pdf:突破浏览器限制,实现专业级Web静默打印
前端·javascript·vue.js·electron·html
m0_740043731 小时前
【无标题】
java·spring boot·spring·spring cloud·微服务
重整旗鼓~2 小时前
1.外卖项目介绍
spring boot
RFCEO2 小时前
前端编程 课程十三、:CSS核心基础1:CSS选择器
前端·css·css基础选择器详细教程·css类选择器使用方法·css类选择器命名规范·css后代选择器·精准选中嵌套元素
Amumu121382 小时前
Vuex介绍
前端·javascript·vue.js
We་ct2 小时前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
2601_949480063 小时前
【无标题】
开发语言·前端·javascript