Day04-日志管理
日期:2020/4/13
#第一节课
##004日志管理
SQL日志表#4.1添加日志生成Log相关的类
生成以下Java类:
- Log实体类
- LogMapper接口
- LogMapper.xml映射文件
- LogService接口
- LogServiceImpl实现类
- LogController控制器
修改Log类
- 将属性的LocalDateTime数据类型改成java.util.Date日期类 型
- 生成无参带参构造方法
//无参构造方法 public Log() { } /** * 添加日志时使用 * @param content 日志内容 * @param type 操作类型 * @param loginname 操作人 * @param userid 操作人id * @param loginip 登录ip * @param createtime 创建时间 */ public Log(String content, String type, String loginname, Integer userid, String loginip, Date createtime) { this.content = content; this.type = type; this.loginname = loginname; this.userid = userid; this.loginip = loginip; this.createtime = createtime; }211//无参构造方法2public Log() {3}45/**6* 添加日志时使用7* @param content 日志内容8* @param type 操作类型9* @param loginname 操作人10* @param userid 操作人id11* @param loginip 登录ip12* @param createtime 创建时间13*/14public Log(String content, String type, String loginname, Integer userid, String loginip, Date createtime) {15this.content = content;16this.type = type;17this.loginname = loginname;18this.userid = userid;19this.loginip = loginip;20this.createtime = createtime;21}SystemConstant
/**
* 登录操作
*/
String LOGIN_ACTION="登录操作";
/**
* 注销操作
*/
String LOGOUT_ACTION="注销操作";
/**
* 查询操作
*/
String SEARCH_ACTION="查询操作";
/**
* 更新操作
*/
String UPDATE_ACTION="更新操作";
/**
* 添加操作
*/
String ADD_ACTION="添加操作";
/**
* 删除操作
*/
String DELETE_ACTION="删除操作";24
1
/**2
* 登录操作3
*/4
String LOGIN_ACTION="登录操作";5
/**6
* 注销操作7
*/8
String LOGOUT_ACTION="注销操作";9
/**10
* 查询操作11
*/12
String SEARCH_ACTION="查询操作";13
/**14
* 更新操作15
*/16
String UPDATE_ACTION="更新操作";17
/**18
* 添加操作19
*/20
String ADD_ACTION="添加操作";21
/**22
* 删除操作23
*/24
String DELETE_ACTION="删除操作";记录登录日志信息
修改UserController控制器代码,记录登 录方法的日志
//记录日志
//内容,操作类型,登录人,登录人Id,登录人IP地址,操作时间
Log log = new Log("用户登录",SysteConstnt.LOGIN_ACTION,
loginname+"-"+loginUserVo.getUser().getName(),loginUserVo.getUser().getId(),
request.getRemoteAddr(),new Date());
logService.save(log);6
1
//记录日志2
//内容,操作类型,登录人,登录人Id,登录人IP地址,操作时间3
Log log = new Log("用户登录",SysteConstnt.LOGIN_ACTION,4
loginname+"-"+loginUserVo.getUser().getName(),loginUserVo.getUser().getId(),5
request.getRemoteAddr(),new Date());6
logService.save(log);
查询日志
修改SystemController
/**
* 日志管理页面
* @return
*/
@RequestMapping("/toLogManager")
public String toLogManager() {
return "system/log/logManager";
}8
1
/**2
* 日志管理页面3
* @return4
*/5
("/toLogManager")6
public String toLogManager() {7
return "system/log/logManager";8
}注意这个路径不能修改,因为要和数据库的href对应创建logManager.html在templates/resources/system下创建logManager.html(请参考提供的素材)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>日志管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="icon" href="/favicon.ico">
<link rel="stylesheet" href="/resource/layui/css/layui.css" media="all" />
<link rel="stylesheet" href="/resource/css/public.css" media="all" />
</head>
<body class="childrenBody">
<!-- 查询条件开始-->
<form class="layui-form">
<blockquote class="layui-elem-quote quoteBox">
<form class="layui-form" >
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">日志类型</label>
<div class="layui-input-inline">
<select name="type" id="search_type">
<option value="">请选择日志类型</option>
<option value="登录操作">登录操作</option>
<option value="添加操作">添加操作</option>
<option value="查询操作">查询操作</option>
<option value="删除操作">删除操作</option>
<option value="修改操作">修改操作</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">登录名称</label>
<div class="layui-input-inline">
<input type="text" name="loginname" id="loginname" class="layui-input searchVal" placeholder="请输入登录名称" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">开始时间</label>
<div class="layui-input-inline">
<input type="text" name="startTime" id="startTime" class="layui-input searchVal" placeholder="开始时间" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结束时间</label>
<div class="layui-input-inline">
<input type="text" name="endTime" id="endTime" class="layui-input searchVal" placeholder="结束时间" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="text-align: center;">
<button type="button" class="layui-btn"><span class="layui-icon layui-icon-search"></span>查询</button>
<button type="reset" class="layui-btn layui-btn-warm"><span class="layui-icon layui-icon-refresh-1"></span>重置</button>
</div>
</div>
</form>
</blockquote>
</form>
<!-- 查询条件结束-->
<!-- 数据表格开始 -->
<div>
<table class="layui-hide" id="logTable" lay-filter="logTable"></table>
<!-- 表格工具栏 -->
<div id="logToolBar" style="display: none;">
<button type="button" lay-event="batchDelete" class="layui-btn layui-btn-sm layui-btn-danger">
<span class="layui-icon layui-icon-delete"></span>批量删除
</button>
</div>
</div>
<!-- 数据表格结束 -->
<script type="text/javascript" src="/resource/layui/layui.js"></script>
<script type="text/javascript">
layui.use();
</script>
</body>
</html>84
1
<!DOCTYPE html>2
<html xmlns:th="http://www.thymeleaf.org">3
<head>4
<meta charset="UTF-8">5
<title>日志管理</title>6
<meta name="renderer" content="webkit">7
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">8
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">9
<meta name="apple-mobile-web-app-status-bar-style" content="black">10
<meta name="apple-mobile-web-app-capable" content="yes">11
<meta name="format-detection" content="telephone=no">12
<link rel="icon" href="/favicon.ico">13
<link rel="stylesheet" href="/resource/layui/css/layui.css" media="all" />14
<link rel="stylesheet" href="/resource/css/public.css" media="all" />15
</head>16
<body class="childrenBody">17
<!-- 查询条件开始-->18
<form class="layui-form">19
<blockquote class="layui-elem-quote quoteBox">20
<form class="layui-form" >21
<div class="layui-form-item">22
<div class="layui-inline">23
<label class="layui-form-label">日志类型</label>24
<div class="layui-input-inline">25
<select name="type" id="search_type">26
<option value="">请选择日志类型</option>27
<option value="登录操作">登录操作</option>28
<option value="添加操作">添加操作</option>29
<option value="查询操作">查询操作</option>30
<option value="删除操作">删除操作</option>31
<option value="修改操作">修改操作</option>32
</select>33
</div>34
</div>35
<div class="layui-inline">36
<label class="layui-form-label">登录名称</label>37
<div class="layui-input-inline">38
<input type="text" name="loginname" id="loginname" class="layui-input searchVal" placeholder="请输入登录名称" />39
</div>40
</div>41
<div class="layui-inline">42
<label class="layui-form-label">开始时间</label>43
<div class="layui-input-inline">44
<input type="text" name="startTime" id="startTime" class="layui-input searchVal" placeholder="开始时间" />45
</div>46
</div>47
<div class="layui-inline">48
<label class="layui-form-label">结束时间</label>49
<div class="layui-input-inline">50
<input type="text" name="endTime" id="endTime" class="layui-input searchVal" placeholder="结束时间" />51
</div>52
</div>53
</div>54
55
<div class="layui-form-item">56
<div class="layui-input-block" style="text-align: center;">57
<button type="button" class="layui-btn"><span class="layui-icon layui-icon-search"></span>查询</button>58
<button type="reset" class="layui-btn layui-btn-warm"><span class="layui-icon layui-icon-refresh-1"></span>重置</button>59
</div>60
</div>61
</form>62
</blockquote>63
</form>64
<!-- 查询条件结束-->65
66
67
<!-- 数据表格开始 -->68
<div>69
<table class="layui-hide" id="logTable" lay-filter="logTable"></table>70
<!-- 表格工具栏 -->71
<div id="logToolBar" style="display: none;">72
<button type="button" lay-event="batchDelete" class="layui-btn layui-btn-sm layui-btn-danger">73
<span class="layui-icon layui-icon-delete"></span>批量删除74
</button>75
</div>76
</div>77
<!-- 数据表格结束 -->78
79
<script type="text/javascript" src="/resource/layui/layui.js"></script>80
<script type="text/javascript">81
layui.use();82
</script>83
</body>84
</html>渲染日期控件
<script type="text/javascript">
layui.use(['jquery','form','table','layer','laydate'],function () {
var $ = layui.jquery;
var form = layui.form;
var table = layui.table;
var layer = layui.layer;
var laydate = layui.laydate;
//初始化时间选择器
laydate.render({
elem:'#startTime',//绑定渲染的元素
type:'datetime'//控制选择类型
});
laydate.render({
elem:'#endTime',//绑定表单元素中的ID属性值
type:'datetime'//控件类型,默认为date
})
})
</script>18
1
<script type="text/javascript">2
layui.use(['jquery','form','table','layer','laydate'],function () {3
var $ = layui.jquery;4
var form = layui.form;5
var table = layui.table;6
var layer = layui.layer;7
var laydate = layui.laydate;8
//初始化时间选择器9
laydate.render({10
elem:'#startTime',//绑定渲染的元素11
type:'datetime'//控制选择类型12
});13
laydate.render({14
elem:'#endTime',//绑定表单元素中的ID属性值15
type:'datetime'//控件类型,默认为date16
})17
})18
</script>渲染表格控件
//渲染数据表格
var tableIns = table.render({
elem: '#logTool',
url:'/sys/log/loglist',
toolbar:'#logToolBar',//开启头部工具栏,并为其绑定左侧模板,批量删除
title:'用户操作日志数据表',
height:'full-180',
page:true,
cols:[ [
{type:'checkbox',fixed:'left'},
{field: 'id',title:'ID',align:'center'},
{field: 'loginname',title:'登陆名称',align:'center'},
{field: 'type',title:'日志类型',align:'center'},
{field: 'content',title:'日志内容',align:'center'},
{field: 'loginip',title:'登录地址',align:'center'},
{field: 'createtime',title:'登录时间',align:'center'},
] ]
})18
1
//渲染数据表格2
var tableIns = table.render({3
elem: '#logTool',4
url:'/sys/log/loglist',5
toolbar:'#logToolBar',//开启头部工具栏,并为其绑定左侧模板,批量删除6
title:'用户操作日志数据表',7
height:'full-180',8
page:true,9
cols:[ [10
{type:'checkbox',fixed:'left'},11
{field: 'id',title:'ID',align:'center'},12
{field: 'loginname',title:'登陆名称',align:'center'},13
{field: 'type',title:'日志类型',align:'center'},14
{field: 'content',title:'日志内容',align:'center'},15
{field: 'loginip',title:'登录地址',align:'center'},16
{field: 'createtime',title:'登录时间',align:'center'},17
] ]18
})
创建LogVo
package com.bdqn.sys.vo;
import com.bdqn.sys.entity.Log;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 日志扩展类
*/
public class LogVo extends Log {
private Integer page;//当前页码
private Integer limit;//每页显示数量
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;//开始时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;//结束时间
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getLimit() {
return limit;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
}51
1
package com.bdqn.sys.vo;2
3
import com.bdqn.sys.entity.Log;4
import org.springframework.format.annotation.DateTimeFormat;5
6
import java.util.Date;7
8
/**9
* 日志扩展类10
*/11
public class LogVo extends Log {12
private Integer page;//当前页码13
private Integer limit;//每页显示数量14
15
(pattern = "yyyy-MM-dd HH:mm:ss")16
private Date startTime;//开始时间17
(pattern = "yyyy-MM-dd HH:mm:ss")18
private Date endTime;//结束时间19
20
public Integer getPage() {21
return page;22
}23
24
public void setPage(Integer page) {25
this.page = page;26
}27
28
public Integer getLimit() {29
return limit;30
}31
32
public void setLimit(Integer limit) {33
this.limit = limit;34
}35
36
public Date getStartTime() {37
return startTime;38
}39
40
public void setStartTime(Date startTime) {41
this.startTime = startTime;42
}43
44
public Date getEndTime() {45
return endTime;46
}47
48
public void setEndTime(Date endTime) {49
this.endTime = endTime;50
}51
}package com.bdqn.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bdqn.sys.entity.Log;
import com.bdqn.sys.service.LogService;
import com.bdqn.sys.utils.DataGridViewResult;
import com.bdqn.sys.utils.JSONResult;
import com.bdqn.sys.utils.SystemConstant;
import com.bdqn.sys.vo.LogVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Arrays;
/**
* <p>
* 前端控制器
* </p>
*
* @author KazuGin
* @since 2019-12-11
*/
@RestController
@RequestMapping("/sys/log")
public class LogController {
@Resource
private LogService logService;
@RequestMapping("/loglist")
public DataGridViewResult findLogList(LogVo logVo){
//创建分页对象,并指定当前页码及每页显示数量
IPage<Log> page = new Page<Log>(logVo.getPage(),logVo.getLimit());
//设置查询条件
QueryWrapper<Log> queryWrapper = new QueryWrapper<Log>();
//调用分页查询方法
logService.page(page,queryWrapper);
//返回数据
return new DataGridViewResult(page.getTotal(),page.getRecords());
}
}48
1
package com.bdqn.sys.controller;2
3
4
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;5
import com.baomidou.mybatisplus.core.metadata.IPage;6
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;7
import com.bdqn.sys.entity.Log;8
import com.bdqn.sys.service.LogService;9
import com.bdqn.sys.utils.DataGridViewResult;10
import com.bdqn.sys.utils.JSONResult;11
import com.bdqn.sys.utils.SystemConstant;12
import com.bdqn.sys.vo.LogVo;13
import org.apache.commons.lang3.StringUtils;14
import org.springframework.web.bind.annotation.RequestMapping;15
import org.springframework.web.bind.annotation.ResponseBody;16
import org.springframework.web.bind.annotation.RestController;17
18
import javax.annotation.Resource;19
import java.util.Arrays;20
21
/**22
* <p>23
* 前端控制器24
* </p>25
*26
* @author KazuGin27
* @since 2019-12-1128
*/29
30
("/sys/log")31
public class LogController {32
33
34
35
private LogService logService;36
37
("/loglist")38
public DataGridViewResult findLogList(LogVo logVo){39
//创建分页对象,并指定当前页码及每页显示数量40
IPage<Log> page = new Page<Log>(logVo.getPage(),logVo.getLimit());41
//设置查询条件42
QueryWrapper<Log> queryWrapper = new QueryWrapper<Log>();43
//调用分页查询方法44
logService.page(page,queryWrapper);45
//返回数据46
return new DataGridViewResult(page.getTotal(),page.getRecords());47
}48
}MyBatisPlusConfig
在com.bdqn.sys.config包下创建mybatis-plus分页插件配置类
package com.bdqn.sys.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration//标记该类是一个配置类
@EnableTransactionManagement//开启事务管理
@MapperScan(basePackages = {"com.bdqn.sys.dao"})//加载mapper接口所在的包
public class MyBatisPlusConfig {
/**
* 注入分页插件
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}24
1
package com.bdqn.sys.config;2
3
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;4
import org.mybatis.spring.annotation.MapperScan;5
import org.springframework.context.annotation.Bean;6
import org.springframework.context.annotation.Configuration;7
import org.springframework.transaction.annotation.EnableTransactionManagement;8
9
//标记该类是一个配置类10
//开启事务管理11
(basePackages = {"com.bdqn.sys.dao"})//加载mapper接口所在的包12
public class MyBatisPlusConfig {13
14
15
/**16
* 注入分页插件17
* @return18
*/19
20
public PaginationInterceptor paginationInterceptor(){21
return new PaginationInterceptor();22
}23
24
}模糊查询
在页面中value属性是中文的,获取type,在layui里面,form要提交,name属性要跟实体类属性相同,因为参数是LogVo类型添加lay-submit和lay-filter表格重载
//绑定模糊查询监听事件//绑定模糊查询监听事件//form是var定义的,on是监听事件//其中:submit()是Layui中form表单的提交事件//doSearch是lay-filter的属性值
form.on("submit(doSearch)", function(data) {
//sys/log/list?type=登录操作&loginname= &starttime= &endtime=
console.log(data)
console.log(data.field);
tableIns.reload({
where:data.field,//额外参数,?后面的参数
page:{
curr:1//当前页码
}
});
return false;//关闭跳转页面
})12
1
form.on("submit(doSearch)", function(data) {2
//sys/log/list?type=登录操作&loginname= &starttime= &endtime=3
console.log(data)4
console.log(data.field);5
tableIns.reload({6
where:data.field,//额外参数,?后面的参数7
page:{8
curr:1//当前页码9
}10
});11
return false;//关闭跳转页面12
})isnotBlok只能放字符串,不用在前面加!了
package com.igeek.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.igeek.sys.entity.Log;
import com.igeek.sys.service.LogService;
import com.igeek.sys.util.DataGridViewResult;
import com.igeek.sys.vo.LogVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhj
* @since 2020-04-13
*/
@RestController
@RequestMapping("/sys/log")
public class LogController {
@Resource
private LogService logService;
@RequestMapping("/loglist")
public DataGridViewResult findLogList(LogVo logVo){
//创建分页对象,并指定当前页码及每页显示数量
IPage<Log> page = new Page<Log>(logVo.getPage(),logVo.getLimit());
//设置查询条件
QueryWrapper<Log> queryWrapper = new QueryWrapper<Log>();
//登录名模糊查询
queryWrapper.like(StringUtils.isNotBlank(logVo.getLoginname()),"loginname",logVo.getLoginname());
//操作类型
queryWrapper.eq(StringUtils.isNotBlank(logVo.getType()),"type",logVo.getType());
//开始时间
queryWrapper.ge(logVo.getStartTime()!=null,"createtime",logVo.getStartTime());
//结束时间
queryWrapper.le(logVo.getEndTime()!=null,"createtime",logVo.getEndTime());
//设置排序
queryWrapper.orderByDesc("createtime");//登录时间降序
//调用分页查询方法
IPage<Log> logIPage = logService.page(page, queryWrapper);
//返回数据
return new DataGridViewResult(logIPage.getTotal(),logIPage.getRecords());
}
}54
1
package com.igeek.sys.controller;2
3
4
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;5
import com.baomidou.mybatisplus.core.metadata.IPage;6
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;7
import com.igeek.sys.entity.Log;8
import com.igeek.sys.service.LogService;9
import com.igeek.sys.util.DataGridViewResult;10
import com.igeek.sys.vo.LogVo;11
import org.apache.commons.lang3.StringUtils;12
import org.springframework.web.bind.annotation.RequestMapping;13
14
import org.springframework.web.bind.annotation.RestController;15
16
import javax.annotation.Resource;17
18
/**19
* <p>20
* 前端控制器21
* </p>22
*23
* @author zhj24
* @since 2020-04-1325
*/26
27
("/sys/log")28
public class LogController {29
30
31
private LogService logService;32
33
("/loglist")34
public DataGridViewResult findLogList(LogVo logVo){35
//创建分页对象,并指定当前页码及每页显示数量36
IPage<Log> page = new Page<Log>(logVo.getPage(),logVo.getLimit());37
//设置查询条件38
QueryWrapper<Log> queryWrapper = new QueryWrapper<Log>();39
//登录名模糊查询40
queryWrapper.like(StringUtils.isNotBlank(logVo.getLoginname()),"loginname",logVo.getLoginname());41
//操作类型42
queryWrapper.eq(StringUtils.isNotBlank(logVo.getType()),"type",logVo.getType());43
//开始时间44
queryWrapper.ge(logVo.getStartTime()!=null,"createtime",logVo.getStartTime());45
//结束时间46
queryWrapper.le(logVo.getEndTime()!=null,"createtime",logVo.getEndTime());47
//设置排序48
queryWrapper.orderByDesc("createtime");//登录时间降序49
//调用分页查询方法50
IPage<Log> logIPage = logService.page(page, queryWrapper);51
//返回数据52
return new DataGridViewResult(logIPage.getTotal(),logIPage.getRecords());53
}54
}
批量删除日志
首先要监听按钮//监听数据表格的头部工具栏时间//步骤1:头部工具栏按设置lay-event属性//步骤2:绑定表格的监听事件,反是没加#的都是监听Lay-filter的值//步骤3:case:lay-event属性
table.on("toolbar(logTable)",function (obj) {
switch (obj.event) {
case "batchDelete":
alert(obj.event);
//调用批量删除的方法
batchDelete();//批量删除
break;
}
})9
1
table.on("toolbar(logTable)",function (obj) {2
switch (obj.event) {3
case "batchDelete":4
alert(obj.event);5
//调用批量删除的方法6
batchDelete();//批量删除7
break;8
}9
})获取选中行
//批量删除方法
//批量删除方法
function batchDelete() {
//获取选中行
var checkStatus = table.checkStatus('logTable'); // 即为基础参数 lay-filter的值
console.log(checkStatus);
console.log(checkStatus.data); //获取选中行的数据
//获取选中的数量
var length = checkStatus.data.length;
console.log(length);//获取选中行数量,可作为是否有选中行的条件
if(length>0){
//提示是否删除
layer.confirm('确定要删除这'+length+'条数据吗', {icon: 3, title:'提示'}, function(index){
//获取选中行的数据
var checkData = checkStatus.data;
//声明数组,保存选中行的ID
var idArr = [];
//循环
for(var i=0;i<length;i++){
idArr.push(checkData[i].id)
}
//转换
var ids = idArr.join(",");
//发送删除请求
$.post("/sys/log/delete",{"ids":ids},function (result) {
//判断是否成功
if(result.success){
//删除成功后刷新数据
tableIns.reload();
}
//弹出提示信息,
layer.msg(result.message);
},"json");
//关闭提示框
layer.close(index);
});
}else{
//提示没有选择
// layer.alert("请选择要删除的行!",{icon:0})
layer.msg("请选择要删除的行!",{time:2000})
}
console.log(checkStatus.isAll ) //表格是否全选
}x
1
//批量删除方法2
function batchDelete() {3
//获取选中行4
var checkStatus = table.checkStatus('logTable'); // 即为基础参数 lay-filter的值5
console.log(checkStatus);6
console.log(checkStatus.data); //获取选中行的数据7
//获取选中的数量8
var length = checkStatus.data.length;9
console.log(length);//获取选中行数量,可作为是否有选中行的条件10
if(length>0){11
//提示是否删除12
layer.confirm('确定要删除这'+length+'条数据吗', {icon: 3, title:'提示'}, function(index){13
//获取选中行的数据14
var checkData = checkStatus.data;15
//声明数组,保存选中行的ID16
var idArr = [];17
//循环18
for(var i=0;i<length;i++){19
idArr.push(checkData[i].id)20
}21
//转换22
var ids = idArr.join(",");23
//发送删除请求24
$.post("/sys/log/delete",{"ids":ids},function (result) {25
//判断是否成功26
if(result.success){27
//删除成功后刷新数据28
tableIns.reload();29
}30
//弹出提示信息,31
layer.msg(result.message);32
},"json");33
//关闭提示框34
layer.close(index);35
});36
}else{37
//提示没有选择38
// layer.alert("请选择要删除的行!",{icon:0})39
layer.msg("请选择要删除的行!",{time:2000})40
}41
console.log(checkStatus.isAll ) //表格是否全选42
}修改SystemConstant
/**
* 删除成功
*/
JSONResult DELETE_SUCCESS = new JSONResult(true,"删除成功");
/**
* 删除失败
*/
JSONResult DELETE_ERROR = new JSONResult(false,"删除失败");
/**
* 添加成功
*/
JSONResult ADD_SUCCESS = new JSONResult(true,"添加成功");
/**
* 添加失败
*/
JSONResult ADD_ERROR = new JSONResult(false,"添加失败");
/**
* 修改成功
*/
JSONResult UPDATE_SUCCESS = new JSONResult(true,"修改成功");
/**
* 修改失败
*/
JSONResult UPDATE_ERROR = new JSONResult(false,"修改失败");
1
/**2
* 删除成功3
*/4
JSONResult DELETE_SUCCESS = new JSONResult(true,"删除成功");5
/**6
* 删除失败7
*/8
JSONResult DELETE_ERROR = new JSONResult(false,"删除失败");9
/**10
* 添加成功11
*/12
JSONResult ADD_SUCCESS = new JSONResult(true,"添加成功");13
/**14
* 添加失败15
*/16
JSONResult ADD_ERROR = new JSONResult(false,"添加失败");17
/**18
* 修改成功19
*/20
JSONResult UPDATE_SUCCESS = new JSONResult(true,"修改成功");21
/**22
* 修改失败23
*/24
JSONResult UPDATE_ERROR = new JSONResult(false,"修改失败");25
@RequestMapping("/delete")
public JSONResult delete(String ids){
try {
//将字符串拆分成数组
String[] idStr = ids.split(",");
//判断是否删除成功
if(logService.removeByIds(Arrays.asList(idStr))){
//删除成功
return SystemConstant.DELETE_SUCCESS;
}
} catch (Exception e) {
e.printStackTrace();
}
//删除失败
return SystemConstant.DELETE_ERROR;
}1
("/delete")2
public JSONResult delete(String ids){3
try {4
//将字符串拆分成数组5
String[] idStr = ids.split(",");6
//判断是否删除成功7
if(logService.removeByIds(Arrays.asList(idStr))){8
//删除成功9
return SystemConstant.DELETE_SUCCESS;10
}11
} catch (Exception e) {12
e.printStackTrace();13
}14
//删除失败15
return SystemConstant.DELETE_ERROR;16
}修改页码,要添加回调函数logManager.html
//判断当前页码是否大于1//三个参数随便取 res:当前页数据,curr:当前页码,count:数据总量//当面页码>1,说明 还是第一页//当前数据 == 0 ,说明没数据
//回调函数
done:function (res,curr,count) {
//判断当前页码是否大于1
//三个参数随便取 res:当前页数据,curr:当前页码,count:数据总量
//当面页码>1,说明 还是第一页
//当前数据 == 0 ,说明没数据
if(curr>1 && res.data.length == 0){
//当前页码-1
var pageValue = curr-1;
tableIns.reload({
//修改页码
page:{curr:pageValue}
})
}
}x
1
//回调函数2
done:function (res,curr,count) {3
//判断当前页码是否大于14
//三个参数随便取 res:当前页数据,curr:当前页码,count:数据总量5
//当面页码>1,说明 还是第一页6
//当前数据 == 0 ,说明没数据7
if(curr>1 && res.data.length == 0){8
//当前页码-19
var pageValue = curr-1;10
tableIns.reload({11
//修改页码12
page:{curr:pageValue}13
})14
}15
}






















浙公网安备 33010602011771号