diff --git a/src/views/oa/erp/erpProjectChange/edit.vue b/src/views/oa/erp/erpProjectChange/edit.vue
index be6cb07..79dd883 100644
--- a/src/views/oa/erp/erpProjectChange/edit.vue
+++ b/src/views/oa/erp/erpProjectChange/edit.vue
@@ -101,21 +101,19 @@
-
-
- 添加预算行
-
-
+
-
+
+ {{ scope.row.subjectName }}
-
+
+ {{ scope.row.budgetBefore?.toFixed(2) }}
@@ -138,13 +136,6 @@
-
-
-
- 删除
- 原有科目
-
-
进度变更(项目里程碑/关键节点)
@@ -238,7 +229,7 @@ import {
} from '@/api/oa/erp/erpProjectChange';
import { ElMessage } from 'element-plus';
import { useUserStore } from '@/store/modules/user';
-import type { ErpProjectChangeBudget, ErpProjectChangeForm } from '@/api/oa/erp/erpProjectChange/types';
+import type { ErpProjectChangeForm } from '@/api/oa/erp/erpProjectChange/types';
// import approvalButton from '@/components/Workflow/approvalButton.vue';
// import SubmitVerify from '@/components/Workflow/SubmitVerify.vue';
// import ApprovalRecord from '@/components/Workflow/ApprovalRecord.vue';
@@ -369,16 +360,26 @@ const handleProjectChange = async (projectId: string | number) => {
const res = await prepareProjectChangeWithInfo(projectId);
if (res.code === 200) {
// 保留已填写的变更信息,只更新项目相关信息
+ // 注意:budgetList 和 progressList 应从后端获取,不应保留前端空数组
const changeData = {
changeType: form.value.changeType,
currentStatus: form.value.currentStatus,
changeReason: form.value.changeReason,
- followUpWork: form.value.followUpWork,
- budgetList: form.value.budgetList,
- progressList: form.value.progressList
+ followUpWork: form.value.followUpWork
};
Object.assign(form.value, res.data, changeData);
+ // 确保使用后端返回的预算和进度列表,并转换数字类型字段
+ form.value.budgetList = (res.data.budgetList ?? []).map((item: any) => ({
+ ...item,
+ budgetBefore: Number(item.budgetBefore || 0),
+ budgetAfter: Number(item.budgetAfter || 0),
+ amountUsed: Number(item.amountUsed || 0)
+ }));
+ form.value.progressList = (res.data.progressList ?? []).map((item: any) => ({
+ ...item,
+ completionDegree: Number(item.completionDegree || 0)
+ }));
// 处理变更类型(多选)
if (form.value.changeType) {
@@ -415,8 +416,17 @@ const loadProjectDataByProjectId = async (projectId: string | number) => {
Object.assign(form.value, res.data);
const dateOnly = toDateOnly(form.value.applyChangeDate);
form.value.applyChangeDate = dateOnly ?? formatToday();
- form.value.budgetList = res.data.budgetList ?? [];
- form.value.progressList = res.data.progressList ?? [];
+ // 转换数字类型字段,确保el-input-number组件正常工作
+ form.value.budgetList = (res.data.budgetList ?? []).map((item: any) => ({
+ ...item,
+ budgetBefore: Number(item.budgetBefore || 0),
+ budgetAfter: Number(item.budgetAfter || 0),
+ amountUsed: Number(item.amountUsed || 0)
+ }));
+ form.value.progressList = (res.data.progressList ?? []).map((item: any) => ({
+ ...item,
+ completionDegree: Number(item.completionDegree || 0)
+ }));
// 处理变更类型多选
if (form.value.changeType) {
changeTypeList.value = form.value.changeType.split(',');
@@ -428,23 +438,8 @@ const loadProjectDataByProjectId = async (projectId: string | number) => {
}
};
-const handleAddBudget = () => {
- const list = form.value.budgetList ?? (form.value.budgetList = []);
- const budget: ErpProjectChangeBudget = {
- subjectName: '',
- budgetBefore: 0,
- budgetAfter: 0,
- amountUsed: 0,
- adjustmentReason: '',
- sortOrder: list.length + 1,
- remark: ''
- };
- list.push(budget);
-};
-
-const handleDeleteBudget = (index: number) => {
- form.value.budgetList.splice(index, 1);
-};
+// 预算行不允许新增删除,数据从项目预算中自动带出
+// handleAddBudget 和 handleDeleteBudget 方法已移除
/** 提交按钮(与项目信息保持一致的处理方式) */
const submitForm = (status: string, mode: boolean) => {
@@ -477,7 +472,8 @@ const submitForm = (status: string, mode: boolean) => {
projectCode: form.value.projectCode,
projectManagerId: form.value.projectManagerId,
deptHeadId: form.value.deptHeadId,
- changeType: form.value.changeType
+ changeType: form.value.changeType,
+ projectChangeCode: form.value.projectChangeCode
};
// 流程实例业务扩展字段
form.value.bizExt = {