Przeglądaj źródła

🐛 feat<报表管理>: 导出筛选后的数据

xinyan 9 miesięcy temu
rodzic
commit
b58ec54ec5

+ 22 - 16
src/views/reportManage/TaskManage/index.vue

@@ -47,6 +47,7 @@ interface taskRuleForm {
   vatNumber: string;
   vatCompany: string;
 }
+
 const formSize = ref<ComponentSize>('default');
 const dialogFormVisible = ref(false);
 const taskRuleFormRef = ref<FormInstance>();
@@ -637,17 +638,20 @@ async function sendMessage(selectedValue: string) {
 
 // 导出接口
 async function handleExport() {
-  gridOptions.loading = true;
-  const response = await exportTaskData();
-
-  const url = window.URL.createObjectURL(new Blob([response.data]));
-  const link = document.createElement('a');
-  link.href = url;
-  link.setAttribute('download', '店铺数据.xlsx');
-  document.body.appendChild(link);
-  link.click();
-  gridOptions.loading = false;
-  ElMessage.success('导出数据成功');
+  try {
+    gridOptions.loading = true;
+    const response = await exportTaskData(filter.value,);
+    const url = window.URL.createObjectURL(new Blob([response.data]));
+    const link = document.createElement('a');
+    link.href = url;
+    link.setAttribute('download', '店铺数据.xlsx');
+    document.body.appendChild(link);
+    link.click();
+    gridOptions.loading = false;
+    ElMessage.success('导出数据成功');
+  } catch (error) {
+    console.error('导出数据失败:', error);
+  }
 }
 
 // 获取填写人下拉框
@@ -923,7 +927,8 @@ onMounted(() => {
         </template>
         <template #vatCompany_edit="{ row }">
           <vxe-input v-model="row.vatCompany"></vxe-input>
-          </template>/
+        </template>
+        /
       </vxe-grid>
     </el-card>
   </div>
@@ -950,10 +955,10 @@ onMounted(() => {
         <template v-else-if="item.type === 'select'">
           <el-select
               v-model="taskRuleForm[item.prop]"
-              :placeholder="item.placeholder"
-              :multiple="item.multiple"
               :collapse-tags="item.collapseTags"
               :collapse-tags-tooltip="item.collapseTagsTooltip"
+              :multiple="item.multiple"
+              :placeholder="item.placeholder"
           >
             <el-option
                 v-for="option in item.options"
@@ -966,11 +971,11 @@ onMounted(() => {
         <template v-else-if="item.type === 'autocomplete'">
           <el-autocomplete
               v-model="taskRuleForm[item.prop]"
+              :clearable="item.clearable"
               :debounce="item.debounce"
               :fetch-suggestions="item.fetchSuggestions"
-              :trigger-on-focus="item.triggerOnFocus"
-              :clearable="item.clearable"
               :placeholder="item.placeholder"
+              :trigger-on-focus="item.triggerOnFocus"
               @select="item.onSelect"
           >
             <template v-slot="{ item }">
@@ -1023,6 +1028,7 @@ onMounted(() => {
   border: none;
   box-shadow: none;
 }
+
 :deep(.vxe-table--header .vxe-header--row th .vxe-cell,
 .vxe-table--body .vxe-body--row td .vxe-cell) {
   padding-left: 5px !important;

+ 1 - 1
src/views/reportManage/dataCenter/combinedDisplay/components/tableData/mainData.vue

@@ -293,7 +293,7 @@ async function handleExport() {
     const params = {
       page: gridOptions.pagerConfig.currentPage,
       limit: gridOptions.pagerConfig.pageSize,
-      task_ids: props.taskIds,
+      task_ids: taskIds.value,
       day_start_date: dayStartDate.value,
       day_end_date: dayEndDate.value,
       week_start_date: weekStart.value,