若依使用后台

  • Post author:
  • Post category:其他




一、分页实现

***前端采用基于bootstrap的轻量级表格插件bootstrap-table

*

后端采用基于mybatis的轻量级分页插件pageHelper


#前端调用实现


HTML代码

 <table id="bootstrap-table" data-resizable="true"
                           style="width: 100%;word-break:break-all; word-wrap:break-all; ">
                    </table>

js代码

var options = {
   
	url: prefix + "/list",
	columns: [{
   
		field: 'id',
		title: '主键'
	},
	{
   
		field: 'name',
		title: '名称'
	}]
};
$.table.init(options);

自定义查询条件参数(特殊情况提前设置查询条件下使用)

var options = {
   
	url: prefix + "/list",
	queryParams: queryParams,
	columns: [{
   
		field: 'id',
		title: '主键'
	},
	{
   
		field: 'name',
		title: '名称'
	}]
};
$.table.init(options);

function queryParams(params) {
   
	var search = $.table.queryParams(params);
	search.userName = $("#userName").val();
	return search;
}


#后台逻辑实现

@PostMapping("/list")
@ResponseBody
public TableDataInfo list(User user)
{
   
    startPage();  // 此方法配合前端完成自动分页
    List<User> list = userService.selectUserList(user);
    return getDataTable(list);
}



二、导入导出

在实际开发中经常需要使用导入导出功能来加快数据的操作。在项目中可以使用注解来完成此项功能。 在需要被导入导出的实体类属性添加@Excel注解,目前支持参数如下:

参数 类型 默认值 描述
sort int Integer.MAX_VALUE 导出时在excel中排序
name String 导出到Excel中的名字
dateFormat String 日期格式, 如: yyyy-MM-dd
dictType String 如果是字典类型,请设置字典的type值 (如: sys_user_sex)
readConverterExp String 读取内容转表达式 (如: 0=男,1=女,2=未知)
separator String , 分隔符,读取字符串组内容
scale int -1 BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
roundingMode int BigDecimal.ROUND_HALF_EVEN BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
columnType Enum Type.STRING 导出类型(0数字 1字符串 2图片)
height String 14 导出时在excel中每个列的高度 单位为字符
width String 16 导出时在excel中每个列的宽 单位为字符
suffix String 文字后缀,如% 90 变成90%
defaultValue String 当值为空时,字段的默认值
prompt String 提示信息
combo String Null 设置只能选择不能输入的列内容
targetAttr String 另一个类中的属性名称,支持多级获取,以小数点隔开
isStatistics boolean false 是否自动统计数据,在最后追加一行统计数据总和
type Enum Type.ALL 字段类型(0:导出导入;1:仅导出;2:仅导入)


#导出实现流程


1、前端调用封装好的方法$.table.init,传入后台exportUrl

var options = {
   
	exportUrl: prefix + "/export",
	columns: [{
   
		field: 'id',
		title: '主键'
	},
	{
   
		field: 'name',
		title: '名称'
	}]
};
$.table.init(options);

2、添加导出按钮事件

<a class="btn btn-warning" onclick="$.table.exportExcel()">
	<i class="fa fa-download"></i> 导出
</a>

3、在实体变量上添加@Excel注解

@Excel(name = "用户序号", prompt = "用户编号")
private Long userId;

@Excel(name = "用户名称")
private String userName;
	
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;

@Excel(name = "最后登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date loginDate;

4、在Controller添加导出方法

@PostMapping("/export")
@ResponseBody
public AjaxResult export(User user)
{
   
	List<User> list = userService.selectUserList(user);
	ExcelUtil<User> util = new ExcelUtil<User>(User.class);
	return util.exportExcel(list, "用户数据");
}


#导入实现流程


1、前端调用封装好的方法$.table.init,传入后台importUrl。

var options = {
   
	importUrl: prefix + "/importData",
	columns: [{
   
		field: 'id',
		title: '主键'
	},
	{
   
		field: 'name',
		title: '名称'
	}]
};
$.table.init(options);

2、添加导入按钮事件

<a class="btn btn-info" onclick="$.table.importExcel()">
	<i class="fa fa-upload"></i> 导入
</a>

3、添加导入前端代码,form默认id为importForm,也可指定importExcel(id)

<!-- 导入区域 -->
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
	<div class="col-xs-offset-1">
		<input type="file" id="file" name="file"/>
		<div class



版权声明:本文为weixin_55069111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。