diff --git a/apps/web/src/services/alert-manager/v2/components/AlertsManagementTable.vue b/apps/web/src/services/alert-manager/v2/components/AlertsManagementTable.vue index 74e95ca453..15cf2138e8 100644 --- a/apps/web/src/services/alert-manager/v2/components/AlertsManagementTable.vue +++ b/apps/web/src/services/alert-manager/v2/components/AlertsManagementTable.vue @@ -94,8 +94,8 @@ const state = reactive({ refinedAlertList: computed(() => storeState.alertList.map((alert) => ({ ...alert, duration: alert.status === ALERT_STATUS.RESOLVED - ? calculateTime(alert?.resolved_at, storeState.timezone) || '0m' - : calculateTime(alert?.created_at, storeState.timezone) || '0m', + ? calculateTime(alert?.resolved_at, storeState.timezone) + : calculateTime(alert?.created_at, storeState.timezone), created_at: iso8601Formatter(alert.created_at, storeState.timezone), resolved_at: iso8601Formatter(alert.resolved_at, storeState.timezone) || '-', }))), diff --git a/apps/web/src/services/alert-manager/v2/composables/alert-table-data.ts b/apps/web/src/services/alert-manager/v2/composables/alert-table-data.ts index 1bf4d50b8b..7845e3ac25 100644 --- a/apps/web/src/services/alert-manager/v2/composables/alert-table-data.ts +++ b/apps/web/src/services/alert-manager/v2/composables/alert-table-data.ts @@ -4,8 +4,6 @@ import type { TranslateResult } from 'vue-i18n'; import dayjs from 'dayjs'; -import { iso8601Formatter } from '@cloudforet/utils'; - import { ALERT_STATUS } from '@/schema/alert-manager/alert/constants'; import type { AlertStatusType, AlertUrgencyType } from '@/schema/alert-manager/alert/type'; import { i18n } from '@/translations'; @@ -46,24 +44,16 @@ export const alertStatusBadgeStyleTypeFormatter = (alertState) => { }; export const calculateTime = (time: string, timezone: string): string => { - const today = dayjs().toISOString(); - const createdTime = iso8601Formatter(time, timezone); - const todayTime = iso8601Formatter(today, timezone); - const timeForCalculate = dayjs(todayTime).diff(createdTime, 'minute'); - const days = Math.floor((timeForCalculate / 1440) % 365); - const hours = Math.floor((timeForCalculate / 60) % 24); - const minutes = Math.floor(timeForCalculate % 60); - let result = ''; - - if (days > 0) { - result += `${days}d `; - } - if (hours > 0) { - result += `${hours}h `; - } - if (minutes > 0) { - result += `${minutes}m`; - } - - return result.trim(); + const createdTime = dayjs.tz(time, timezone); + const todayTime = dayjs().tz(timezone); + const timeForCalculate = todayTime.diff(createdTime, 'minute'); + const days = Math.floor(timeForCalculate / 1440); + const hours = Math.floor((timeForCalculate % 1440) / 60); + const minutes = timeForCalculate % 60; + const parts: string[] = []; + if (days) parts.push(`${days}d`); + if (hours) parts.push(`${hours}h`); + if (minutes) parts.push(`${minutes}m`); + + return parts.join(' ') || '0m'; };