adminLTE表格中的数字类型格式转换

第一步:在base.js文件中增加自定义 数字转换方法(找不到文件,ctrl+H按方法名全局搜)

/**
 * 格式化金额 s代表金额  n代表保留的小数位数   三位一个逗号隔开
 */
function formatNumber(s, n) {

  if(typeof(s) == "undefined"){
  s=0;
  }
   n = n > 0 && n <= 20 ? n : 2;  
   s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
   var l = s.split(".")[0].split("").reverse(),  
   r = s.split(".")[1];  
   t = "";  
   for(i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return t.split("").reverse().join("") + "." + r;  
}

第二步:在dataTables.js  中方法: CommonTable.prototype.getServerData 中增加格式化数字



    /**
     * 获取服务器中的数据
     *
     * @param pageInfo
     *            分页信息
     * @param tableId
     *            table的ID
     */
    CommonTable.prototype.getServerData = function (pageInfo, tableId) {
        var dataCache = $("#dataCache" + tableId);
        var reqParam = {
            queryId: dataCache.data("queryId"),
            pageName: window.document.location.pathname,
            pageInfo: pageInfo,
            query: null,
            sortInfo: dataCache.data("sortInfo"),
            conditions: this.fnGetConditions(this.searchDiv)
        };
        dataCache.data("pageInfo", pageInfo);
        var retData = null;
        console.log("reqObj:");
        console.log(reqParam);
        console.log(JSON);
        //注释以上部分,统一用ajaxPost处理,以便处理session超时(ajax请求超时)
        ajaxPost(basePath + "/query/loadData", {"reqObj": this.toJSONString(reqParam)}, function (result, status) {
            retData = result;
        });
        var start = 0;
        if (pageInfo) {
            start = pageInfo.pageSize * (pageInfo.pageNum - 1)
        }
        var columns = retData.query.columnList;
        //通过 numberFormat render endableTooltip改变单元格的值
        //遍历 先列 后行
        for (var j = 0; j < columns.length; j++) {
            var column = columns[j];
            for (var i = 0; i < retData.rows.length; i++) {
                retData.rows[i]["rowIndex"] = start + i + 1;
                //获取关联对象的值如message.sendSubject
                var value_str = "retData.rows[i]." + column.key;
                var value = eval(value_str);
                // 格式化日期
                if (column.dateFormat) {
                    //retData.rows[i][column.key] = formatDate(retData.rows[i][column.key], column.dateFormat);
                    eval(value_str + "=formatDate(value, column.dateFormat)");
                    value = eval(value_str);
                }
                // 格式化数字
                if (column.numberFormat) {
                    // TODO format the number,like 0,000,000.00;
                eval(value_str + "=formatNumber(value, column.numberFormat)");
                value = eval(value_str);
                }
                //扩展enableTooltip
                if (column.enableTooltip) {
                    /*var title = retData.rows[i][column.tooltip] || retData.rows[i][column.key];
                     var maxLen = parseInt(column.maxLen || 20);
                     var cellData = retData.rows[i][column.key];
                     if (cellData && cellData.length > maxLen) {
                     cellData = cellData.substring(0, maxLen) + "...";
                     retData.rows[i][column.key] = "<span data-toggle='tooltip' data-placement='right' data-html='true'  title='" + title + "'>" + cellData + "</span>";
                     }*/
                    //重构为支持关联对象方式
                    var title = eval("retData.rows[i]." + (column.tooltip || column.key));
                    var maxLen = parseInt(column.maxLen || 20);
                    if (value && value.length > maxLen) {
                        value = value.substring(0, maxLen) + "...";
                        eval(value_str + "=\"<span data-toggle='tooltip' data-placement='right' data-html='true'  title='\" + title + \"'>\" + value + \"</span>\"");
                        value = eval(value_str);
                    }
                }
                // 格式化render
                if (column.render) {
                    //替换通过[column.key]的参数  用于替换动态参数
                    var columnRender = this.getRenderValueByMatcher(column.render, retData.rows[i]);
                    var obj = this.getRenderObject(columnRender);
                    if (value != null) {
                        if (obj.type == "eq") {
                            //替换值 render="type=eq,0=临时保存,1=提交" type=eq可缺省
                            //retData.rows[i][column.key] = obj[retData.rows[i][column.key]];
                            eval(value_str + "=obj[" + value_str + "]");
                            value = eval(value_str);
                        } else if (obj.type == "window") {
                            //弹出模态窗体 render="type=window,url=/message/show?id=[id],title=查看[name],width=900
                            if (!obj.winId || !obj.url) {
                                modals.warn("render配置中type=window缺少url和winId参数");
                                return false;
                            }
                            obj.url = basePath + obj.url;
                            //retData.rows[i][column.key] = "<a href='#' οnclick='javascript:modals.openWin(" + JSON.stringify(obj) + ")'>" + retData.rows[i][column.key] + "</a>";
                            eval(value_str + "=\"<a href='#' οnclick='javascript:modals.openWin(\" + JSON.stringify(obj) + \")'>\" + retData.rows[i][column.key] + \"</a>\"");
                            value = eval(value_str);
                        } else if (obj.type == "link") {
                            //超链接,自定义方法使用,在界面要定义该方法
                            var invoke_str = "";
                            if (obj.params) {
                                var params = obj.params.replace(/;/g, ",");
                                invoke_str = obj.method + "(" + params + ")";
                            } else {
                                if (retData.rows[i][retData.query.key]) {
                                    //invoke_str = obj.method + "('" + retData.rows[i][retData.query.key] + "')";
                                    var value_key = eval("retData.rows[i]." + retData.query.key);
                                    invoke_str = obj.method + "('" + value_key + "')";
                                }
                                else {
                                    modals.error("render配置获取" + retData.query.key + "出错,请检查query的key配置");
                                    return false;
                                }
                            }
                            //alert(invoke_str);
                            //retData.rows[i][column.key] = "<a href='#' οnclick=" +invoke_str+ ">" + retData.rows[i][column.key] + "</a>";
                            eval(value_str + "=\"<a href='#' οnclick=\" +invoke_str+ \">\" + value + \"</a>\"");
                            value = eval(value_str);
                        }
                    }
                }


            }
        }
        return retData;
    }

第三步:在列表对应模型的xml文档中设置 某个属性的格式化

总的来说就是在adminLTE原有的方法中  添加自定义方法  然后进行调用










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值