随笔 - 36, 文章 - 0, 评论 - 0, 阅读 - 15403
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

提示:整个表格要在form标签内

定义开关模板

复制代码
<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list"
     style="padding: 20px 30px 0 0;">

    <form action="{:request()->url()}" method="post" data-role="yd_form_submit" data-type="open">
        <input type="hidden" name="id" value="{$pid}">
        <div class="layui-card-body">
            <table class="layui-hide" id="demo"></table>

        </div>


        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="submit" class="layui-btn">保存</button>
            </div>
        </div>

    </form>
</div>


//这个是开关滑块模板
<script type="text/html" id="app_server_status">

    <input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="上架|下架" lay-filter="app_server_status"
           {{ d.status == 1 ? 'checked' : '' }}>
</script>

//这个是表单渲染数据和初始化调用后台数据(通过向接口传id获取特定数据,数组形式)
<script>


    var id="{$pid}";


    $(document).ready(function () {
        $.ajax({
            type: "post",
            url:'getNorm?id='+id,//这里是接口传值
            data: {},
            dataType: "json",
            success: function (data) {

                layui.use('table', function(){
                    var table = layui.table;

                    //展示已知数据
                    table.render({
                        elem: '#demo'
                        ,cols: [[ //标题栏
                            ,{type: 'checkbox'}
                            ,{field: 'id', title: '库存ID', width: 80, sort: true}
                            ,{field: 'pid', title: '商品id', width: 120,}
                            ,{field: 'title', title: '类商品名', minWidth: 150}
                            ,{field: 'norm', title: '规格属性', minWidth: 160}
                            ,{field: 'logo', title: '积分', width: 80, sort: true,edit: 'text'}
                            ,{field: 'price', title: '售价', width: 80, sort: true,edit: 'text'}
                            ,{field: 'or_price', title: '原价格', width: 80, sort: true,edit: 'text'}
                            ,{field: 'cost_price', title: '成本价', width: 80, sort: true,edit: 'text'}
                            ,{field: 'number', title: '库存量', width: 80, sort: true,edit: 'text'}
                            ,{field: 'weight', title: '重量(kg)', width: 80, sort: true,edit: 'text'}
                            ,{field: 'volume', title: '体积(m³)', width: 80, sort: true,edit: 'text'}
                            ,{field: 'sort', title: '排序', width: 100,edit: 'text'}
                            ,{field:'status', title:'状态', width:110, templet: '#checkboxTpl', unresize: true}
                            ,{
                                field: 'status',
                                title: '状态',
                                align: 'center',
                                templet: '#app_server_status',
                                unresize: true,
                                width: 100
                            },//这里是开关滑块的引用方式

                        ]]
                        ,data: data.msg //这里是获取的后台数据渲染
                        //,skin: 'line' //表格风格
                        ,even: true
                        ,page: true //是否显示分页
                        //,limits: [5, 7, 10]
                        //,limit: 5 //每页默认显示的数量
                    });



                    //监听单元格编辑
                    table.on('edit(demo)', function(obj){
                        var value = obj.value //得到修改后的值
                                ,data = obj.data //得到所在行所有键值
                                ,field = obj.field; //得到字段
                        layer.msg('[ID: '+ data.id +'] ' + field + ' 字段更改值为:'+ util.escape(value));
                    });
                });
            }
        });

    });


</script>
复制代码

 

↓↓定义复选框

 

复制代码
table.render({
            elem: '#js_table_reource_invite_supplier_index_table',
            data:[],
            cellMinWidth: 80,
            maxHeight:300,
            loading: true,
            even: true,
            method: 'POST',
            cols: [
                [
                    {type: 'numbers', title: '序号'},
                    {type: 'checkbox', width: 50},
                    {field: 'provider_name', title: '供方名称',width: 150},
                    {field: 'is_qualified', title: '是否合格',width: 100, align: 'center',templet:function(row){
                        var html = "<input type='checkbox' lay-skin='primary' lay-filter='checkboxIsSelected' table-index='"+row.LAY_TABLE_INDEX+"' class='checkboxIsSelected' value='1' ";
                        if(row.is_qualified == 1){
                            html += " checked ";
                        }
                        html += ">";
                        return html;
                    }},//这里是复选框引用
                   
                    
                ]],
                done: function (obj) {
                    layer.closeAll();
                    form.on('checkbox(checkboxIsSelected)', function(data){
                        var _index = $(data.elem).attr('table-index')||0;
                          if(data.elem.checked){
                           obj.data[_index].is_qualified = data.value;
                        }else{
                           obj.data[_index].is_qualified = 2;
                        }
                    });   
                    
                }
        });
复制代码

 

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示