Оптимизроовал код по сортировке в таблицах отчетов

parent 54fa6062
...@@ -8,7 +8,8 @@ $(document).ready(function(){ ...@@ -8,7 +8,8 @@ $(document).ready(function(){
currentActiveLine, currentActiveLine,
dataTable, dataTable,
currencyFields = ['admoney', 'salemoney', 'usdollarmoney', 'localmoney', 'AdMoney', 'OrderSum', 'Price'], currencyFields = ['admoney', 'salemoney', 'usdollarmoney', 'localmoney', 'AdMoney', 'OrderSum', 'Price'],
notFormatFields = ['Timestamp', 'Basket']; notFormatFields = ['Timestamp', 'Basket'],
dateTimeFields = ['Timestamp', 'period'];
// Шаблон содержимого ячейки Basket // Шаблон содержимого ячейки Basket
var templateBasketContent = _.template('\n'+ var templateBasketContent = _.template('\n'+
...@@ -59,12 +60,14 @@ $(document).ready(function(){ ...@@ -59,12 +60,14 @@ $(document).ready(function(){
{ {
var dataPeriod = dataLineChartStat['period']; var dataPeriod = dataLineChartStat['period'];
//dataTable = dataLineChartStat; dataTable = dataLineChartStat;
/*
dataTable = {}; dataTable = {};
for (var key in dataLineChartStat) { for (var key in dataLineChartStat) {
dataTable[key] = dataLineChartStat[key]; dataTable[key] = dataLineChartStat[key];
} }
//console.log('AAA dataTable = ', dataLineChartStat.report); console.log('AAA dataTable = ', dataLineChartStat.report);
*/
// Сортировка строк в таблице: // Сортировка строк в таблице:
var var
...@@ -77,10 +80,24 @@ $(document).ready(function(){ ...@@ -77,10 +80,24 @@ $(document).ready(function(){
isDesc = $selectedField.hasClass('desc'); isDesc = $selectedField.hasClass('desc');
} }
if (sortField) {
//console.log('AAA sortField = ', sortField, ' isDesc = ', isDesc); //console.log('AAA sortField = ', sortField, ' isDesc = ', isDesc);
if (!sortField) {
switch(dataLineChartStat.report) {
case 'common':
sortField = 'period';
isDesc = true;
break;
case 'transaction':
sortField = 'Timestamp';
isDesc = true;
break;
default:
sortField = 'period';
isDesc = true;
break;
}
}
var dataTableForSort = []; var dataTableForSort = [];
...@@ -93,23 +110,15 @@ $(document).ready(function(){ ...@@ -93,23 +110,15 @@ $(document).ready(function(){
dataTableForSort.push(dataTableSortItem); dataTableForSort.push(dataTableSortItem);
}); });
//console.log('AAA dataTableForSort 111= ', dataTableForSort);
dataTableForSort.sort(function(a,b){ dataTableForSort.sort(function(a,b){
if (dateTimeFields.indexOf(sortField) > -1) {
if (sortField == 'Timestamp') {
var var
aT = new Date(a[sortField]), aT = new Date(a[sortField]),
bT = new Date(b[sortField]); bT = new Date(b[sortField]);
return (isDesc) ? bT-aT : aT-bT; return (isDesc) ? bT-aT : aT-bT;
} else { } else {
if (isDesc) { return (isDesc) ? b[sortField]-a[sortField] : a[sortField]-b[sortField];
return b[sortField]-a[sortField];
} else {
return a[sortField]-b[sortField];
}
} }
}); });
//console.log('AAA dataTableForSort = ', dataTableForSort); //console.log('AAA dataTableForSort = ', dataTableForSort);
...@@ -141,43 +150,6 @@ $(document).ready(function(){ ...@@ -141,43 +150,6 @@ $(document).ready(function(){
$row.appendTo($tableContent); $row.appendTo($tableContent);
}); });
} else {
for(var i = dataPeriod.length-1; i >= 0; i--) {
var
date = dataPeriod[i],
values = {};
activeLines.forEach(function(activeLine){
currentActiveLine = activeLine;
values[activeLine] = valueFormat(dataTable[activeLine][i]);
});
$row = $('<tr>');
$row.append($('<td>').html(date));
activeLines.forEach(function(item){
if (item == 'Basket') {
var dataBasket = values[item];
currentActiveLine = 'Price';
$row.append($('<td class="'+ item +'">').append(templateBasketContent({data: dataBasket, formatPrice: valueFormat})));
} else if (item == 'Timestamp') {
var
dateTimeValue = values[item].split(' '),
dateVal = dateTimeValue[0],
timeVal = dateTimeValue[1].split(':'),
timeValCorrected = timeVal[0]+':'+timeVal[1];
$row.append($('<td class="'+ item +'">').append(templateTimestampContent({
data: {date: dateVal, time: timeValCorrected}
})));
} else {
$row.append($('<td class="'+ item +'">').html(values[item]));
}
});
$row.appendTo($tableContent);
}
}
// Добавляем строку "Итого" для отчета 'common': // Добавляем строку "Итого" для отчета 'common':
if (dataLineChartStat.report == 'common') { if (dataLineChartStat.report == 'common') {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment