From 9caed508e0ec61a1357d9aace883f7a93e4c4d54 Mon Sep 17 00:00:00 2001 From: songjie Date: Sat, 24 Jan 2026 11:15:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BF=9D=E5=AD=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/PlatformData/UserLoginStats.vue | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/views/PlatformData/UserLoginStats.vue b/src/views/PlatformData/UserLoginStats.vue index f3deade..d583700 100644 --- a/src/views/PlatformData/UserLoginStats.vue +++ b/src/views/PlatformData/UserLoginStats.vue @@ -241,6 +241,19 @@ const chartRegionPieRef = ref(null); const chartRegionMemberPieRef = ref(null); const chartRegionNonMemberPieRef = ref(null); +// 初始化查询参数 +const initQueryParams = () => { + const { start_time, end_time, region } = route.query; + if (start_time && end_time) { + dateRange.value = [new Date(start_time), new Date(end_time)]; + } + if (region) { + selectedRegion.value = region; + } +}; + +initQueryParams(); + // 响应式数据:登录数据统计 const loginStats = ref({ total: 0, @@ -360,6 +373,25 @@ const updateTrendChart = (list) => { }; const handleSearch = () => { + // 更新 URL 参数 + const query = { ...route.query }; + + if (dateRange.value && dateRange.value.length === 2) { + query.start_time = formatDate(dateRange.value[0]); + query.end_time = formatDate(dateRange.value[1]); + } else { + delete query.start_time; + delete query.end_time; + } + + if (selectedRegion.value && selectedRegion.value !== 'all') { + query.region = selectedRegion.value; + } else { + delete query.region; + } + + router.replace({ query }); + fetchTrendData(); // 这里也可以加上 fetchLoginData() 如果登录统计也支持搜索参数 }; @@ -367,6 +399,14 @@ const handleSearch = () => { const handleReset = () => { dateRange.value = ''; selectedRegion.value = ''; + + // 清除 URL 参数 + const query = { ...route.query }; + delete query.start_time; + delete query.end_time; + delete query.region; + router.replace({ query }); + fetchTrendData(); };