perlin

perlin

315飞吻 2018-1-17 加入 来自深圳

(这个人懒得留下签名)

perlin 最近的回答

  • 3天前基于layui的动态添加条件查询ui插件中回答:

    @不凡990 没用过dxDataGrid,那个是用的伪分页吗?一次性加载所有数据,然后在前台通过js过滤?这样的话不支持。我这个是为了解决基于条件传送后台查询的。
  • 5天前高级查询扩展分享中回答:

    @flynn 之前我刚好也有这个需求,已经自己写个了[汗]
    基于layui的动态添加条件查询ui插件
  • 2018-9-26 15:39:38table.exportFile导出是乱码中回答:

    @东哥哥 需要修改源码。打开layui/lay/modules/table.js文件。
    找到table.exportFile的定义。改为如下代码:
    //表格导出
    table.exportFile = function(id, data, type){
    data = data || table.clearCacheKey(table.cache[id]);
    type = type || 'csv';

    var config = thisTable.config[id] || {}
    ,textType = ({
    csv: 'text/csv'
    ,xls: 'application/vnd.ms-excel'
    })[type]
    ,alink = document.createElement("a");

    if(device.ie) return hint.error('IE_NOT_SUPPORT_EXPORTS');

    alink.href = 'data:'+ textType +';charset=utf-8,\ufeff'+ encodeURIComponent(function(){
    var dataTitle = [], dataMain = [], dataMainForHtml = [];
    layui.each(data, function(i1, item1){
    var vals = [];
    if(typeof id === 'object'){ //ID直接为表头数据
    layui.each(id, function(i, item){
    i1 == 0 && dataTitle.push(item || '');
    });
    layui.each(table.clearCacheKey(item1), function(i2, item2){
    vals.push(item2);
    });
    } else {
    table.eachCols(id, function(i3, item3){
    if(item3.field && item3.type == 'normal' && !item3.hide){
    i1 == 0 && dataTitle.push(item3.title || '');
    vals.push(item1[item3.field]);
    }
    });
    }
    if(type == "xls"){
    dataMainForHtml.push(vals);
    }else {
    dataMain.push(vals.join(','));
    }
    });
    var html = "<table border='1' cellspacing='0' cellpadding='0'>";
    html += "<tr>";
    for(var i=0;i<dataTitle.length;i++){
    html += "<th>";
    html += dataTitle[i];
    html += "</th>";
    }
    html += "</tr>";
    for(var i=0;i<dataMainForHtml.length;i++){
    html += "<tr>";
    for(var j=0;j<dataMainForHtml[i].length;j++){
    html += "<td>";
    html += dataMainForHtml[i][j] == null ? "" : dataMainForHtml[i][j];
    html += "</td>";
    }
    html += "</tr>";
    }
    html += "</table>";
    return html;
    // return dataTitle.join(',') + '\r\n' + dataMain.join('\r\n');
    }());

    alink.download = (config.title || 'table_'+ (config.index || '')) + '.' + type;
    document.body.appendChild(alink);
    alink.click();
    document.body.removeChild(alink);
    };
  • 2018-9-18 8:0:9谈谈 table 的 sort中回答:

    @岁月小偷 谢谢你的方案。
  • 2018-9-18 7:54:40layui-v2.4.3 table的排序功能,监听后希望能禁止前台排序,就按后台返回的顺序展示。中回答:

    @圣贤愁 谢谢,这个正式我想要的。先自己改源码了。希望新版本尽快优化这个问题。
  • 2018-9-17 18:10:28layui-v2.4.3 table的排序功能,监听后希望能禁止前台排序,就按后台返回的顺序展示。中回答:

    @圣贤愁 这算一个bug吧,后台排好序了,前台还会再次排序,导致序号列错乱。是我没说明白,还是这个问题不好修复呢?
  • 2018-9-13 15:4:14layui-v2.4.3 table的排序功能,监听后希望能禁止前台排序,就按后台返回的顺序展示。中回答:


    我就是按照你提供的方法试的,返回的数据并不是我后台的排序数据。序号是我后台计算后加上去的,如果是按后台排序顺序的话,序号应该是重小到大排列的。

    后台序号代码:
    /***
    * jfinal的page对象转为与layui匹配的page对象。
    * @param page
    * @param seqFlag 如果是true,则为每条记录添加一个序号列
    * @return
    */
    public static Map pageToLayuiPage(Page page,boolean seqFlag){
    Map map = pageToLayuiPage(page);
    if(seqFlag){
    int pageNumber = page.getPageNumber(); // page number
    int pageSize = page.getPageSize(); // result amount of this page
    int seq = (pageNumber - 1) * pageSize + 1;
    List data = page.getList();
    //为每条记录添加一个序号列layui_seq
    for (Object object : data) {
    if(object instanceof Model){
    Model obj = (Model) object;
    obj.put("layui_seq", seq);
    }
    else if(object instanceof Map){
    Map obj = (Map) object;
    obj.put("layui_seq", seq);
    }
    seq++;
    }
    }
    return map;
    }
    前台js脚本:
      table.render({
    elem: '#listTable'
    ,url:'/#(appName)/admin/api/list'
    ,height: tableDivHeight
    ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
    ,cols: [[
    {field:'layui_seq', title: '序号',width:80,align:'center' }
    ,{field:'apiURL', title: 'apiURL',sort:true}
    ,{field:'apiName', title: 'apiName',sort:true}
    ,{fixed: 'right', width:178, align:'center', toolbar: '#barBtns',title: '操作'} //单元格内容水平居中
    ]]
    ,id: 'listTableId'
    ,page: true
    });

    table.on('sort(listMainTable)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
    tableReloadForSort($,"#frm",table,null,obj);
    });

    /***
    * 排序重载表格
    */
    function tableReloadForSort($,formId,table,toPage,sortObj){
    //查询 执行重载table数据表格
    if(toPage == null){
    toPage = $(".layui-laypage-next").attr("data-page") - 1;
    }
    var whereObj = getFormJson($,formId);
    if(typeof sortObj == "object" ){
    whereObj["sortField"] = sortObj.field; //排序字段
    whereObj["sortOrder"] = sortObj.type; //排序方式
    }
    table.reload("listTableId", {
    initSort: sortObj //记录初始排序,如果不设的话,将无法标记表头的排序状态。 layui 2.1.1 新增参数
    ,page: {
    curr: toPage //重新加载当前页
    }
    ,where: whereObj
    });
    return false;
    }
  • 2018-5-16 15:39:55layui自带的验证规则email和phone是不是有bug,当输入为空的时候也提示格式不对。中回答:

    @岁月小偷 ok,谢谢你了。
  • 2018-5-16 15:29:58layui自带的验证规则email和phone是不是有bug,当输入为空的时候也提示格式不对。中回答:

    @深深 那自带的phone和email验证不就废了,为什么要设置为空值也要验证啊,必填项required|phone这样配置不是挺好。
  • 2018-5-16 15:26:43layui自带的验证规则email和phone是不是有bug,当输入为空的时候也提示格式不对。中回答:

    @岁月小偷 牛B,哎,为什么官方不采用这种办法呢?看了 深深 的回复,官方推荐 选填项 要由开发者自定义验证。无语了!
  • 2018-4-24 15:13:22好像遇到bug了,该如何解决呢?中回答:

    @人要爱够 谢谢,取消列属性fixed: 'right',好像是可以了。
  • 2018-4-24 15:9:58好像遇到bug了,该如何解决呢?中回答:

    @MapleMei 试了下,没效果,还是一样的。
  • 2018-4-22 0:0:29用户登录长时间未操作,导致session失效。再次查询时table显示数据接口请求异常中回答:

    @莫辞 非常感谢你提供的思路。这么晚了还收到回复。谢谢你了!
  • 2018-4-21 11:26:3用户登录长时间未操作,导致session失效。再次查询时table显示数据接口请求异常中回答:

    @岁月小偷 改源码。。。这个应该是常见的问题吧,之前没有人分享下的解决方案么,不会大家都不处理,就这么显示数据接口请求异常吧。
  • 2018-4-21 11:15:29用户登录长时间未操作,导致session失效。再次查询时table显示数据接口请求异常中回答:

    @AndyAndy 就是怎么触发提示消息呢?