From a7738581da6ca42dc33bceffe0bab0dc53d4f84b Mon Sep 17 00:00:00 2001 From: guochunsi <1595020186@qq.com> Date: Thu, 22 Jan 2026 12:15:44 +0800 Subject: [PATCH] a --- .../recruitstudentsignup/detaiform.vue | 334 +++++++++--------- 1 file changed, 168 insertions(+), 166 deletions(-) diff --git a/src/views/recruit/recruitstudentsignup/detaiform.vue b/src/views/recruit/recruitstudentsignup/detaiform.vue index fdfa97b..26c8104 100644 --- a/src/views/recruit/recruitstudentsignup/detaiform.vue +++ b/src/views/recruit/recruitstudentsignup/detaiform.vue @@ -78,50 +78,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -146,6 +102,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -608,11 +610,6 @@ - @@ -675,6 +672,7 @@ import { list as scoreList } from "/@/api/recruit/recruitstudentplancorrectscore import { queryAllTeacher } from "/@/api/professional/professionaluser/teacherbase" import { getNationalList } from "/@/api/basic/basicnation" import { verifyIdCardAll, verifyAdmissionNumber } from '/@/utils/toolsValidate' +import { AUDIT_STATUS_LIST, getStatusConfig } from '/@/config/global' const message = useMessage() const messageBox = useMessageBox() @@ -700,6 +698,8 @@ const isShow = ref(false) const isEdit = ref(false) // 性别是否必填(证件类型不是身份证时必填) const isGenderRequired = computed(() => dataForm.idCardType !== '0') +// 录取状态 +const auditStatusList = AUDIT_STATUS_LIST // 户口性质 const residenceTypeList = ref([]) const schoolCodeList = ref([]) @@ -712,7 +712,6 @@ const areaAreaList = ref([]) const areaHomeProvinceList = ref([]) const areaHomeCityList = ref([]) const areaHomeAreaList = ref([]) -const dialogImageUrl = ref("") const dialogUploadVisible = ref(false) const sevenMajorList = ref([]) const sixMajorList = ref([]) @@ -904,8 +903,20 @@ const dataRule = { parentTel_1: [ {required: true, message: '家长手机不能为空', trigger: 'change'} ], - // wishMajor_1: [ - // {required: true, message: '拟报专业不能为空', trigger: 'change'} + // wishMajorOne: [ + // { + // validator: (rule: any, value: any, callback: any) => { + // // 新增时不需要验证,修改时需要验证 + // if (!dataForm.id) { + // callback() + // } else if (!value) { + // callback(new Error('拟报专业不能为空')) + // } else { + // callback() + // } + // }, + // trigger: 'change' + // } // ], contactName: [ {required: true, message: '联系人不能为空', trigger: 'change'} @@ -923,7 +934,6 @@ const init = (id: string | null, typeParam: number) => { dataForm.id = id || null type.value = typeParam isEdit.value = typeParam == 1 ? true : false - console.log('typeParam',typeParam,'isEdit',isEdit.value) visible.value = true canSubmit.value = true initData() @@ -991,47 +1001,15 @@ const init = (id: string | null, typeParam: number) => { title.value = dataForm.serialNumber // 获取文化程度对应的专业 - planMajorList.value = [] - twoMajorList.value = [] - threeMajorList.value = [] - fiveMajorList.value = [] - sixMajorList.value = [] - sevenMajorList.value = [] - fourMajorList.value = [] + // 根据学历获取代办费(从字典获取) agencyFeeList.value.forEach((e: any) => { if (dataForm.degreeOfEducation == e.label) { dataForm.feeAgency = e.value } }) - tuitionFeeList.value.forEach((e: any) => { - if (dataForm.degreeOfEducation == e.label && (dataForm.degreeOfEducation != 1)) { - dataForm.feeTuition = e.value - } - }) - listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((e: any) => { - planMajorList.value = e.data - if (1 != Number(dataForm.degreeOfEducation)) { - // 如果学历不是初中生,则根据折算分匹配录取专业 - getGzAuditChange() - } - // 根据年制分组 - planMajorList.value.forEach((item: any) => { - if (item.learnYear == '2') { - twoMajorList.value.push(item) - } else if (item.learnYear == '3') { - threeMajorList.value.push(item) - } else if (item.learnYear == '4') { - fourMajorList.value.push(item) - } else if (item.learnYear == '5') { - fiveMajorList.value.push(item) - } else if (item.learnYear == '6') { - sixMajorList.value.push(item) - } else if (item.learnYear == '7') { - sevenMajorList.value.push(item) - } - }) - }) - // 获取招生计划下的学校和分数线 + // 加载专业列表并分组 + loadMajorListAndGroup() + // 获取招生计划下的学校所在城市(本省外市) scoreList({ groupId: dataForm.groupId }).then((data: any) => { schoolCodeList.value = data.data }) @@ -1058,20 +1036,21 @@ const init = (id: string | null, typeParam: number) => { } }) } - if ("1" == String(dataForm.degreeOfEducation)) { - title.value = "C" + title.value - } else if ("2" == String(dataForm.degreeOfEducation)) { - title.value = "G" + title.value - } else if ("3" == String(dataForm.degreeOfEducation)) { - title.value = "J" + title.value + // 根据文化程度添加前缀:初中(C)、高中(G)、技职校(J) + const educationPrefixMap: Record = { + '1': 'C', // 初中 + '2': 'G', // 高中 + '3': 'J' // 技职校 + } + const prefix = educationPrefixMap[String(dataForm.degreeOfEducation)] + if (prefix) { + title.value = prefix + title.value } - if ("-20" == String(dataForm.auditStatus)) { - title.value = "未录取 " + title.value - } else if ("0" == String(dataForm.auditStatus)) { - title.value = "待审核 " + title.value - } else if ("20" == String(dataForm.auditStatus)) { - title.value = "已录取 " + title.value + // 从字典数据获取录取状态标签 + const auditStatusConfig = getStatusConfig(auditStatusList, dataForm.auditStatus) + if (auditStatusConfig && auditStatusConfig.label) { + title.value = auditStatusConfig.label + " " + title.value } }) } else { @@ -1090,34 +1069,9 @@ const handleIdCardTypeChange = () => { } } -const changeEducation = () => { - // 清空拟报专业 录取专业 学费和代办费 - dataForm.wishMajorOne = "" - dataForm.wishMajorTwo = "" - dataForm.wishMajorThree = "" - dataForm.confirmedMajor = "" - dataForm.twoMajor = "" - dataForm.threeMajor = "" - dataForm.fourMajor = "" - dataForm.fiveMajor = "" - dataForm.sixMajor = "" - dataForm.sevenMajor = "" - - dataForm.feeTuition = 0 - dataForm.feeAgency = 0 - - // 重新根据学历 获取学费 和 代办费 - agencyFeeList.value.forEach((e: any) => { - if (dataForm.degreeOfEducation == e.label) { - dataForm.feeAgency = e.value - } - }) - tuitionFeeList.value.forEach((e: any) => { - if (dataForm.degreeOfEducation == e.label && (dataForm.degreeOfEducation != 1)) { - dataForm.feeTuition = e.value - } - }) - // 根据学历获取快捷专业选择 +// 加载专业列表并分组 +const loadMajorListAndGroup = () => { + // 清空专业列表 planMajorList.value = [] twoMajorList.value = [] threeMajorList.value = [] @@ -1125,12 +1079,12 @@ const changeEducation = () => { sixMajorList.value = [] sevenMajorList.value = [] fourMajorList.value = [] + // 根据学历获取专业 listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((e: any) => { planMajorList.value = e.data - if (1 != Number(dataForm.degreeOfEducation)) { - getGzAuditChange() - } + // 如果是初中生,则根据折算分匹配录取专业 + getGzAuditChange() // 根据年制分组 planMajorList.value.forEach((item: any) => { if (item.learnYear == '2') { @@ -1147,9 +1101,41 @@ const changeEducation = () => { sevenMajorList.value.push(item) } }) + + // 如果已有录取专业,根据文化程度和专业更新学费 + if (dataForm.confirmedMajor) { + updateTuitionByMajorAndEducation() + } }) } +const changeEducation = () => { + // 清空拟报专业 录取专业 学费和代办费 + dataForm.wishMajorOne = "" + dataForm.wishMajorTwo = "" + dataForm.wishMajorThree = "" + dataForm.confirmedMajor = "" + dataForm.twoMajor = "" + dataForm.threeMajor = "" + dataForm.fourMajor = "" + dataForm.fiveMajor = "" + dataForm.sixMajor = "" + dataForm.sevenMajor = "" + + dataForm.feeTuition = 0 + dataForm.feeAgency = 0 + + // 重新根据学历获取代办费(从字典获取) + agencyFeeList.value.forEach((e: any) => { + if (dataForm.degreeOfEducation == e.label) { + dataForm.feeAgency = e.value + } + }) + + // 加载专业列表并分组 + loadMajorListAndGroup() +} + const handlePicCardPreview = (file: string) => { const array = file.split(",") imgList.value = array @@ -1205,29 +1191,33 @@ const changePlaceScore = () => { } const getGzAuditChange = () => { - if (isEdit.value && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) { - // 根据折算分匹配录取专业 - planMajorList.value.forEach((e: any) => { - if (e.majorCode == dataForm.wishMajorOne && (parseFloat(e.xyNum) > 0)) { - dataForm.confirmedMajor = dataForm.wishMajorOne + // 如果是初中生 需要根据折算分匹配录取专业 + if (dataForm.degreeOfEducation == "1") { + if (isEdit.value && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) { + // 根据折算分匹配录取专业 + planMajorList.value.forEach((e: any) => { + if (e.majorCode == dataForm.wishMajorOne && (parseFloat(e.xyNum) > 0)) { + dataForm.confirmedMajor = dataForm.wishMajorOne + } + }) + if (dataForm.confirmedMajor) { + planMajorList.value.forEach((e: any) => { + if (e.majorCode == dataForm.wishMajorTwo && (parseFloat(e.xyNum) > 0)) { + dataForm.confirmedMajor = dataForm.wishMajorOne + } + }) } - }) - if (dataForm.confirmedMajor) { - planMajorList.value.forEach((e: any) => { - if (e.majorCode == dataForm.wishMajorTwo && (parseFloat(e.xyNum) > 0)) { - dataForm.confirmedMajor = dataForm.wishMajorOne - } - }) - } - if (dataForm.confirmedMajor) { - planMajorList.value.forEach((e: any) => { - if (e.majorCode == dataForm.wishMajorThree && (parseFloat(e.xyNum) > 0)) { - dataForm.confirmedMajor = dataForm.wishMajorOne - } - }) + if (dataForm.confirmedMajor) { + planMajorList.value.forEach((e: any) => { + if (e.majorCode == dataForm.wishMajorThree && (parseFloat(e.xyNum) > 0)) { + dataForm.confirmedMajor = dataForm.wishMajorOne + } + }) + } } } + } // 计算成绩折算分 @@ -1331,22 +1321,34 @@ const changeH = (changeType: number) => { // 改变录取专业 const changeConfirmedMajor = (id: string) => { if (id) { - let flag = false dataForm.confirmedMajor = id - // 是初中生并且是中德班 - planMajorList.value.forEach((e: any) => { - if (dataForm.confirmedMajor == e.majorCode && e.isZd == "1" && dataForm.degreeOfEducation == "1") { - flag = true - } - }) - if (dataForm.degreeOfEducation == "1") { - dataForm.feeTuition = 0 - tuitionFeeList.value.forEach((e: any) => { - if (e.label == "0" && flag) { - dataForm.feeTuition = e.value - } - }) - } + // 根据文化程度和录取专业更新学费 + updateTuitionByMajorAndEducation() + } +} + +// 根据文化程度和录取专业更新学费 +const updateTuitionByMajorAndEducation = () => { + if (!dataForm.confirmedMajor || !dataForm.degreeOfEducation) { + return + } + + // 查找选中的专业 + const selectedMajor = planMajorList.value.find((major: any) => major.majorCode === dataForm.confirmedMajor) + if (!selectedMajor) { + return + } + + // 根据文化程度选择对应的学费字段 + // '1' = 初中 -> czFee + // '2' = 高中 -> gzFee + // '3' = 技职校 -> jzxFee + if (dataForm.degreeOfEducation === '1' && selectedMajor.czFee !== undefined && selectedMajor.czFee !== null) { + dataForm.feeTuition = selectedMajor.czFee + } else if (dataForm.degreeOfEducation === '2' && selectedMajor.gzFee !== undefined && selectedMajor.gzFee !== null) { + dataForm.feeTuition = selectedMajor.gzFee + } else if (dataForm.degreeOfEducation === '3' && selectedMajor.jzxFee !== undefined && selectedMajor.jzxFee !== null) { + dataForm.feeTuition = selectedMajor.jzxFee } }