adminLTE表格中的數字型別格式轉換
阿新 • • 發佈:2019-01-09
/**
* 獲取伺服器中的資料
*
* @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;
}