需求新增导出及批量导出接口

This commit is contained in:
pfl
2025-04-18 17:05:35 +08:00
parent 497ff672d1
commit f677776c31
3 changed files with 126 additions and 3 deletions

View File

@@ -78,7 +78,7 @@
<el-tab-pane :label="'已完成(' + statusCounts.completed + ')'" name="2"></el-tab-pane>
<el-tab-pane :label="'已终止(' + statusCounts.terminated + ')'" name="3"></el-tab-pane>
<el-Table v-loading="loading" :data="list">
<el-Table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection"/>
<el-table-column prop="serialNumber" label="ID" align="center"/>
<el-table-column prop="version" label="版本" align="center"/>
@@ -108,8 +108,8 @@
<!-- 操作按钮 -->
<div style="margin-top: 10px; display: flex; justify-content: space-between; align-items: center;">
<div>
<el-button type="primary" size="small">全部导出</el-button>
<el-button size="small">批量导出</el-button>
<el-button type="primary" size="small" @click="handleExport">全部导出</el-button>
<el-button size="small" @click="handleSelectExport">批量导出</el-button>
</div>
<div>
<pagination
@@ -247,6 +247,7 @@
<script>
import {addProject, delProject, getProjectDetail, getProjectList, managerList, updateProject} from "@/api/test/project";
import SimpleOptions from "@/components/FormItem/option/SimpleOptions.vue";
import {requestDownload} from "@/utils/request";
export default {
name: 'project',
@@ -295,6 +296,8 @@ export default {
addOpen: false,
//编辑弹窗
editOpen: false,
selectedRows: [],
selectedData: [],
managerList: [],
queryParams: {
serialNumber: '',
@@ -333,6 +336,9 @@ export default {
},
},
methods: {
handleSelectionChange(selection) {
this.selectedRows = selection;
},
handleTabClick(tab) {
this.activeTab = tab.name;
this.getList();
@@ -466,6 +472,41 @@ export default {
this.$message.error('编辑失败')
this.editSubmitLoading = false
})
},
/** 全部导出按钮操作 */
handleExport() {
const [startCreateTime, endCreateTime] = this.queryParams.createTime || []
this.queryParams.startCreateTime = startCreateTime
this.queryParams.endCreateTime = endCreateTime
const {pageNum, pageSize, ...rest} = this.queryParams
requestDownload({
url: '/test/project/exportProject',
fileName: `需求列表信息_${new Date().getTime()}.xlsx`,
data: rest,
})
},
/** 批量导出按钮操作 */
handleSelectExport() {
this.selectedData = this.selectedRows.map(row => ({
serialNumber: row.serialNumber,
name: row.name,
outline: row.outline,
detail: row.detail,
manager: row.manager,
priority: row.priority,
estimatedTime: row.estimatedTime,
source: row.source,
type: row.type,
version: row.version,
createTime: row.createTime,
status: row.status
}));
console.log('selectedData', this.selectedData)
requestDownload({
url: '/test/project/batchExportProject',
fileName: `需求列表信息_${new Date().getTime()}.xlsx`,
data: this.selectedData,
});
}
}
};