一、switch开关修改
layui.use(['admin', 'table', 'view', 'form', 'layer','ourJs'], function () {
var table = layui.table
,admin = layui.admin
,form = layui.form
,layer = layui.layer
,ourJs = layui.ourJs
,view = layui.view;
form.on('switch(checkbox_ishot)', function (e) {
var _this=this,status=e.elem.checked;
admin.req({
url: '你的接口'
,data: { id: e.value }
,type: 'post'
,success: function (res) {
if (res.code == 1) {
ourJs.status_tong(table,_this,status,'is_hot');
} else {
layer.msg(res.msg, { icon: 5, anim: 6, shade: 0.5, time: 1000 });
}
}
});
});
});
public_html\static\admin\src\controller\ourJs.js
layui.define(['jquery'],function(exports) {
var $ = layui.jquery;
var obj={
status_tong:function(table,_this,status,type)
{
type=type==undefined?'status':type;
var arr=table.cache;
var data='';
for(var i in arr){
data=arr[i];
}
var td=$(_this).parent().parent();
var tr=td.parent().attr('data-index');
if (status === true) {
status = 1;
} else {
status = 0;
}
for(var i in data[tr]){
if(i==type){
data[tr][i]=status;
break;
}
}
}
}
exports("ourJs", obj);
});
二、导出xIs [table.exportFile]
当导出xIs时,table的switch开关表现为 0或者1。
如下修改:
先将 is_seach=0 的值改为 是/否;
if(obj.event==‘LAYTABLE_EXPORT’) 判断只给【导出】按钮加事件;
item.field==‘is_seach’ 判断等于is_seach,删除templet
,parseData: function (res) { //res 即为原始返回的数据
res.data.list.forEach(item=>{
item.is_seach==0? item.is_seach='否': item.is_seach='是';
})
}
// 导出表格
table.on('toolbar(test)', function(obj){
if(obj.event=='LAYTABLE_EXPORT'){
obj.config.cols[0].forEach(item=>{
if(item.field=='is_seach'){
delete item.templet
}
})
tableData = table.cache['test'];
}
switch(obj.event){
case 'LAYTABLE_EXPORT':
table.exportFile('test',tableData,'xls');
break;
};
});
结果如下
<table class="layui-hide" id="test" lay-filter="test"></table>
<script type="text/html" id="test_table_ss">
<input type="checkbox" name="status" data-name="is_seach" lay-skin="switch" lay-text="是|否"
class="layui-input" {{ d.is_seach === '是' ? 'checked' : '' }} lay-filter="checkbox_status">
</script>
<script>
layui.use(['admin', 'table', 'view', 'form', 'layer', 'setter'], function () {
var $ = layui.$
,admin = layui.admin
,form = layui.form
,view = layui.view
,layer = layui.layer
,setter = layui.setter
,table = layui.table
,router = layui.router();
table.render({
elem: '#test'
,url:'../../test/table/demo1.json.js'/*tpa=http://www.layui.com/test/table/demo1.json*/
,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
,parseData: function (res) { //res 即为原始返回的数据
res.data.list.forEach(item=>{
item.is_seach==0? item.is_seach='否': item.is_seach='是';
})
return {
"code": res.code, //解析接口状态
"msg": res.msg, //解析提示文本
"count": res.data.count, //解析数据长度
"data": res.data.list //解析数据列表
};
}
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field:'sex', title:'性别', align:'center'}
,{ field:'is_seach',title: '搜索', templet: '#test_table_ss', align:'center'}
]]
,page: true
});
// 导出表格
table.on('toolbar(test)', function(obj){
if(obj.event=='LAYTABLE_EXPORT'){
obj.config.cols[0].forEach(item=>{
if(item.field=='is_seach'){
delete item.templet
}
})
tableData = table.cache['alipay_autho'];
}
switch(obj.event){
case 'LAYTABLE_EXPORT':
table.exportFile('test',tableData,'xls');
break;
};
});