This commit is contained in:
guochunsi
2026-01-22 12:15:44 +08:00
parent 109ae6ddd2
commit a7738581da

View File

@@ -78,50 +78,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="准考证号" prop="examRegistrationNumbers">
<el-input
v-model="dataForm.examRegistrationNumbers"
placeholder="准考证号"
maxlength="20"
:disabled="!isEdit"
v-input-filter="'alphanumeric'">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="成绩" prop="score">
<el-input-number
v-model="dataForm.score"
placeholder="成绩"
:min="0"
:max="1000"
:disabled="!isEdit"
@change="calculateCorrectedScore">
</el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="12">
<el-form-item label="毕业学校" prop="schoolOfGraduation">
<el-input type="text" v-model="dataForm.schoolOfGraduation" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="6">
<el-form-item label="文化程度" prop="degreeOfEducation">
<el-select v-model="dataForm.degreeOfEducation" filterable placeholder="请选择文化程度" class="w-full" :disabled="!isEdit" @change="changeEducation">
<el-option
v-for="item in eduList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否团员" prop="isLeagueMember"> <el-form-item label="是否团员" prop="isLeagueMember">
<el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" class="w-full" :disabled="!isEdit"> <el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" class="w-full" :disabled="!isEdit">
@@ -146,6 +102,52 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="12">
<el-form-item label="毕业学校" prop="schoolOfGraduation">
<el-input type="text" v-model="dataForm.schoolOfGraduation" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="6">
<el-form-item label="准考证号" prop="examRegistrationNumbers">
<el-input
v-model="dataForm.examRegistrationNumbers"
placeholder="准考证号"
maxlength="20"
:disabled="!isEdit"
v-input-filter="'alphanumeric'">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="文化程度" prop="degreeOfEducation">
<el-select v-model="dataForm.degreeOfEducation" filterable placeholder="请选择文化程度" class="w-full" :disabled="!isEdit" @change="changeEducation">
<el-option
v-for="item in eduList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="成绩" prop="score">
<el-input-number
v-model="dataForm.score"
placeholder="成绩"
:min="0"
:max="1000"
:disabled="!isEdit"
@change="calculateCorrectedScore">
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="户口性质" prop="residenceType"> <el-form-item label="户口性质" prop="residenceType">
<el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" class="w-full" :disabled="!isEdit"> <el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" class="w-full" :disabled="!isEdit">
@@ -608,11 +610,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8">
<el-form-item label="原序号" prop="oldSerialNumber">
<el-input type="text" v-model="dataForm.oldSerialNumber" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="辨色力" prop="colorDiscrimination"> <el-form-item label="辨色力" prop="colorDiscrimination">
<el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" class="w-full" :disabled="!isEdit"> <el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" class="w-full" :disabled="!isEdit">
@@ -675,6 +672,7 @@ import { list as scoreList } from "/@/api/recruit/recruitstudentplancorrectscore
import { queryAllTeacher } from "/@/api/professional/professionaluser/teacherbase" import { queryAllTeacher } from "/@/api/professional/professionaluser/teacherbase"
import { getNationalList } from "/@/api/basic/basicnation" import { getNationalList } from "/@/api/basic/basicnation"
import { verifyIdCardAll, verifyAdmissionNumber } from '/@/utils/toolsValidate' import { verifyIdCardAll, verifyAdmissionNumber } from '/@/utils/toolsValidate'
import { AUDIT_STATUS_LIST, getStatusConfig } from '/@/config/global'
const message = useMessage() const message = useMessage()
const messageBox = useMessageBox() const messageBox = useMessageBox()
@@ -700,6 +698,8 @@ const isShow = ref(false)
const isEdit = ref(false) const isEdit = ref(false)
// 性别是否必填(证件类型不是身份证时必填) // 性别是否必填(证件类型不是身份证时必填)
const isGenderRequired = computed(() => dataForm.idCardType !== '0') const isGenderRequired = computed(() => dataForm.idCardType !== '0')
// 录取状态
const auditStatusList = AUDIT_STATUS_LIST
// 户口性质 // 户口性质
const residenceTypeList = ref<any[]>([]) const residenceTypeList = ref<any[]>([])
const schoolCodeList = ref<any[]>([]) const schoolCodeList = ref<any[]>([])
@@ -712,7 +712,6 @@ const areaAreaList = ref<any[]>([])
const areaHomeProvinceList = ref<any[]>([]) const areaHomeProvinceList = ref<any[]>([])
const areaHomeCityList = ref<any[]>([]) const areaHomeCityList = ref<any[]>([])
const areaHomeAreaList = ref<any[]>([]) const areaHomeAreaList = ref<any[]>([])
const dialogImageUrl = ref("")
const dialogUploadVisible = ref(false) const dialogUploadVisible = ref(false)
const sevenMajorList = ref<any[]>([]) const sevenMajorList = ref<any[]>([])
const sixMajorList = ref<any[]>([]) const sixMajorList = ref<any[]>([])
@@ -904,8 +903,20 @@ const dataRule = {
parentTel_1: [ parentTel_1: [
{required: true, message: '家长手机不能为空', trigger: 'change'} {required: true, message: '家长手机不能为空', trigger: 'change'}
], ],
// wishMajor_1: [ // wishMajorOne: [
// {required: true, message: '拟报专业不能为空', trigger: 'change'} // {
// validator: (rule: any, value: any, callback: any) => {
// // 新增时不需要验证,修改时需要验证
// if (!dataForm.id) {
// callback()
// } else if (!value) {
// callback(new Error('拟报专业不能为空'))
// } else {
// callback()
// }
// },
// trigger: 'change'
// }
// ], // ],
contactName: [ contactName: [
{required: true, message: '联系人不能为空', trigger: 'change'} {required: true, message: '联系人不能为空', trigger: 'change'}
@@ -923,7 +934,6 @@ const init = (id: string | null, typeParam: number) => {
dataForm.id = id || null dataForm.id = id || null
type.value = typeParam type.value = typeParam
isEdit.value = typeParam == 1 ? true : false isEdit.value = typeParam == 1 ? true : false
console.log('typeParam',typeParam,'isEdit',isEdit.value)
visible.value = true visible.value = true
canSubmit.value = true canSubmit.value = true
initData() initData()
@@ -991,47 +1001,15 @@ const init = (id: string | null, typeParam: number) => {
title.value = dataForm.serialNumber title.value = dataForm.serialNumber
// 获取文化程度对应的专业 // 获取文化程度对应的专业
planMajorList.value = [] // 根据学历获取代办费(从字典获取)
twoMajorList.value = []
threeMajorList.value = []
fiveMajorList.value = []
sixMajorList.value = []
sevenMajorList.value = []
fourMajorList.value = []
agencyFeeList.value.forEach((e: any) => { agencyFeeList.value.forEach((e: any) => {
if (dataForm.degreeOfEducation == e.label) { if (dataForm.degreeOfEducation == e.label) {
dataForm.feeAgency = e.value dataForm.feeAgency = e.value
} }
}) })
tuitionFeeList.value.forEach((e: any) => { // 加载专业列表并分组
if (dataForm.degreeOfEducation == e.label && (dataForm.degreeOfEducation != 1)) { loadMajorListAndGroup()
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)
}
})
})
// 获取招生计划下的学校和分数线
scoreList({ groupId: dataForm.groupId }).then((data: any) => { scoreList({ groupId: dataForm.groupId }).then((data: any) => {
schoolCodeList.value = data.data schoolCodeList.value = data.data
}) })
@@ -1058,20 +1036,21 @@ const init = (id: string | null, typeParam: number) => {
} }
}) })
} }
if ("1" == String(dataForm.degreeOfEducation)) { // 根据文化程度添加前缀:初中(C)、高中(G)、技职校(J)
title.value = "C" + title.value const educationPrefixMap: Record<string, string> = {
} else if ("2" == String(dataForm.degreeOfEducation)) { '1': 'C', // 初中
title.value = "G" + title.value '2': 'G', // 高中
} else if ("3" == String(dataForm.degreeOfEducation)) { '3': 'J' // 技职校
title.value = "J" + title.value }
const prefix = educationPrefixMap[String(dataForm.degreeOfEducation)]
if (prefix) {
title.value = prefix + title.value
} }
if ("-20" == String(dataForm.auditStatus)) { // 从字典数据获取录取状态标签
title.value = "未录取 " + title.value const auditStatusConfig = getStatusConfig(auditStatusList, dataForm.auditStatus)
} else if ("0" == String(dataForm.auditStatus)) { if (auditStatusConfig && auditStatusConfig.label) {
title.value = "待审核 " + title.value title.value = auditStatusConfig.label + " " + title.value
} else if ("20" == String(dataForm.auditStatus)) {
title.value = "已录取 " + title.value
} }
}) })
} else { } else {
@@ -1090,34 +1069,9 @@ const handleIdCardTypeChange = () => {
} }
} }
const changeEducation = () => { // 加载专业列表并分组
// 清空拟报专业 录取专业 学费和代办费 const loadMajorListAndGroup = () => {
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
}
})
// 根据学历获取快捷专业选择
planMajorList.value = [] planMajorList.value = []
twoMajorList.value = [] twoMajorList.value = []
threeMajorList.value = [] threeMajorList.value = []
@@ -1125,12 +1079,12 @@ const changeEducation = () => {
sixMajorList.value = [] sixMajorList.value = []
sevenMajorList.value = [] sevenMajorList.value = []
fourMajorList.value = [] fourMajorList.value = []
// 根据学历获取专业 // 根据学历获取专业
listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((e: any) => { listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((e: any) => {
planMajorList.value = e.data planMajorList.value = e.data
if (1 != Number(dataForm.degreeOfEducation)) { // 如果是初中生,则根据折算分匹配录取专业
getGzAuditChange() getGzAuditChange()
}
// 根据年制分组 // 根据年制分组
planMajorList.value.forEach((item: any) => { planMajorList.value.forEach((item: any) => {
if (item.learnYear == '2') { if (item.learnYear == '2') {
@@ -1147,9 +1101,41 @@ const changeEducation = () => {
sevenMajorList.value.push(item) 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 handlePicCardPreview = (file: string) => {
const array = file.split(",") const array = file.split(",")
imgList.value = array imgList.value = array
@@ -1205,29 +1191,33 @@ const changePlaceScore = () => {
} }
const getGzAuditChange = () => { const getGzAuditChange = () => {
if (isEdit.value && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) { // 如果是初中生 需要根据折算分匹配录取专业
// 根据折算分匹配录取专业 if (dataForm.degreeOfEducation == "1") {
planMajorList.value.forEach((e: any) => { if (isEdit.value && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) {
if (e.majorCode == dataForm.wishMajorOne && (parseFloat(e.xyNum) > 0)) { // 根据折算分匹配录取专业
dataForm.confirmedMajor = dataForm.wishMajorOne 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) { if (dataForm.confirmedMajor) {
planMajorList.value.forEach((e: any) => { planMajorList.value.forEach((e: any) => {
if (e.majorCode == dataForm.wishMajorThree && (parseFloat(e.xyNum) > 0)) { if (e.majorCode == dataForm.wishMajorThree && (parseFloat(e.xyNum) > 0)) {
dataForm.confirmedMajor = dataForm.wishMajorOne dataForm.confirmedMajor = dataForm.wishMajorOne
} }
}) })
}
} }
} }
} }
// 计算成绩折算分 // 计算成绩折算分
@@ -1331,22 +1321,34 @@ const changeH = (changeType: number) => {
// 改变录取专业 // 改变录取专业
const changeConfirmedMajor = (id: string) => { const changeConfirmedMajor = (id: string) => {
if (id) { if (id) {
let flag = false
dataForm.confirmedMajor = id dataForm.confirmedMajor = id
// 是初中生并且是中德班 // 根据文化程度和录取专业更新学费
planMajorList.value.forEach((e: any) => { updateTuitionByMajorAndEducation()
if (dataForm.confirmedMajor == e.majorCode && e.isZd == "1" && dataForm.degreeOfEducation == "1") { }
flag = true }
}
}) // 根据文化程度和录取专业更新学费
if (dataForm.degreeOfEducation == "1") { const updateTuitionByMajorAndEducation = () => {
dataForm.feeTuition = 0 if (!dataForm.confirmedMajor || !dataForm.degreeOfEducation) {
tuitionFeeList.value.forEach((e: any) => { return
if (e.label == "0" && flag) { }
dataForm.feeTuition = e.value
} // 查找选中的专业
}) 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
} }
} }