code refactor

This commit is contained in:
MaysWind
2021-03-14 01:16:06 +08:00
parent 6820ccfa55
commit 386bfa0db4
4 changed files with 48 additions and 35 deletions
+6
View File
@@ -0,0 +1,6 @@
import utils from '../lib/utils.js';
export default function (utcOffsetMinutes) {
const utcOffset = utils.getUtcOffsetByUtcOffsetMinutes(utcOffsetMinutes);
return `(UTC${utcOffset})`;
}
+37 -13
View File
@@ -34,6 +34,39 @@ function isBoolean(val) {
return typeof(val) === 'boolean';
}
function getUtcOffsetMinutesByUtcOffset(utcOffset) {
if (!utcOffset) {
return 0;
}
const parts = utcOffset.split(':');
if (parts.length !== 2) {
return 0;
}
return parseInt(parts[0]) * 60 + parseInt(parts[1]);
}
function getUtcOffsetByUtcOffsetMinutes(utcOffsetMinutes) {
let offsetHours = parseInt(Math.abs(utcOffsetMinutes) / 60);
let offsetMinutes = Math.abs(utcOffsetMinutes) - offsetHours * 60;
if (offsetHours < 10) {
offsetHours = '0' + offsetHours;
}
if (offsetMinutes < 10) {
offsetMinutes = '0' + offsetMinutes;
}
if (utcOffsetMinutes >= 0) {
return `+${offsetHours}:${offsetMinutes}`;
} else if (utcOffsetMinutes < 0) {
return `-${offsetHours}:${offsetMinutes}`;
}
}
function getTimezoneOffset(timezone) {
if (timezone) {
return moment().tz(timezone).format('Z');
@@ -43,19 +76,8 @@ function getTimezoneOffset(timezone) {
}
function getTimezoneOffsetMinutes(timezone) {
const offset = getTimezoneOffset(timezone);
if (!offset) {
return 0;
}
const parts = offset.split(':');
if (parts.length !== 2) {
return 0;
}
return parseInt(parts[0]) * 60 + parseInt(parts[1]);
const utcOffset = getTimezoneOffset(timezone);
return getUtcOffsetMinutesByUtcOffset(utcOffset);
}
function getCurrentUnixTime() {
@@ -590,6 +612,8 @@ export default {
isString,
isNumber,
isBoolean,
getUtcOffsetMinutesByUtcOffset,
getUtcOffsetByUtcOffsetMinutes,
getTimezoneOffset,
getTimezoneOffsetMinutes,
getCurrentUnixTime,
+5
View File
@@ -72,6 +72,7 @@ import momentFilter from './filters/moment.js';
import percentFilter from './filters/percent.js';
import itemFieldContentFilter from './filters/itemFieldContent.js';
import currencyFilter from './filters/currency.js';
import utcOffsetFilter from './filters/utcOffset.js';
import iconFilter from './filters/icon.js';
import iconStyleFilter from './filters/iconStyle.js';
import defaultIconColorFilter from './filters/defaultIconColor.js';
@@ -153,6 +154,7 @@ Vue.filter('moment', (value, format) => momentFilter(value, format));
Vue.filter('percent', (value, precision, lowPrecisionValue) => percentFilter(value, precision, lowPrecisionValue));
Vue.filter('itemFieldContent', (value, fieldName, defaultValue, translate) => itemFieldContentFilter({ i18n }, value, fieldName, defaultValue, translate));
Vue.filter('currency', (value, currencyCode) => currencyFilter({ i18n }, value, currencyCode));
Vue.filter('utcOffset', (value) => utcOffsetFilter(value));
Vue.filter('icon', (value, iconType) => iconFilter(value, iconType));
Vue.filter('iconStyle', (value, iconType, defaultColor, additionalFieldName) => iconStyleFilter(value, iconType, defaultColor, additionalFieldName));
Vue.filter('defaultIconColor', (value, defaultColor) => defaultIconColorFilter(value, defaultColor));
@@ -188,6 +190,7 @@ Vue.prototype.$webauthn = webauthn;
Vue.prototype.$settings = settings;
Vue.prototype.$locale = {
defaultTimezoneOffset: utils.getTimezoneOffset(),
defaultTimezoneOffsetMinutes: utils.getTimezoneOffsetMinutes(),
getDefaultLanguage: getDefaultLanguage,
getAllLanguages: getAllLanguages,
getLanguage: getLanguage,
@@ -222,6 +225,7 @@ Vue.prototype.$locale = {
allTimezoneInfos.push({
name: allTimezones[i].timezoneName,
utcOffset: (allTimezones[i].timezoneName !== 'Etc/GMT' ? utils.getTimezoneOffset(allTimezones[i].timezoneName) : ''),
utcOffsetMinutes: utils.getTimezoneOffsetMinutes(allTimezones[i].timezoneName),
displayName: i18n.t(`timezone.${allTimezones[i].displayName}`)
});
}
@@ -230,6 +234,7 @@ Vue.prototype.$locale = {
allTimezoneInfos.push({
name: '',
utcOffset: this.defaultTimezoneOffset,
utcOffsetMinutes: this.defaultTimezoneOffsetMinutes,
displayName: i18n.t('System Default')
});
}
-22
View File
@@ -871,28 +871,6 @@ export default {
applyTimezoneOffset(unixTime, utcOffsetMinutes, currentTimezoneOffsetMinutes) {
return unixTime + (utcOffsetMinutes - currentTimezoneOffsetMinutes) * 60;
},
utcOffset(utcOffsetMinutes) {
let offsetHours = parseInt(Math.abs(utcOffsetMinutes) / 60);
let offsetMinutes = Math.abs(utcOffsetMinutes) - offsetHours * 60;
if (offsetHours < 10) {
offsetHours = '0' + offsetHours;
}
if (offsetMinutes < 10) {
offsetMinutes = '0' + offsetMinutes;
}
let utcOffset = '';
if (utcOffsetMinutes > 0) {
utcOffset = `+${offsetHours}:${offsetMinutes}`;
} else if (utcOffsetMinutes < 0) {
utcOffset = `-${offsetHours}:${offsetMinutes}`;
}
return `(UTC${utcOffset})`;
},
dateRangeName(dateRangeType, allDateRanges, defaultName) {
if (dateRangeType === allDateRanges.All.type) {
return defaultName;