layui表格排序hack,0永远是最小,比负数小

bug如图:


image.png

作者2.6.7已经修复该问题,refrence。但是,我们项目的版本是2.55,已经运行很久不想升级layui。于是增加如下修复文件 layui.hack.js.

使用方法:在目标页面添加如下文件索引即可。

...

...
// layui.hack.js
/**
 * 修复table排序问题(0永远是最小,比负数小)
 * create by coder.dai
 * time 2022年7月5日16:46:13
 * @returns 
 */
(function hack() {
    layui.constructor.prototype.sort = function(e, t, o) {
        var n = JSON.parse(JSON.stringify(e || []));
        return t ? (n.sort(function(o1, o2) {
            var isNum = /^-?\d+$/
            ,v1 = o1[t]
            ,v2 = o2[t];
            
            if(isNum.test(v1)) v1 = parseFloat(v1);
            if(isNum.test(v2)) v2 = parseFloat(v2);
            if(v1 && v2!==0 && !v2){
                return 1;
                } else if(v1 !== 0 && !v1 && v2){
                return -1;
                }
              
            if(v1 > v2){
              return 1;
            } else if (v1 < v2) {
              return -1;
            } else {
              return 0;
            }
        }),
        
        o && n.reverse(),
        n) : n
    }
})();

你可能感兴趣的:(layui表格排序hack,0永远是最小,比负数小)