diff --git a/src/api/performanceManagement/dataReporting.js b/src/api/performanceManagement/dataReporting.js index 24149519..994ee5d2 100644 --- a/src/api/performanceManagement/dataReporting.js +++ b/src/api/performanceManagement/dataReporting.js @@ -1,6 +1,6 @@ // 绩效填报相关接口 import request from '@/axios'; -// 1. 绩效模板内容列表 +// 1. 绩效内容维护内容列表 export function listBsEfficiencyTempParam(params) { return request({ url: '/blade-desk/bsEfficiencyTempParam/list', @@ -8,7 +8,7 @@ export function listBsEfficiencyTempParam(params) { params }) } -// 2. 绩效模板内容删除 +// 2. 绩效内容维护内容删除 export function removeBsEfficiencyTempParam(params) { return request({ url: '/blade-desk/bsEfficiencyTempParam/remove', @@ -16,11 +16,95 @@ export function removeBsEfficiencyTempParam(params) { params }) } -// 3. 绩效模板内容新增 +// 3. 绩效内容维护内容新增 export function submitBsEfficiencyTempParam(data) { return request({ url: '/blade-desk/bsEfficiencyTempParam/submit', method: 'post', data }) +} +// 绩效填报相关接口 +// 4. 绩效填报分页查询 +export function pageBsEfficiencyTask(params) { + return request({ + url: '/blade-desk/bsEfficiencyTask/page', + method: 'get', + params + }) +} +// 5. 绩效填报审批通过 +export function approvalBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/approval', + method: 'post', + data + }) +} +// 6. 绩效填报审批不通过 +export function rejectBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/reject', + method: 'post', + data + }) +} +// 7. 绩效填报任务明细填报 +export function subReportBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/subReport', + method: 'post', + data + }) +} +// 8. 绩效填报任务明细重置 +export function subResetBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/subReset', + method: 'post', + data + }) +} +// 9. 绩效填报任务明细删除 +export function removeBsEfficiencyTask(params) { + return request({ + url: '/blade-desk/bsEfficiencyTask/remove', + method: 'post', + params + }) +} +// 10. 绩效填报读取Excel +export function readExcelBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/read-excel', + method: 'post', + data, + headers: { 'Content-Type': 'multipart/form-data' } + }) +} + +// 11. 绩效填报详情 +export function detailBsEfficiencyTask(params) { + return request({ + url: '/blade-desk/bsEfficiencyTask/detail', + method: 'get', + params + }) +} +// 12. 绩效填报任务填报 +export function reportBsEfficiencyTask(data) { + return request({ + url: '/blade-desk/bsEfficiencyTask/report', + method: 'post', + data + }) +} +// 13.绩效填报下载任务填报 +export function downloadBsEfficiencyTaskTemplate(params) { + return request({ + url: '/blade-desk/bsEfficiencyTask/download-excel-template', + method: 'get', + params, + responseType: 'blob' + }) } \ No newline at end of file diff --git a/src/views/personnelEfficiencyManagement/performanceManagement/components/batchAddContent.vue b/src/views/personnelEfficiencyManagement/performanceManagement/components/batchAddContent.vue index 57d834b9..0841c1c9 100644 --- a/src/views/personnelEfficiencyManagement/performanceManagement/components/batchAddContent.vue +++ b/src/views/personnelEfficiencyManagement/performanceManagement/components/batchAddContent.vue @@ -89,6 +89,10 @@ export default { ...item, _select: false, })); + // 如果没有总分行,添加一个 + if (!hasTotalRow) { + this.form.tableData.push({ _select: false, paramName: '总分' }); + } } else { this.form.tableData = [{ _select: false, paramName: '总分' }]; this.addTable(); @@ -166,17 +170,25 @@ export default { }); return; } - const submitData = this.form.tableData.map(row => { - const { _select, ...validData } = row; - return validData; - }); + const submitData = this.form.tableData + // 过滤:只要 姓名/员工工号 不等于 总分 的行 + .filter(row => { + // 适配你的字段:name=姓名,cardNo=员工工号 + return row.paramName !== '总分'; + }) + // 去掉不需要的 _select 字段 + .map(row => { + const { _select, ...validData } = row; + return validData; + }); + console.log('提交数据(已过滤总分)', submitData); console.log('提交数据', submitData); // 你可以看到日志 submitBsEfficiencyTempParam(submitData).then(res => { if (res.data.code === 200) { this.$message.success('保存成功'); this.closeDialog(true); // 成功后刷新父页面 } - }); + }) }); }, }, diff --git a/src/views/personnelEfficiencyManagement/performanceManagement/components/prefDetail.vue b/src/views/personnelEfficiencyManagement/performanceManagement/components/prefDetail.vue index 332181a7..00fe3616 100644 --- a/src/views/personnelEfficiencyManagement/performanceManagement/components/prefDetail.vue +++ b/src/views/personnelEfficiencyManagement/performanceManagement/components/prefDetail.vue @@ -1,153 +1,208 @@ - \ No newline at end of file diff --git a/src/views/personnelEfficiencyManagement/performanceManagement/components/reportingPerf.vue b/src/views/personnelEfficiencyManagement/performanceManagement/components/reportingPerf.vue index 62a61ae7..ec110a1e 100644 --- a/src/views/personnelEfficiencyManagement/performanceManagement/components/reportingPerf.vue +++ b/src/views/personnelEfficiencyManagement/performanceManagement/components/reportingPerf.vue @@ -1,93 +1,202 @@ - - \ No newline at end of file + // 上传后(修复版) + uploadAfter(file, done, loading, column) { + console.log('上传成功返回:', file); + // 正确获取 attachId + this.attachId = file.attachId || file.data?.attachId; + done(); + }, + // 读取Excel(关键修复) + readExcel() { + if (!this.attachId) { + this.$message.warning('请先上传文件'); + return; + } + readExcelBsEfficiencyTask({ file: this.formData }) + .then(res => { + if (res.data.code === 200) { + this.tableData = res.data.data.tableData || []; + this.tableColumn = res.data.data.tableColumn || []; + this.isRead = true; + this.$message.success('文件读取成功'); + } else { + this.$message.error('文件读取失败'); + } + }) + .catch(() => { + this.$message.error('文件读取接口异常'); + }); + }, + // 提交表单 + submitForm() { + if (!this.attachId) { + this.$message.error('请先上传文件'); + return; + } + let params = {}; + if (!this.isDetail) { + params = { + id: this.row.id, + attachId: this.attachId, + table: { + tableData: this.tableData, + tableColumn: this.tableColumn, + }, + }; + reportBsEfficiencyTask(params).then(res => { + if (res.data.code === 200) { + this.$message.success('提交成功'); + this.closeDialog(true); + } else { + this.$message.error('提交失败'); + } + }); + } else { + params = { + id: this.row.id, + attachId: this.attachId, + }; + subReportBsEfficiencyTask(params).then(res => { + if (res.data.code === 200) { + this.$message.success('提交成功'); + this.closeDialog(true); + } else { + this.$message.error('提交失败'); + } + }); + } + }, + }, +}; + \ No newline at end of file diff --git a/src/views/personnelEfficiencyManagement/performanceManagement/dataReporting.vue b/src/views/personnelEfficiencyManagement/performanceManagement/dataReporting.vue index 3b120ac7..7e3e44dc 100644 --- a/src/views/personnelEfficiencyManagement/performanceManagement/dataReporting.vue +++ b/src/views/personnelEfficiencyManagement/performanceManagement/dataReporting.vue @@ -19,46 +19,64 @@ @on-load="onLoad" > - - - - - + - - - - - - - - - - - - - - - - -
审批结果:
@@ -151,102 +110,45 @@ - +