This commit is contained in:
guochunsi
2026-01-06 19:23:18 +08:00
parent 8af3aaa9b6
commit e1cb334fbf
33 changed files with 685 additions and 329 deletions

View File

@@ -147,8 +147,8 @@
import { ref, reactive, computed } from 'vue'
import { Session } from '/@/utils/storage'
import { useMessage } from '/@/hooks/message'
import { getMyTeacherNo, updateOtherInfo } from '/@/api/professional/professionaluser/teacherbase'
import { putObj } from '/@/api/professional/professionaluser/professionalteacheracademicrelation'
import { getMyTeacherNo } from '/@/api/professional/professionaluser/teacherbase'
import { addObj } from '/@/api/professional/professionaluser/professionalteacheracademicrelation'
import { getAllTypeList } from '/@/api/professional/rsbase/professionalacademiceducationtypeconfig'
import { getQualificationList } from '/@/api/professional/rsbase/academicqualificationsconfig'
import { getDegreeList } from '/@/api/professional/rsbase/professionalacademicdegreeconfig'
@@ -370,42 +370,30 @@ const dialogSubmit = async () => {
if (valid) {
submitLoading.value = true
try {
// 统一使用 addObj 接口(新增和编辑都使用同一个接口)
// 确保 qualificationImg 或 materialA 有值
if (!dataForm.qualificationImg && dataForm.materialA) {
dataForm.qualificationImg = dataForm.materialA
}
// 确保 degreeImg 或 materialB 有值
if (!dataForm.degreeImg && dataForm.materialB) {
dataForm.degreeImg = dataForm.materialB
}
if (dataForm.id) {
// 编辑:使用 putObj 接口(管理员编辑)
// 编辑模式
dataForm.state = '0'
await putObj(dataForm)
await addObj(dataForm)
message.success("修改成功")
} else {
// 新增:使用 updateOtherInfo 接口(与 MultiDialog 保持一致)
// 注意MultiDialog 中 type 字段在提交时会被设置为 val1但表单中也有 type 字段用于教育类型
// 这里直接使用 dataForm 的所有字段,后端应该能够处理
const submitData: any = {
type: 1, // 学历更新类型(固定值,会覆盖表单中的 type
teacherNo: dataForm.teacherNo,
graduateTime: dataForm.graduateTime,
qualificationConfigId: dataForm.qualificationConfigId,
degreeConfigId: dataForm.degreeConfigId,
graduateSchool: dataForm.graduateSchool,
major: dataForm.major,
certificateNumber: dataForm.certificateNumber,
mateA: dataForm.qualificationImg || dataForm.materialA, // 学历证书
mateB: dataForm.degreeImg || dataForm.materialB // 学位证书
}
// 注意MultiDialog 中教育类型字段也是 type但在提交时会被覆盖为 val1
// 如果后端需要教育类型,可能需要单独传递,这里先不传,保持与 MultiDialog 一致
const res = await updateOtherInfo(submitData)
if (res.data == '-1') {
message.warning("当前不允许提交")
} else {
message.success("提交成功")
}
// 新增模式
await addObj(dataForm)
message.success("提交成功")
}
dialogVisible.value = false
emit('refreshData')
} catch (error: any) {
message.error(error?.msg || '操作失败')
// 错误处理已在数据请求层统一处理,此处不需要提示
} finally {
submitLoading.value = false
}