diff --git a/src/api/platformData.js b/src/api/platformData.js
index acab3b7..5dd33e0 100644
--- a/src/api/platformData.js
+++ b/src/api/platformData.js
@@ -248,6 +248,29 @@ export function getRegionUserDistribution(params) {
})
}
+// 导出各地区登录活跃数据
+export function exportRegionActiveData(params) {
+ const formData = new FormData();
+ formData.append('token', localStorage.getItem('token'));
+ if (params) {
+ if (params.start_time) formData.append('start_time', params.start_time);
+ if (params.end_time) formData.append('end_time', params.end_time);
+ }
+
+ return request({
+ url: 'http://d9a962ee.natappfree.cc/admin/user/login/statistics/export',
+ method: 'post',
+ headers: {
+ 'token': localStorage.getItem('token'),
+ 'client': 'ios',
+ 'version': '1',
+ 'Content-Type': 'multipart/form-data'
+ },
+ data: formData,
+ responseType: 'blob' // 设置响应类型为二进制流
+ })
+}
+
// 获取DeepChart用户活跃度趋势
export function getUserDeepChartTrend(params) {
const formData = new FormData();
diff --git a/src/views/PlatformData/UserLoginStats.vue b/src/views/PlatformData/UserLoginStats.vue
index 7b2b0a0..afb2216 100644
--- a/src/views/PlatformData/UserLoginStats.vue
+++ b/src/views/PlatformData/UserLoginStats.vue
@@ -148,7 +148,7 @@
/>
搜索
重置
- 数据导出
+ 数据导出
@@ -223,7 +223,8 @@
import { ref, onMounted, nextTick, watch } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import * as echarts from 'echarts';
-import { getUserLoginList, getUserLoginTrend, getRegionActiveData, getRegionActiveDataHistogram, getUserLoginChannel, getUserLoginChannelMember, getUserLoginChannelNoMember, getRegionUserDistribution } from '../../api/platformData';
+import { getUserLoginList, getUserLoginTrend, getRegionActiveData, getRegionActiveDataHistogram, getUserLoginChannel, getUserLoginChannelMember, getUserLoginChannelNoMember, getRegionUserDistribution, exportRegionActiveData } from '../../api/platformData';
+import { ElMessage } from 'element-plus';
const route = useRoute();
const router = useRouter();
@@ -812,6 +813,41 @@ const updatePieChart = (chartRef, chartInstance, data) => {
instance.setOption(option);
};
+const handleExportRegion = async () => {
+ let params = {};
+ if (dateRangeRegion.value && dateRangeRegion.value.length === 2) {
+ params.start_time = formatDate(dateRangeRegion.value[0]);
+ params.end_time = formatDate(dateRangeRegion.value[1]);
+ }
+
+ try {
+ const res = await exportRegionActiveData(params);
+ console.log("导出地区活跃数据响应(Blob):", res);
+
+ // 创建Blob对象,处理二进制流下载
+ const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
+ const url = window.URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+
+ // 设置下载文件名,添加时间戳防止重名
+ const fileName = `各地区登录活跃数据_${formatDate(new Date())}.xlsx`;
+ link.setAttribute('download', fileName);
+
+ document.body.appendChild(link);
+ link.click();
+
+ // 清理资源
+ document.body.removeChild(link);
+ window.URL.revokeObjectURL(url);
+
+ ElMessage.success('导出成功');
+ } catch (e) {
+ console.error('导出地区活跃数据失败:', e);
+ ElMessage.error('导出请求发生错误');
+ }
+};
+
const handleSearchRegion = () => {
// 更新 URL 参数
const query = { ...route.query };