若依的框架怎么样_基于bootstrapTable的若依框架如何获取表
格选中⾏的整⾏数据?...
导语
项⽬是基于若依框架写的,⼤部分的底层技术都是bootstrap。
最近在写⼀个项⽬的时候遇见⼀个需求,需要将⼦页⾯表格中选中的数据回传给⽗页⾯。为了减少⽹络请求,所以就准备直接使⽤⼦⽗页⾯传值。于是我查看了⼀下ruoyi.js源码,发现其中只有获取选中的数据id值的函数,并没有获取整⾏数据的函数。不过根据现有的函数发现获取整⾏数据是可以实现的。
第⼀步 分析源码
以下是获取选中⾏的指定列的值的代码,可以看见在回传数据的时候,都标明了指定列,所以我们只需要重写⼀个函数,不标明指定列就可以实现想要的功能了。
selectColumns: function(column) {
//获取当前选中的值
var rows = $.map($("#" + table.options.id).bootstrapTable('getSelections'), function (row) {
return row[column];//传回指定列的值
});
//如果设置了记住选中数据
if ($mon.isNotEmpty(berSelected) && berSelected) {
var selectedRows = berSelecteds[table.options.id];
bootstrap项目if($mon.isNotEmpty(selectedRows)) {
rows = $.berSelecteds[table.options.id], function (row) {
return row[column];//回传指定列的值
});
}
}
//去重
return $mon.uniqueFn(rows);
},
第⼆步 重写函数 获取选中⾏的整⾏数据
根据现有的函数,改起来也很简单。直接将指定列的部分删除就好,不过值得注意的⼀点就是去重函数也需要重写
selectRows:function(){
//获取当前选中的值
let rows = $.map($("#" + table.options.id).bootstrapTable('getSelections'), function (row) {
return row;
});
//如果设置了记住选中数据
if ($mon.isNotEmpty(berSelected) && berSelected) { let selectedRows = berSelecteds[table.options.id];
if($mon.isNotEmpty(selectedRows)) {
rows = $.berSelecteds[table.options.id], function (row) {
return row;
});
}
}
//去重
return $mon.uniqueFnByRows(rows);
},
第三步 重写去重函数
在原有的去重函数下⽅重写⼀个新的去重函数就好
uniqueFnByRows:function(array){
var result = [];
var hashObj = {};
for (var i = 0; i < array.length; i++) {
if (!hashObj[array[i].id]) {//参数id为主键,请根据⾃⼰的情况进⾏修改
hashObj[array[i].id] = true;
result.push(array[i]);
}
}
return result;
},
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论