luohairen
2024-12-10 bd63da40b4f5a5130bbb73fc654e7aaa25cacce6
src/views/projectEngineering/projectLibrary/component/FileDialog.vue
@@ -37,9 +37,9 @@
        </div>
        <div v-else-if="isImportOrExport" class="dialog-content">
          <el-button class="export-button" @click="handleDownloadTargetList">导出目标列表内容</el-button>
          <el-button class="export-button">导出所有列表内容</el-button>
          <el-button class="export-button">导出目标项目详情</el-button>
          <el-button class="export-button">导出所有项目详情</el-button>
          <el-button class="export-button" @click="handleDownloadAllList">导出所有列表内容</el-button>
          <el-button class="export-button" @click="handleDownloadDetailList">导出目标项目详情</el-button>
          <el-button class="export-button" @click="handleDownloadAllList">导出所有项目详情</el-button>
        </div>
      </template>
      <template slot="footer">
@@ -54,7 +54,6 @@
</template>
<script>
import { globalHeaders } from '@/utils/request';
export default {
  name: 'FileDialog',
@@ -72,10 +71,17 @@
      default: function () {
        return [];
      }
    }
    },
    dataIdList: {
      type: Array,
      default: function () {
        return [];
      }
    },
  },
  data() {
    return {
      queryParams: {},
      uploadRef: null,
      targetColumn: [],
      accept: `.zip`,
@@ -107,25 +113,7 @@
      }
    },
    handleDownloadFile() {
      const self = this;
      // fetch(`${process.env.VITE_APP_BASE_API}/project/export/template`, {
      //   method: 'GET',
      //   headers: self.upload.headers
      // })
      //   .then(response => response.blob())
      //   .then(blob => {
      //     const url = window.URL.createObjectURL(blob);
      //     const a = document.createElement('a');
      //     a.style.display = 'none';
      //     a.href = url;
      //     a.download = `项目文件模板_${new Date().getTime()}.zip`;
      //     document.body.appendChild(a);
      //     a.click();
      //     window.URL.revokeObjectURL(url);
      //   })
      //   .catch(error => {
      //     console.error('文件下载失败:', error);
      //   });
      this.download('/project/info/export/template', {}, `项目文件模板_${new Date().getTime()}.zip`)
    },
    submitFileForm() {
      if (this.uploadRef) {
@@ -136,15 +124,31 @@
      this.$emit('fileDialogCancel');
    },
    handleDownloadTargetList() {
      console.log('导出目标列表内容', this.currentColumns);
      this.targetColumn = this.currentColumns.filter(item => item.visible);
      this.queryParams.fieldList = this.currentColumns.filter(item => item.visible).map(item =>item.id);
      this.queryParams.requireFile = false;
      this.download('project/info/export', {
          ...this.queryParams
        }, `项目库${new Date().getTime()}.xlsx`)
    },
    handleDownloadAllList() {
      this.queryParams.fieldList = this.currentColumns;
      this.queryParams.requireFile = false;
      this.download('project/info/export', {
        ...this.queryParams
      }, `项目库${new Date().getTime()}.xlsx`)
    },
    handleDownloadDetailList() {
      this.queryParams.dataIdList = this.dataIdList
      this.queryParams.requireFile = true;
      this.download('project/info/export', {
        ...this.queryParams
      }, `项目库${new Date().getTime()}.zip`)
    }
  },
  mounted() {
    this.uploadRef = this.$refs.uploadRef;
  },
  created() {
    this.isFileDialogVisible = this.fileDialogVisible;
  }
};