|
|
|
@ -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(); |
|
|
|
}; |
|
|
|
|
|
|
|
|