【layui】table的switch、edit修改

在这里插入图片描述

<title>简单表格数据</title>

<div class="layui-card layadmin-header">
    <div class="layui-breadcrumb" lay-filter="breadcrumb">
        <a>系统设置</a>
        <a>简单表格数据</a>
    </div>
</div>

<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
    <div class="layui-card-header">简单表格数据</div>
    <div class="layui-card-body">
        <script type="text/html" id="toolbarDemo">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
            </div>
        </script>
        <table class="layui-hide" id="test" lay-filter="test"></table>
        <script type="text/html" id="table_status">
            <input type="checkbox" name="kaiguan" value="{{d.id}}" lay-skin="switch" 
            lay-text="开启|禁止" class="layui-input" {{ d.kaiguan === 1 ? 'checked' : '' }} lay-filter="checkbox_status">
        </script> 
    </div>
</div>
</div>
</div>
</div>

<script>
layui.use(['admin','table', 'view', 'form', 'util','setter','layer','ourJs'], function(){
    var $ = layui.$
        ,admin = layui.admin
        ,setter = layui.setter
        ,element = layui.element
        ,form = layui.form
        ,view = layui.view
        ,layer = layui.layer
        ,util = layui.util
        ,table = layui.table
        ,ourJs = layui.ourJs
        ,router = layui.router();

    table.render({
        elem: '#test'
        ,url:'./user.json'
        ,toolbar: '#toolbarDemo'
        ,cols: [[
            {field:'id', width:90, title: 'ID', sort: true, align: 'center'}
            ,{field:'username', title: '用户名', align: 'center'}
            ,{field:'sex', title: '性别', align: 'center'}
            ,{field:'city', title: '城市',edit: 'text', align: 'center'}
            ,{field:'kaiguan', title: '开关', align: 'center',width: 96,templet: '#table_status'}
            ,{field:'experience', title: '积分', align: 'center'}
            ,{field:'classify', title: '职业', align: 'center'}
            ,{field:'wealth', title: '财富', align: 'center'}
        ]]
        ,page: true
    });
  	//监听工具条
  	//===edit的修改
    table.on('edit(test)', function(obj){
        var value = obj.value;
        if(obj.field === 'city'){
            admin.req({
                url: layui.setter.baseUrl + '接口地址'
                ,data: { id: obj.data.id, city: value }
                ,type: 'post'
                ,success: function (res) {
                    if (res.code == 1) {
                        layer.msg(res.msg, {icon: 1,shade:0.5,time: 1000});
                    } else {
                        layer.msg(res.msg, {icon: 5,anim: 6,shade: 0.5,time: 1000});
                    }
                }
            });
        }
    });
    // 监听菜单状态修改
  	//===switch的修改
    form.on('switch(checkbox_status)', function (e) {
        var _this = this, status = e.elem.checked;
        admin.req({
            url: layui.setter.baseUrl + '接口地址'
            ,data: { id: e.value,kaiguan: status?'1':'0' }
            ,type: 'get'
            ,success: function (res) {
                if (res.code == 1 || res.code == 0) {
                    ourJs.status_tong(table, _this, status);
                } else {
                    layer.msg(res.msg, { icon: 5, anim: 6, shade: 0.5, time: 1000 });
                }
            }
        });
    });
    
});
</script>

/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);
});
<think>好的,用户现在想在Layui框架中实现表格底部工具栏的功能或样式定制。我需要先回顾之前的历史对话,看看之前有没有相关的讨论。 用户之前询问过如何限制Layui表格行内编辑只能输入数字,我给出了几种方法,包括使用edit属性和事件监听。现在他的新问题是关于底部工具栏的自定义,可能需要调整工具栏的位置或添加功能。 接下来,我需要参考用户提供的引用内容。引用1和4提到了工具栏的配置,特别是通过toolbar属性设置为true或'default',或者自定义模板。引用4中的代码示例展示了如何在HTML中定义工具栏模板,并通过ID绑定到表格配置中。这可能是实现底部工具栏的关键。 用户的问题明确提到底部工具栏,而默认情况下Layui的工具栏是在表格顶部。所以需要找到如何将工具栏移动到底部的方法。根据Layui的文档,可能需要通过CSS调整工具栏的位置,或者查看是否有官方支持的配置选项。 引用3提到了soul-table扩展,可能提供更多的表格定制功能,比如列筛选和调整,但不确定是否直接支持底部工具栏。不过用户的问题是关于原生Layui的实现,可能需要结合现有功能进行修改。 接下来,我需要考虑如何将工具栏放置在底部。首先,用户需要在表格配置中启用工具栏,使用toolbar属性指向一个模板。然后,通过CSS将工具栏元素移动到表格底部。例如,使用flex布局反转表格的头部和底部位置,或者调整工具栏容器的定位。 另外,用户可能希望自定义底部工具栏的功能按钮,比如添加分页控件、统计信息或自定义操作按钮。根据引用4,可以通过在工具栏模板中添加按钮,并绑定相应的事件处理函数来实现。例如,添加导出按钮,并在table.on('toolbar()')中处理点击事件。 还需要注意浏览器兼容性和Layui版本的差异。确保提供的解决方案适用于用户当前使用的Layui版本,可能需要检查官方文档或社区资源。 最后,总结可能的实现步骤:定义工具栏模板,配置表格使用该模板,通过CSS调整位置,添加事件处理。同时,提供相关问题,帮助用户扩展功能,如样式调整或分页整合。</think>### Layui表格底部工具栏自定义实现方法 根据Layui官方文档和实战案例,实现表格底部工具栏功能主要通过以下两种方式实现: #### 一、基础配置方式 ```javascript table.render({ elem: '#demo', toolbar: '#bottomToolbar', // 绑定模板 defaultToolbar: [], // 清空默认顶部工具栏 // ...其他配置 }); ``` 需在HTML中定义底部工具栏模板: ```html <script type="text/html" id="bottomToolbar"> <div class="layui-table-tool layui-table-tool-bottom"> <div class="layui-btn-group"> <button class="layui-btn layui-btn-sm" lay-event="export">导出Excel</button> <button class="layui-btn layui-btn-sm" lay-event="statistics">数据统计</button> </div> <div class="layui-table-tool-temp">当前共{{ d.length }}条数据</div> </div> </script> ``` #### 二、样式定位方案(推荐) ```css /* 强制工具栏显示在底部 */ .layui-table-tool { position: static !important; border-top: 1px solid #eee; } .layui-table-view .layui-table-tool { margin-top: -1px; } ``` #### 三、功能事件绑定 ```javascript table.on('toolbar()', function(obj){ switch(obj.event){ case 'export': exportExcel(obj.data); break; case 'statistics': showStatistics(obj.config.id); break; } }); ``` #### 四、进阶功能集成 可结合`soul-table`扩展实现动态统计: ```javascript toolbar: '#bottomToolbar', soulTable: { totals: { score: 'avg', age: ['min', 'max'] } } ``` [^1]: 通过CSS定位方案可实现工具栏位置控制,避免DOM结构冲突; [^2]: 事件绑定机制保持与顶部工具栏相同的交互逻辑; [^3]: soul-table扩展提供原生数据统计支持,需单独引入组件; --相关问题-- 1. 如何实现Layui表格底部工具栏的分页功能整合? 2. 怎样动态更新底部工具栏的统计信息? 3. Layui表格上下双工具栏如何共存? 4. 如何给底部工具栏添加响应式样式适配?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值