Bladeren bron

增加导出

wukai 3 maanden geleden
bovenliggende
commit
76e684f4e8
2 gewijzigde bestanden met toevoegingen van 64 en 4 verwijderingen
  1. 34 1
      src/views/biz/anal/high.vue
  2. 30 3
      src/views/biz/anal/overstay.vue

+ 34 - 1
src/views/biz/anal/high.vue

@@ -92,6 +92,13 @@
       </div>
     </el-row>
 
+    <!-- 操作按钮 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="success" plain icon="Download" @click="handleExport">导出</el-button>
+      </el-col>
+    </el-row>
+
     <el-table v-loading="loading" :data="list" style="margin-top: 20px;" @row-click="handleRowClick">
       <el-table-column label="序号" type="index" width="50" align="center" />
       <el-table-column label="姓名" prop="fullName" align="center" />
@@ -652,7 +659,7 @@ function renderTop10Chart() {
                         ...style,
                         backgroundColor: {
                           image:
-                              "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAASCAYAAABB7B6eAAAAAXNSR0IArs4c6QAAAPBJREFUOE/tlT9OwzAUh7+fYWfpAFIZOrBSpblHegC69wLtihAHoDOHQAgabsDSsV1ZKzUnaDvFla00JFG31AviWZZly3rfs98/2ZQE8Yq4xokBVJnHfXU9dSYyDGMN+PR6CpFN2XjlTmk7gDMsU8xNE2BLi9sDUFya6jnuBf+AemAYZnww0RN5kC8q/PlOhwfdsju7DzzAhTEsEElIgAN9hQR8s2UYCvDGFSP12IcAvBAxlQJF0d/M5Bz50b6aGqwGRRaU5XrOEsP9WQBipZh+vVzPuUM8Y+iWZfvYUNzNi0bzaTab38xdc8mjIn6qgAME+UlV+Na7MwAAAABJRU5ErkJggg=="
+                              "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAASCAYAAABB7B6eAAAAAXNSR0IArs4c6QAAAQdJREFUOE/tlT9OwzAUh7+fYWfpAFIZOrBSpblHegC69wLtihAHoDOHQAgabsDSsV1ZKzUnaDvFla00JFG31AviWZZly3rfs98/2ZQE8Yq4xokBVJnHfXU9dSYyDGMN+PR6CpFN2XjlTmk7gDMsU8xNE2BLi9sDUFya6jnuBf+AemAYZnww0RN5kC8q/PlOhwfdsju7DzzAhTEsEElIgAN9hQR8s2UYCvDGFSP12IcAvBAxlQJF0d/M5Bz50b6aGqwGRRaU5XrOEsP9WQBipZh+vVzPuUM8Y+iWZfvYUNzNi0bzaTab38xdc8mjIn6qgAME+UlV+Na7MwAAAABJRU5ErkJggg=="
                         }
                       },
                       rank: {
@@ -855,7 +862,29 @@ function getDateRangeForQuery() {
   return [];
 }
 
+/** 导出按钮操作 */
+function handleExport() {
+  // 准备查询参数
+  const params = {};
+  if (queryParams.value.queryType === 'year') {
+    params.year = queryParams.value.year;
+  } else if (queryParams.value.queryType === 'month') {
+    params.month = queryParams.value.month;
+  } else if (queryParams.value.queryType === 'range') {
+    if (queryParams.value.dateRange && queryParams.value.dateRange.length === 2) {
+      params.startDate = queryParams.value.dateRange[0];
+      params.endDate = queryParams.value.dateRange[1];
+    }
+  }
+  
+  // 添加分页参数,以便导出所有数据
+  params.pageNum = queryParams.value.pageNum;
+  params.pageSize = queryParams.value.pageSize;
 
+  proxy.download('biz/anal/high/export', {
+    ...params
+  }, `高频出入境数据_${new Date().getTime()}.xlsx`)
+}
 
 // 页面加载时获取数据
 onMounted(() => {
@@ -963,4 +992,8 @@ onMounted(() => {
   border-radius: 8px;
   border: none;
 }
+
+.mb8 {
+  margin-bottom: 8px;
+}
 </style>

+ 30 - 3
src/views/biz/anal/overstay.vue

@@ -57,6 +57,13 @@
       </div>
     </el-row>
 
+    <!-- 操作按钮 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="success" plain icon="Download" @click="handleExport">导出</el-button>
+      </el-col>
+    </el-row>
+
     <el-table v-loading="loading" :data="list" style="margin-top: 20px;" @row-click="handleRowClick">
       <el-table-column label="序号" type="index" width="50" align="center" />
       <el-table-column label="姓名" prop="fullName" align="center" />
@@ -260,10 +267,10 @@ function renderPieChart(stayDaysDistribution = {}) {
   if (Object.keys(stayDaysDistribution).length > 0) {
     // 定义合理的排序顺序(按照天数递增)
     const rangeOrder = ['0-15天', '15-30天', '30-60天', '60-90天', '90-120天', '120天以上'];
-    
+
     // 标记是否已经遇到非零值
     let foundNonZero = false;
-    
+
     // 按照预定顺序处理数据
     for (const range of rangeOrder) {
       if (stayDaysDistribution.hasOwnProperty(range)) {
@@ -301,7 +308,7 @@ function renderPieChart(stayDaysDistribution = {}) {
         // 如果是前面的0值,则跳过不添加
       }
     }
-    
+
     // 处理不在预定义区间中的其他区间
     for (const [range, count] of Object.entries(stayDaysDistribution)) {
       if (!rangeOrder.includes(range)) {
@@ -395,6 +402,22 @@ function getDateRangeForQuery() {
   return [`${year}-01-01`, `${year}-12-31`];
 }
 
+/** 导出按钮操作 */
+function handleExport() {
+  // 准备查询参数
+  const params = {};
+  params.year = queryParams.value.year;
+  params.minDays = queryParams.value.minDays;
+
+  // 添加分页参数,以便导出所有数据
+  params.pageNum = queryParams.value.pageNum;
+  params.pageSize = queryParams.value.pageSize;
+
+  proxy.download('biz/anal/overseas/export', {
+    ...params
+  }, `境外滞留数据_${new Date().getTime()}.xlsx`)
+}
+
 // 页面加载时获取数据
 onMounted(() => {
   // 初始化时直接查询,使用reactive中设置的默认值
@@ -506,6 +529,10 @@ onMounted(() => {
   padding: 15px;
 }
 
+.mb8 {
+  margin-bottom: 8px;
+}
+
 .el-row {
   margin-bottom: 15px;
 }