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"
>
- 绩效内容维护
+ 绩效内容维护
- 进行中
-
- 待审批
- 审批通过
- 审批不通过
- 已完成
+
+ {{ scope.row.statusName }}
+
详情
+ 下载
+
填报
+ 填报
+
下载
- 删除
- 汇总
+
+ 审批
+
+
-
- 审批
+
- 重置
+ 重置
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
审批结果:
@@ -151,102 +110,45 @@
-
+