From 3ecf2afa1ca6b1f9757cc261c79e296e066e13c1 Mon Sep 17 00:00:00 2001 From: Fine Date: Wed, 14 May 2025 11:21:55 +0800 Subject: [PATCH] handle Records TTL --- src/layout/components/NavBar.vue | 44 +++++++++++++++++--- src/store/modules/app.ts | 7 +++- src/types/app.d.ts | 7 ++++ src/views/dashboard/related/trace/Filter.vue | 14 +++---- 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/src/layout/components/NavBar.vue b/src/layout/components/NavBar.vue index 9a5a071c..9b48e260 100644 --- a/src/layout/components/NavBar.vue +++ b/src/layout/components/NavBar.vue @@ -53,9 +53,10 @@ limitations under the License. --> @@ -121,7 +122,7 @@ limitations under the License. --> resetDuration(); getVersion(); getNavPaths(); - getMetricsTTL(); + setTTL(); function changeTheme() { const root = document.documentElement; @@ -220,6 +221,23 @@ limitations under the License. --> appStore.setDuration(timeFormat(val)); } + function setTTL() { + getMetricsTTL(); + getRecordsTTL(); + changeDataMode(); + } + async function getRecordsTTL() { + // const resp = await appStore.queryRecordsTTL(); + // mock data + const recordsData = { + value: 6, + superDataset: 2, + coldValue: 3, + coldSuperDataset: 5, + }; + appStore.setRecordsTTL(recordsData.value); + } + async function getMetricsTTL() { // const resp = await appStore.queryMetricsTTL(); // mock data @@ -232,15 +250,31 @@ limitations under the License. --> coldDay: 9, }; appStore.setMetricsTTL(data); - changeDataMode(); } function handleMetricsTTL(params: { minute: number; hour: number; day: number }) { - const gap = (params.day + 1) * 24 * 60 * 60 * 1000 + params.hour * 60 * 60 * 1000 + params.minute * 60 * 1000; + const gap = dayToMS(params.day) + params.hour * 60 * 60 * 1000 + params.minute * 60 * 1000; const dates: Date[] = [new Date(new Date().getTime() - gap), new Date()]; appStore.setMaxRange(dates); } + function handleRecordsTTL(params: { + value: number; + superDataset: number; + coldValue: number; + coldSuperDataset: number; + }) { + const gap = dayToMS(params.value); + const superDatasetGap = dayToMS(params.superDataset); + const coldValueGap = dayToMS(params.coldValue); + const coldSuperDatasetGap = dayToMS(params.coldSuperDataset); + // const dates: Date[] = [new Date(new Date().getTime() - gap), new Date()]; + } + + function dayToMS(day: number) { + return (day + 1) * 24 * 60 * 60 * 1000; + } + function getNavPaths() { pathNames.value = []; pageTitle.value = ""; diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 21877102..64c88d2b 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -21,7 +21,7 @@ import type { Duration, DurationTime } from "@/types/app"; import getLocalTime from "@/utils/localtime"; import dateFormatStep, { dateFormatTime } from "@/utils/dateFormat"; import { TimeType } from "@/constants/data"; -import type { MenuOptions, SubItem, MetricsTTL } from "@/types/app"; +import type { MenuOptions, SubItem, MetricsTTL, RecordsTTL } from "@/types/app"; import { Themes } from "@/constants/data"; /*global Nullable*/ interface AppState { @@ -40,6 +40,7 @@ interface AppState { coldStageMode: boolean; maxRange: Date[]; metricsTTL: Recordable; + recordsTTL: Recordable; } export const appStore = defineStore({ @@ -64,6 +65,7 @@ export const appStore = defineStore({ coldStageMode: false, maxRange: [], metricsTTL: {}, + recordsTTL: {}, }), getters: { duration(): Duration { @@ -134,6 +136,9 @@ export const appStore = defineStore({ setMetricsTTL(data: MetricsTTL) { this.metricsTTL = data; }, + setRecordsTTL(data: RecordsTTL) { + this.recordsTTL = data; + }, setTheme(data: string) { this.theme = data; }, diff --git a/src/types/app.d.ts b/src/types/app.d.ts index c5f1b82a..36958b54 100644 --- a/src/types/app.d.ts +++ b/src/types/app.d.ts @@ -77,3 +77,10 @@ export interface MetricsTTL { coldHour: number; coldDay: number; } + +export interface RecordsTTL { + value: number; + superDataset: number; + coldValue: number; + coldSuperDataset: number; +} diff --git a/src/views/dashboard/related/trace/Filter.vue b/src/views/dashboard/related/trace/Filter.vue index a564338a..3dcfb91e 100644 --- a/src/views/dashboard/related/trace/Filter.vue +++ b/src/views/dashboard/related/trace/Filter.vue @@ -65,8 +65,14 @@ limitations under the License. --> {{ t("traceID") }}: -
+
{{ t("duration") }}: + + - + +
+
+ {{ t("timeRange") }}: @input="changeTimeRange" />
-
- {{ t("duration") }}: - - - - -