code refactor

This commit is contained in:
MaysWind
2023-07-18 00:29:41 +08:00
parent 57d1e915e6
commit 99e55e730e
3 changed files with 31 additions and 36 deletions
+25
View File
@@ -258,6 +258,31 @@ export function getShiftedDateRange(minTime, maxTime, scale) {
}; };
} }
export function getShiftedDateRangeAndDateType(minTime, maxTime, scale, firstDayOfWeek) {
const newDateRange = getShiftedDateRange(minTime, maxTime, scale);
let newDateType = dateTimeConstants.allDateRanges.Custom.type;
for (let dateRangeField in dateTimeConstants.allDateRanges) {
if (!Object.prototype.hasOwnProperty.call(dateTimeConstants.allDateRanges, dateRangeField)) {
continue;
}
const dateRangeType = dateTimeConstants.allDateRanges[dateRangeField];
const dateRange = getDateRangeByDateType(dateRangeType.type, firstDayOfWeek);
if (dateRange && dateRange.minTime === newDateRange.minTime && dateRange.maxTime === newDateRange.maxTime) {
newDateType = dateRangeType.type;
break;
}
}
return {
dateType: newDateType,
minTime: newDateRange.minTime,
maxTime: newDateRange.maxTime
};
}
export function getDateRangeByDateType(dateType, firstDayOfWeek) { export function getDateRangeByDateType(dateType, firstDayOfWeek) {
let maxTime = 0; let maxTime = 0;
let minTime = 0; let minTime = 0;
@@ -229,7 +229,7 @@ import datetimeConstants from '@/consts/datetime.js';
import statisticsConstants from '@/consts/statistics.js'; import statisticsConstants from '@/consts/statistics.js';
import { getNameByKeyValue, limitText, formatPercent } from '@/lib/common.js' import { getNameByKeyValue, limitText, formatPercent } from '@/lib/common.js'
import { import {
getShiftedDateRange, getShiftedDateRangeAndDateType,
getDateRangeByDateType getDateRangeByDateType
} from '@/lib/datetime.js'; } from '@/lib/datetime.js';
@@ -518,25 +518,10 @@ export default {
return; return;
} }
const newDateRange = getShiftedDateRange(startTime, endTime, scale); const newDateRange = getShiftedDateRangeAndDateType(startTime, endTime, scale, this.firstDayOfWeek);
let newDateType = this.allDateRanges.Custom.type;
for (let dateRangeField in this.allDateRanges) {
if (!Object.prototype.hasOwnProperty.call(this.allDateRanges, dateRangeField)) {
continue;
}
const dateRangeType = this.allDateRanges[dateRangeField];
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
if (dateRange && dateRange.minTime === newDateRange.minTime && dateRange.maxTime === newDateRange.maxTime) {
newDateType = dateRangeType.type;
break;
}
}
this.statisticsStore.updateTransactionStatisticsFilter({ this.statisticsStore.updateTransactionStatisticsFilter({
dateType: newDateType, dateType: newDateRange.dateType,
startTime: newDateRange.minTime, startTime: newDateRange.minTime,
endTime: newDateRange.maxTime endTime: newDateRange.maxTime
}); });
@@ -261,7 +261,7 @@ import datetimeConstants from '@/consts/datetime.js';
import statisticsConstants from '@/consts/statistics.js'; import statisticsConstants from '@/consts/statistics.js';
import { getNameByKeyValue, limitText, formatPercent } from '@/lib/common.js' import { getNameByKeyValue, limitText, formatPercent } from '@/lib/common.js'
import { import {
getShiftedDateRange, getShiftedDateRangeAndDateType,
getDateRangeByDateType getDateRangeByDateType
} from '@/lib/datetime.js'; } from '@/lib/datetime.js';
@@ -527,25 +527,10 @@ export default {
return; return;
} }
const newDateRange = getShiftedDateRange(startTime, endTime, scale); const newDateRange = getShiftedDateRangeAndDateType(startTime, endTime, scale, this.firstDayOfWeek);
let newDateType = this.allDateRanges.Custom.type;
for (let dateRangeField in this.allDateRanges) {
if (!Object.prototype.hasOwnProperty.call(this.allDateRanges, dateRangeField)) {
continue;
}
const dateRangeType = this.allDateRanges[dateRangeField];
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
if (dateRange && dateRange.minTime === newDateRange.minTime && dateRange.maxTime === newDateRange.maxTime) {
newDateType = dateRangeType.type;
break;
}
}
this.statisticsStore.updateTransactionStatisticsFilter({ this.statisticsStore.updateTransactionStatisticsFilter({
dateType: newDateType, dateType: newDateRange.dateType,
startTime: newDateRange.minTime, startTime: newDateRange.minTime,
endTime: newDateRange.maxTime endTime: newDateRange.maxTime
}); });