feat: 添加项目负责人联系信息字段及自动填充功能
- 在 Report、ReportDTO、ReportVO、ReportUpdateDTO 实体类中新增 contactPerson 和 contactPhone 字段 - 在 UserInfoVO 中新增 dealerContactPerson 和 dealerContactPhone 字段以展示经销商联系人信息 - 修改 ReportServiceImpl,在创建报备时自动填充默认的项目负责人信息(取自经销商信息) - 更新 MyBatis 映射文件,确保数据库字段的正确映射和持久化 - 在前端 Report.vue 中添加相应的表单字段和表格列,并在新增时自动填充默认值 - 调整对话框宽度以适配新增字段
This commit is contained in:
1 parent
8d82781bb3
commit
e39c6816fc
11 files changed
+165
-6
No files matched your search
@@ -45,6 +45,8 @@
|
||||
<el-table-column prop="schoolName" label="学校名称" />
|
||||
<el-table-column prop="product" label="所属产品" show-overflow-tooltip />
|
||||
<el-table-column prop="projectType" label="项目类型" show-overflow-tooltip />
|
||||
<el-table-column prop="contactPerson" label="负责人" show-overflow-tooltip />
|
||||
<el-table-column prop="contactPhone" label="负责人电话" show-overflow-tooltip />
|
||||
<el-table-column prop="description" label="报备说明" show-overflow-tooltip />
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template #default="{ row }">
|
||||
@@ -118,7 +120,7 @@
|
||||
</el-card>
|
||||
|
||||
<!-- 提交报备对话框 -->
|
||||
<el-dialog v-model="dialogVisible" title="提交报备" width="600px" @close="handleDialogClose">
|
||||
<el-dialog v-model="dialogVisible" title="提交报备" width="650px" @close="handleDialogClose">
|
||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
|
||||
<el-form-item label="学校" prop="schoolName">
|
||||
<el-autocomplete
|
||||
@@ -151,6 +153,20 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="contactPerson">
|
||||
<el-input
|
||||
v-model="formData.contactPerson"
|
||||
placeholder="请输入负责人姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人电话" prop="contactPhone">
|
||||
<el-input
|
||||
v-model="formData.contactPhone"
|
||||
placeholder="请输入负责人电话"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="报备说明" prop="description">
|
||||
<el-input
|
||||
v-model="formData.description"
|
||||
@@ -210,6 +226,20 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="contactPerson">
|
||||
<el-input
|
||||
v-model="editFormData.contactPerson"
|
||||
placeholder="请输入负责人姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人电话" prop="contactPhone">
|
||||
<el-input
|
||||
v-model="editFormData.contactPhone"
|
||||
placeholder="请输入负责人电话"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="报备说明" prop="description">
|
||||
<el-input
|
||||
v-model="editFormData.description"
|
||||
@@ -254,6 +284,12 @@
|
||||
<el-descriptions-item label="项目类型">
|
||||
{{ currentReport?.projectType || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="项目负责人">
|
||||
{{ currentReport?.contactPerson || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="项目电话">
|
||||
{{ currentReport?.contactPhone || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="状态" :span="2">
|
||||
<el-tag v-if="currentReport?.status === 0" type="warning">待审核</el-tag>
|
||||
<el-tag v-else-if="currentReport?.status === 1" type="success">已通过</el-tag>
|
||||
@@ -398,7 +434,9 @@ const formData = reactive<ReportForm>({
|
||||
schoolName: '',
|
||||
product: '',
|
||||
projectType: '',
|
||||
description: ''
|
||||
description: '',
|
||||
contactPerson: '',
|
||||
contactPhone: ''
|
||||
})
|
||||
|
||||
const auditForm = reactive({
|
||||
@@ -410,6 +448,8 @@ const editFormData = reactive<ReportUpdateForm>({
|
||||
product: '',
|
||||
projectType: '',
|
||||
description: '',
|
||||
contactPerson: '',
|
||||
contactPhone: '',
|
||||
status: 1,
|
||||
cancelReason: ''
|
||||
})
|
||||
@@ -559,6 +599,13 @@ const handleReset = () => {
|
||||
|
||||
// 新增按钮
|
||||
const handleAdd = () => {
|
||||
// 自动填充经销商的联系人和电话
|
||||
if (userStore.userInfo?.dealerContactPerson) {
|
||||
formData.contactPerson = userStore.userInfo.dealerContactPerson
|
||||
}
|
||||
if (userStore.userInfo?.dealerContactPhone) {
|
||||
formData.contactPhone = userStore.userInfo.dealerContactPhone
|
||||
}
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
@@ -583,6 +630,8 @@ const handleEdit = (row: Report) => {
|
||||
editFormData.product = row.product || ''
|
||||
editFormData.projectType = row.projectType || ''
|
||||
editFormData.description = row.description || ''
|
||||
editFormData.contactPerson = row.contactPerson || ''
|
||||
editFormData.contactPhone = row.contactPhone || ''
|
||||
editFormData.status = row.status
|
||||
editFormData.cancelReason = row.cancelReason || ''
|
||||
editDialogVisible.value = true
|
||||
@@ -595,6 +644,8 @@ const handleEditDialogClose = () => {
|
||||
product: '',
|
||||
projectType: '',
|
||||
description: '',
|
||||
contactPerson: '',
|
||||
contactPhone: '',
|
||||
status: 1,
|
||||
cancelReason: ''
|
||||
})
|
||||
@@ -683,7 +734,9 @@ const handleDialogClose = () => {
|
||||
schoolName: '',
|
||||
product: '',
|
||||
projectType: '',
|
||||
description: ''
|
||||
description: '',
|
||||
contactPerson: '',
|
||||
contactPhone: ''
|
||||
})
|
||||
selectedSchool.value = null
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user