记录下使用若依项目,在实际开发过程中,可能需要用到的开发点。
1、表格中字典转化:
var datas = [[${@dict.getType('sys_user_sex')}]];
formatter: function(value, row, index) {
return $.table.selectDictLabel(datas, value);
}
2、日期格式化
方式一:
formatter: function(value, row, index) {
return value.substring(0,10);
}
方式二:
@JsonFormat(pattern="yyyy-MM-dd")
private Date birthday;
3、隐藏表格某列
{
field : 'id',
visible : false
},
或者
$('#bootstrap-table').bootstrapTable('hideColumn', 'id');
4、表单中的选择框实现,以及值选中
还需加:
5、单日期选择,更多的参数配置可参看:https://blog.csdn.net/weixin_38023551/article/details/78215803
$(function() {
//初始化日期选择器
layui.use('laydate', function() {
var laydate = layui.laydate;
laydate.render({
elem: '#birthday', //指定元素
trigger: 'click'
});
});
});
6、表单校验,使用的是jquery.validate,具体使用细节可参看:http://www.runoob.com/jquery/jquery-plugin-validate.html
7、使用EasyPoi实现导出功能
将easyPoi集成到springboot中可参考:https://www.jianshu.com/p/5d67fb720ece
具体EasyPoi的使用可以参考:http://easypoi.mydoc.io/#text_186900
导入功能可参考:https://www.cnblogs.com/conswin/p/10008822.html
集成过程中针对该项目需要调整的地方:
①、需要去除ruoyi-common项目中pom.xml里poi-ooxml的引入,加入EasyPoi相应的依赖包,此时ExcelUtil.java会报错,将错误处注释掉即可,不影响原本方式的导出。
(此处将原本的poi依赖包去除的原因是,导入EasyPoi依赖包后,会与原来的Poi依赖包冲突)
②、在ry-ui.js中加入以EasyPoi方式导出的方法,以便前端调用,具体代码如下:
//使用EasyPoi方式下载
easyExportExcel: function(formId) {
var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
$.modal.loading("正在导出数据,请稍后...");
var paramsArray = $("#" + currentId).serializeArray();
var param = "";
$.each(paramsArray, function(i, field){
if(field.value != ''){
param = param + field.name + "=" + field.value + "&";
}
});
window.location.href = $.table._option.exportUrl + "?" + param ;
$.modal.closeLoading();
},
③、具体调用页面只需将原来的 οnclick="$.table.exportExcel()"改成 οnclick="$.table.easyExportExcel()"即可。
④、需要注意的地方,原来传递开始日期及结束日期是放在params中的,以现在的方式传递开始时间及结束时间时不适合放入params中(尝试了很多办法,还是没有成功)。
解决办法可以在对应业务实体中加入startTime及endTime字段,生成get、set方法,
页面中将原本name=params[beginTime]改为name=startTime,name=params[endTime]改为name=endTime,
在对应mapper中将#{params.beginTime}改为#{startTime},将#{params.endTime}改为#{endTime}即可。
8、其他注意点
①、如果是初始化树形列表的 $.treeTable.init(options);,需要隐藏相应字段,则不可以使用 visible : false,不然会导致不树形展示的问题
②、如果是初始化正常列表的 $.table.init(options);,在mapper的sql语句中不能使用order by 进行排序,不然会发生执行sql保存,可以在options 配置中加入需要排序的字段即可