fix: 修复项目管理前端字段与后端Entity不匹配问题

问题:
- 项目金额在新增和编辑时不会更新
- 前端表单字段与后端Entity字段不一致
- projectAmount不存在于后端,应该是budgetAmount和contractAmount
- projectManager应该是projectManagerId (Long类型)
- projectDesc应该是description

修复:
1. 修正前端表单字段
   - projectAmount → budgetAmount (预算金额)
   - 新增 contractAmount (合同金额)
   - projectManager → projectManagerId
   - projectDesc → description
   - 新增 projectShort, projectType, remark等字段

2. 优化表单UI
   - 添加项目简称字段
   - 添加项目类型下拉选择(开发/维护/咨询)
   - 预算金额和合同金额分开显示
   - 添加备注字段

3. 修正表格显示列
   - 项目金额 → 预算金额 + 合同金额(两列)

现在前后端字段完全一致!
This commit is contained in:
zhangjf 2026-02-15 19:44:47 +08:00
parent d1137f5528
commit 504da52c88
2 changed files with 50 additions and 16 deletions

View File

@ -36,9 +36,14 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="projectAmount" label="项目金额" width="120">
<el-table-column prop="budgetAmount" label="预算金额" width="120">
<template #default="scope">
{{ formatAmount(scope.row.projectAmount) }}
{{ formatAmount(scope.row.budgetAmount) }}
</template>
</el-table-column>
<el-table-column prop="contractAmount" label="合同金额" width="120">
<template #default="scope">
{{ formatAmount(scope.row.contractAmount) }}
</template>
</el-table-column>
<el-table-column prop="startDate" label="开始日期" width="120" />
@ -81,13 +86,29 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="项目金额" prop="projectAmount">
<el-input-number v-model="form.projectAmount" :precision="2" :min="0" style="width: 100%" />
<el-form-item label="项目简称" prop="projectShort">
<el-input v-model="form.projectShort" placeholder="请输入项目简称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目经理" prop="projectManager">
<el-input v-model="form.projectManager" placeholder="请输入项目经理" />
<el-form-item label="项目类型">
<el-select v-model="form.projectType" placeholder="请选择" style="width: 100%">
<el-option label="开发项目" value="development" />
<el-option label="维护项目" value="maintenance" />
<el-option label="咨询项目" value="consulting" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="预算金额" prop="budgetAmount">
<el-input-number v-model="form.budgetAmount" :precision="2" :min="0" style="width: 100%" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同金额">
<el-input-number v-model="form.contractAmount" :precision="2" :min="0" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
@ -103,8 +124,11 @@
</el-form-item>
</el-col>
</el-row>
<el-form-item label="项目描述" prop="projectDesc">
<el-input v-model="form.projectDesc" type="textarea" rows="3" placeholder="请输入项目描述" />
<el-form-item label="项目描述">
<el-input v-model="form.description" type="textarea" rows="3" placeholder="请输入项目描述" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" rows="2" placeholder="请输入备注" />
</el-form-item>
</el-form>
<template #footer>
@ -159,17 +183,22 @@ const form = reactive({
projectId: null,
projectCode: '',
projectName: '',
projectAmount: 0,
projectManager: '',
projectShort: '',
customerId: null,
projectType: 'development',
projectManagerId: null,
budgetAmount: 0,
contractAmount: 0,
startDate: '',
endDate: '',
projectDesc: ''
description: '',
remark: ''
})
const rules = {
projectCode: [{ required: true, message: '请输入项目编码', trigger: 'blur' }],
projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
projectAmount: [{ required: true, message: '请输入项目金额', trigger: 'blur' }]
budgetAmount: [{ required: true, message: '请输入项目预算', trigger: 'blur' }]
}
const statusDialogVisible = ref(false)
@ -224,11 +253,16 @@ const resetForm = () => {
form.projectId = null
form.projectCode = ''
form.projectName = ''
form.projectAmount = 0
form.projectManager = ''
form.projectShort = ''
form.customerId = null
form.projectType = 'development'
form.projectManagerId = null
form.budgetAmount = 0
form.contractAmount = 0
form.startDate = ''
form.endDate = ''
form.projectDesc = ''
form.description = ''
form.remark = ''
}
const handleSubmit = async () => {

@ -1 +1 @@
Subproject commit 86d22460f4d127306501a7a053cb17c9245bfc7b
Subproject commit 9e120359625bc1222ee4d31dd04bd64cdd1c0b35