Quellcode durchsuchen

所有导出增加完了

wukai vor 3 Monaten
Ursprung
Commit
4b625c08a5
2 geänderte Dateien mit 67 neuen und 0 gelöschten Zeilen
  1. 36 0
      src/views/biz/anal/holiday.vue
  2. 31 0
      src/views/biz/anal/night.vue

+ 36 - 0
src/views/biz/anal/holiday.vue

@@ -62,6 +62,13 @@
         </h3>
       </div>
 
+      <!-- 操作按钮 -->
+      <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="姓名" align="center" prop="fullName" width="300"/>
         <el-table-column label="证件号码" align="center" prop="idNumber"/>
@@ -559,6 +566,31 @@ function tableRowClassName({ row }) {
   return selectedHolidayName.value === row.holidayName ? 'selected-row' : '';
 }
 
+/** 导出按钮操作 */
+function handleExport() {
+  // 准备查询参数
+  const params = {
+    year: queryParams.value.year
+  };
+
+  // 如果有选中的节假日,则使用该节假日的开始和结束日期
+  if (queryParams.value.startDate && queryParams.value.endDate) {
+    params.startDate = queryParams.value.startDate;
+    params.endDate = queryParams.value.endDate;
+  }
+
+  // 构建文件名,如果选中了节假日,则在文件名中包含节假日名称
+  let fileName = '节假日出入境数据';
+  if (selectedHolidayName.value) {
+    fileName += `_${selectedHolidayName.value}`;
+  }
+  fileName += `_${new Date().getTime()}.xlsx`;
+
+  proxy.download('biz/anal/holiday/export', {
+    ...params
+  }, fileName)
+}
+
 // 初始化时直接查询,使用reactive中设置的默认值
 onMounted(() => {
   handleQuery();
@@ -576,6 +608,10 @@ onUnmounted(() => {
   padding: 15px;
 }
 
+.mb8 {
+  margin-bottom: 8px;
+}
+
 .el-row {
   margin-bottom: 15px;
 }

+ 31 - 0
src/views/biz/anal/night.vue

@@ -91,6 +91,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="detailsList" style="margin-top: 20px;" @row-click="handleRowClick">
       <el-table-column label="序号" type="index" width="50" align="center" />
@@ -735,6 +742,26 @@ onMounted(() => {
   });
 });
 
+// 导出按钮操作
+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];
+    }
+  }
+
+  proxy.download('biz/anal/night/export', {
+    ...params
+  }, `夜间出入境数据_${new Date().getTime()}.xlsx`)
+}
+
 // 在组件卸载时清理图表实例
 onUnmounted(() => {
   if (trendChartContainer.value && trendChartContainer.value.__echarts_instance) {
@@ -774,6 +801,10 @@ onUnmounted(() => {
   &.max-frequency { .stat-number { color: #f56c6c; } }
 }
 
+.mb8 {
+  margin-bottom: 8px;
+}
+
 .mb20 {
   margin-bottom: 20px;
 }