需求分析:
在员工管理列表界面。可以对某个员工账号进行启用或者禁用操作。账号禁用的员工不能登录系统,只有管理员可以对普通用户进行启用或者禁用操作,所以普通用户后启用、禁用按钮不显示。
vue:
created() {
this.init()
this.user = JSON.parse(localStorage.getItem('userInfo')).username
}
编辑
</el-button>
<el-button
type="text"
size="small"
class="delBut non"
@click="statusHandle(scope.row)"
v-if="user === 'admin'"
>
{{ scope.row.status == '1' ? '禁用' : '启用' }}
</el-button>
statusHandle方法:
//状态修改
statusHandle (row) {
this.id = row.id
this.status = row.status
this.$confirm('确认调整该账号的状态?', '提示', {
'confirmButtonText': '确定',
'cancelButtonText': '取消',
'type': 'warning'
}).then(() => {
enableOrDisableEmployee({ 'id': this.id, 'status': !this.status ? 1 : 0 }).then(res => { <!--账号状态为1,则发送0,便于后端修改-->
console.log('enableOrDisableEmployee',res)
if (String(res.code) === '1') {
this.$message.success('账号状态更改成功!')
this.handleQuery()
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
})
}
ajax请求:
// 修改---启用禁用接口
function enableOrDisableEmployee (params) {
return $axios({
url: '/employee',
method: 'put',
data: { ...params }
})
}
页面发送请求,通过开发者工具查看
1.页面发送ajax请求,将参数id,status提交到服务端
2.服务端Controller接收页面提交的数据并用serveice更新数据
3.Service调用Mapper操作数据库
Controller:
/**
* 修改员工账号状态
* @param employee
* @return
*/
@PutMapping
public R<String> updateStatus(HttpServletRequest request,@RequestBody Employee employee){
log.info(employee.toString());
employee.setUpdateTime(LocalDateTime.now());
Long empId = (Long) request.getSession().getAttribute("employee");
employee.setUpdateUser(empId);
employeeService.updateById(employee);
return R.success("员工信息修改成功");
}