layui使用记录

datatable 中 使用 radio

table.render({
elem: '#table_2304' //指定原始表格元素选择器(推荐id选择器)
, height: 500 //容器高度
, width: table_width
, cellMinWidth: 100
, cols: [[
//{ checkbox: true }
{ type: 'radio',title:'选择' },
{ field: 'Yibaojsid', title: '医保结算表主键', minWidth: 160 },

]] //设置表头
, id: 'Yibaojsid'//var checkStatus = table.checkStatus('idTest'); //idTest 即为基础参数 id 对应的值
, url: "@Url.Action("ChuLiGongJuCX", "WHGL")"
, where: { renyuanbh: renyuanbh, yewulx: yewulx, jiuzhenid: jiuzhenid, jiesuanid: jiesuanid, jiekoulx: jiekoulx, xiaoxiid: xiaoxiid}
, method:"post"
, page: true
, limit: 10
, request: {
pageName: 'pageNum' //页码的参数名称,默认:page
, limitName: 'pageSize' //每页数据量的参数名,默认:limit
}
, done: function (res, curr, count) {
if (count>0) {
$("#div_table").show();
$("#table_2304").show();
}
if (count == 0) {
layer.alert(res.Message);
$("#div_table").hide();
}
//如果是异步请求数据方式,res即为你接口返回的信息。
//如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
//console.log(res);
//console.log(curr);//得到当前页码
//console.log(count);//得到数据总量
}
});


table.on('radio(table_lay_filte)', function (obj) { var yewulx = $("#yeWuLX").val();//业务类型 var jiekoulx = $("#jieKouLX").val(); //接口类型 if (jiekoulx == '0') { obj.checked = false; layer.alert('未选择接口类型!'); } var data = obj.data; $("#uitxtjiuzhenid").val(data.Yibaojylsh); console.log(data); if (jiekoulx == '2208' || jiekoulx == '2305') { var jiesuanId = data.Jiesuanid; if (jiesuanId =='null' || jiesuanId == '') { $("#uitxtjiesuanid").val(jiesuanId); } else { layer.alert('未检测到结算ID,请补全信息或者更改调用接口!'); } } if (jiekoulx == "2601") { var yiyaojgjsId = data.Yiyaojgjsid; if (yiyaojgjsId == 'null' || yiyaojgjsId == '') { $("#uitxtxiaoxiid").val(yiyaojgjsId); } else { layer.alert('未检测到结算ID,请补全信息或者更改调用接口!'); } } //console.log(obj); //当前行的一些常用操作集合 //console.log(obj.checked); //当前是否选中状态 //console.log(obj.data); //选中行的相关数据 //var data = obj.data; //alert(JSON.stringify(data)); //选中radio,适用于局部(单表) // obj.tr.find("input[lay-type='layTableRadio']").prop("checked",true); // form.render('radio'); //标注选中样式 //obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click'); });
  <table id="table_2304" class="layui-table" lay-filter="table_lay_filte">
  </table>
// 点击选中,再点击取消选中,defaultChecked 是存储是否已经选中的状态。
table.on('radio(test)', function(obj){ //test 是 table 标签对应的 lay-filter 属性
  var that = this;
  var elem = layui.$(that).prev(':radio');
  if(elem.prop('defaultChecked')) {
    obj.checked = false;
    elem.prop('checked' , obj.checked);
  }
  obj.tr.siblings('tr').find(':radio[lay-type="layTableRadio"]').each(function(e){
    this.defaultChecked= false;
  })
    var tableName = obj.tr.parents('.layui-table-view').attr('lay-id');;// 表名
    var index = obj.tr.data('index')
    //重置数据单选属性
    layui.each(layui.table.cache[tableName], function (i, item) {
        if (index === i) {
            item.LAY_CHECKED =  obj.checked;
        } else {
            delete item.LAY_CHECKED;
        }
    });
  elem.prop('defaultChecked', obj.checked);
  layui.form.render('radio');
});
    /**
     * 设置表格取消选中
     * @param tableName demo 表名
     * @param field id 属性
     * @param values [1,2,3]数组,区别字符串和数值,为空就是全部取消选中
     */
    function setTableChecked(tableName, field, values) {
        // 设置缓存选中
        var thisData = layui.table.cache[tableName] || [];//tableName 表名
        thisData.forEach(function (item) {
            item.LAY_CHECKED = values.includes(item[field]) ? false : item.LAY_CHECKED;
            layui.$('#' + tableName).next('.layui-table-view').find('tr[data-index="' + item.LAY_TABLE_INDEX + '"]')
                .find(':checkbox[name="layTableCheckbox"],:radio[lay-type="layTableRadio"]').prop('checked', item.LAY_CHECKED);
        });
        layui.form.render();
    }
setTableChecked("demo", 'id', [10000,10001,10002]);

  如果出现 在使用过程中 访问接口返回过慢可以(页面直接timeout) 

 在 table.render()方法调用之前加上 

$.ajaxSetup({timeout: 5000});

针对当前页面全局生效。
https://jquery.cuishifeng.cn/jQuery.ajaxSetup.html
posted @ 2023-01-10 15:28  流氓大菠萝  阅读(79)  评论(0编辑  收藏  举报