1. 程式人生 > >adminLTE表格中的數字型別格式轉換

adminLTE表格中的數字型別格式轉換



    /**
     * 獲取伺服器中的資料
     *
     * @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='#' onclick='javascript:modals.openWin(" + JSON.stringify(obj) + ")'>" + retData.rows[i][column.key] + "</a>";
                            eval(value_str + "=\"<a href='#' onclick='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='#' onclick=" +invoke_str+ ">" + retData.rows[i][column.key] + "</a>";
                            eval(value_str + "=\"<a href='#' onclick=\" +invoke_str+ \">\" + value + \"</a>\"");
                            value = eval(value_str);
                        }
                    }
                }


            }
        }
        return retData;
    }