This commit is contained in:
guochunsi
2026-01-21 17:21:14 +08:00
parent 798e45dc04
commit d283a10257
6 changed files with 523 additions and 472 deletions

View File

@@ -29,17 +29,17 @@
<el-row :gutter="20" class="form-row">
<el-col :span="6">
<el-form-item label="姓名" prop="name" >
<el-input type="text" v-model="dataForm.name" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.name" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="曾用名" prop="oldName">
<el-input type="text" v-model="dataForm.oldName" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.oldName" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="性别" prop="gender">
<el-select v-model="dataForm.gender" class="w-full" :disabled="type==2 ? false : true" >
<el-select v-model="dataForm.gender" class="w-full" :disabled="!isEdit" >
<el-option
v-for="item in sexy"
:key="item.value"
@@ -51,14 +51,14 @@
</el-col>
<el-col :span="6">
<el-form-item label="民族" prop="nationality">
<el-input type="text" v-model="dataForm.nationality" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.nationality" :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="type==1 ? false : true" @change="changeEducation">
<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"
@@ -70,7 +70,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="是否团员" prop="isLeagueMember">
<el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" class="w-full" :disabled="type==1 ? false : true">
<el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" class="w-full" :disabled="!isEdit">
<el-option
v-for="item in yes_no_type"
:key="item.value"
@@ -82,7 +82,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="是否住宿" prop="isAccommodation">
<el-select v-model="dataForm.isAccommodation" filterable clearable placeholder="请选择是否住宿" class="w-full" :disabled="type==1 ? false : true">
<el-select v-model="dataForm.isAccommodation" filterable clearable placeholder="请选择是否住宿" class="w-full" :disabled="!isEdit">
<el-option
v-for="item in yes_no_type"
:key="item.value"
@@ -94,7 +94,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="户口性质" prop="residenceType">
<el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" class="w-full" :disabled="type==1 ? false : true">
<el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" class="w-full" :disabled="!isEdit">
<el-option
v-for="item in residenceTypeList"
:key="item.value"
@@ -108,7 +108,7 @@
<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="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.schoolOfGraduation" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -130,7 +130,7 @@
v-model="dataForm.examRegistrationNumbers"
placeholder="准考证号"
maxlength="20"
:disabled="type==1 ? false : true"
:disabled="!isEdit"
v-input-filter="'alphanumeric'">
</el-input>
</el-form-item>
@@ -142,8 +142,8 @@
placeholder="成绩"
:min="0"
:max="1000"
:disabled="type==1 ? false : true"
@change="jsZSF">
:disabled="!isEdit"
@change="calculateCorrectedScore">
</el-input-number>
</el-form-item>
</el-col>
@@ -155,7 +155,7 @@
v-model="dataForm.correctedScore"
:min="0"
:max="1000"
:disabled="type==2 ? false : true">
disabled>
</el-input-number>
</el-form-item>
</el-col>
@@ -172,7 +172,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="学校归属地" prop="schoolArea">
<el-select v-model="dataForm.schoolArea" filterable placeholder="请选择学校归属地" class="w-full" :disabled="type==1 ? false : true" @change="changeFrom">
<el-select v-model="dataForm.schoolArea" filterable placeholder="请选择学校归属地" class="w-full" :disabled="!isEdit" @change="changeFrom">
<el-option
v-for="item in schoolFromList"
:key="item.value"
@@ -187,7 +187,7 @@
<el-col :span="24">
<el-form-item label="学校所在省市" prop="jsOtherCity">
<el-select v-model="dataForm.jsOtherCity" filterable placeholder="请选择学校所在省市" class="w-full"
:disabled="type==1 ? false : true" @change="changeSchoolCode">
:disabled="!isEdit" @change="changeSchoolCode">
<el-option
v-for="item in schoolCodeList"
:key="item.regionId"
@@ -202,9 +202,9 @@
<el-col :span="24">
<el-form-item label="外省" prop="otherProvince">
<el-select v-model="dataForm.otherProvince" filterable placeholder="请选择学校所在省市" class="w-full"
:disabled="type==1 ? false : true" @change="changeSchoolCode">
:disabled="!isEdit" @change="changeSchoolCode">
<el-option
v-for="item in areaHPList"
v-for="item in areaHomeProvinceList"
:key="item.code"
:label="item.name"
:value="item.code">
@@ -218,27 +218,27 @@
<el-col :span="12">
<el-form-item label="户口所在地" prop="residenceProvince">
<div class="address-group">
<el-select v-model="dataForm.residenceProvince" filterable clearable placeholder="省" class="address-select" :disabled="type==1 ? false : true" @change="changeR(1)">
<el-select v-model="dataForm.residenceProvince" filterable clearable placeholder="省" class="address-select" :disabled="!isEdit" @change="changeR(1)">
<el-option
v-for="item in areaPList"
v-for="item in areaProvinceList"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
<span class="address-separator">-</span>
<el-select v-model="dataForm.residenceCity" filterable clearable placeholder="市" class="address-select" :disabled="type==1 ? false : true" @change="changeR(2)">
<el-select v-model="dataForm.residenceCity" filterable clearable placeholder="市" class="address-select" :disabled="!isEdit" @change="changeR(2)">
<el-option
v-for="item in areaCList"
v-for="item in areaCityList"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
<span class="address-separator">-</span>
<el-select v-model="dataForm.residenceArea" filterable clearable placeholder="区/县" class="address-select" :disabled="type==1 ? false : true">
<el-select v-model="dataForm.residenceArea" filterable clearable placeholder="区/县" class="address-select" :disabled="!isEdit">
<el-option
v-for="item in areaAList"
v-for="item in areaAreaList"
:key="item.code"
:label="item.name"
:value="item.code">
@@ -249,7 +249,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="详细地址" prop="residenceDetail">
<el-input type="text" v-model="dataForm.residenceDetail" placeholder="请输入详细地址" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.residenceDetail" placeholder="请输入详细地址" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -258,27 +258,27 @@
<el-col :span="12">
<el-form-item label="家庭地址" prop="homeAddressProvince">
<div class="address-group">
<el-select v-model="dataForm.homeAddressProvince" filterable clearable placeholder="省" class="address-select" :disabled="type==1 ? false : true" @change="changeH(1)">
<el-select v-model="dataForm.homeAddressProvince" filterable clearable placeholder="省" class="address-select" :disabled="!isEdit" @change="changeH(1)">
<el-option
v-for="item in areaHPList"
v-for="item in areaHomeProvinceList"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
<span class="address-separator">-</span>
<el-select v-model="dataForm.homeAddressCity" filterable clearable placeholder="市" class="address-select" :disabled="type==1 ? false : true" @change="changeH(2)">
<el-select v-model="dataForm.homeAddressCity" filterable clearable placeholder="市" class="address-select" :disabled="!isEdit" @change="changeH(2)">
<el-option
v-for="item in areaHCList"
v-for="item in areaHomeCityList"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
<span class="address-separator">-</span>
<el-select v-model="dataForm.homeAddressArea" filterable clearable placeholder="区/县" class="address-select" :disabled="type==1 ? false : true">
<el-select v-model="dataForm.homeAddressArea" filterable clearable placeholder="区/县" class="address-select" :disabled="!isEdit">
<el-option
v-for="item in areaHAList"
v-for="item in areaHomeAreaList"
:key="item.code"
:label="item.name"
:value="item.code">
@@ -289,14 +289,14 @@
</el-col>
<el-col :span="12">
<el-form-item label="详细地址" prop="homeAddressDetail">
<el-input type="text" v-model="dataForm.homeAddressDetail" placeholder="请输入详细地址" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.homeAddressDetail" placeholder="请输入详细地址" :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="parentName">
<el-input type="text" v-model="dataForm.parentName" :disabled="type==1 ? false : true"></el-input>
<el-input type="text" v-model="dataForm.parentName" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -306,7 +306,7 @@
type="tel"
placeholder="家长手机"
maxlength="11"
:disabled="type==1 ? false : true"
:disabled="!isEdit"
v-input-filter="'number'">
</el-input>
</el-form-item>
@@ -317,7 +317,7 @@
v-model="dataForm.parentTelTwo"
placeholder="家长固话"
maxlength="20"
:disabled="type==1 ? false : true"
:disabled="!isEdit"
v-input-filter="'tel'">
</el-input>
</el-form-item>
@@ -329,7 +329,7 @@
type="tel"
placeholder="本人联系电话"
maxlength="11"
:disabled="type==1 ? false : true"
:disabled="!isEdit"
v-input-filter="'number'">
</el-input>
</el-form-item>
@@ -381,7 +381,7 @@
<el-row :gutter="20" class="form-row">
<el-col :span="24">
<el-form-item label="录取专业" prop="confirmedMajor">
<el-select v-model="dataForm.confirmedMajor" filterable clearable placeholder="" class="w-full" :disabled="type==1 ? false : true" @change="changeM(dataForm.confirmedMajor)">
<el-select v-model="dataForm.confirmedMajor" filterable clearable placeholder="" class="w-full" :disabled="!isEdit" @change="changeConfirmedMajor(dataForm.confirmedMajor)">
<el-option
v-for="item in planMajorList"
:key="item.majorCode"
@@ -392,10 +392,10 @@
</el-form-item>
</el-col>
</el-row>
<el-row v-if="type==0 ? false : true" :gutter="20" class="form-row">
<el-row v-if="isEdit" :gutter="20" class="form-row">
<el-col :span="24">
<el-form-item label="两年制专业" prop="twoMajor" v-if="twoMajorList.length>0">
<el-select v-model="dataForm.twoMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.twoMajor)">
<el-select v-model="dataForm.twoMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.twoMajor)">
<el-option
v-for="item in twoMajorList"
:key="item.majorCode"
@@ -405,7 +405,7 @@
</el-select>
</el-form-item>
<el-form-item label="三年制专业" prop="threeMajor" v-if="threeMajorList.length>0">
<el-select v-model="dataForm.threeMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.threeMajor)">
<el-select v-model="dataForm.threeMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.threeMajor)">
<el-option
v-for="item in threeMajorList"
:key="item.majorCode"
@@ -415,7 +415,7 @@
</el-select>
</el-form-item>
<el-form-item label="四年制专业" prop="fourMajor" v-if="fourMajorList.length>0">
<el-select v-model="dataForm.fourMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.fourMajor)">
<el-select v-model="dataForm.fourMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.fourMajor)">
<el-option
v-for="item in fourMajorList"
:key="item.majorCode"
@@ -425,7 +425,7 @@
</el-select>
</el-form-item>
<el-form-item label="五年制专业" prop="fiveMajor" v-if="fiveMajorList.length>0">
<el-select v-model="dataForm.fiveMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.fiveMajor)">
<el-select v-model="dataForm.fiveMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.fiveMajor)">
<el-option
v-for="item in fiveMajorList"
:key="item.majorCode"
@@ -435,7 +435,7 @@
</el-select>
</el-form-item>
<el-form-item label="六年制专业" prop="sixMajor" v-if="sixMajorList.length>0">
<el-select v-model="dataForm.sixMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.sixMajor)">
<el-select v-model="dataForm.sixMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.sixMajor)">
<el-option
v-for="item in sixMajorList"
:key="item.majorCode"
@@ -445,7 +445,7 @@
</el-select>
</el-form-item>
<el-form-item label="七年制专业" prop="sevenMajor" v-if="sevenMajorList.length>0">
<el-select v-model="dataForm.sevenMajor" filterable clearable placeholder="" class="w-full" @change="changeM(dataForm.sevenMajor)">
<el-select v-model="dataForm.sevenMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.sevenMajor)">
<el-option
v-for="item in sevenMajorList"
:key="item.majorCode"
@@ -460,12 +460,12 @@
<el-row :gutter="20" class="form-row">
<el-col :span="6">
<el-form-item label="学费" prop="feeTuition">
<el-input-number v-model="dataForm.feeTuition" controls-position="right" :min="0" :max="999999" :step-strictly="true" :disabled="type==2?false:true" class="w-full"></el-input-number>
<el-input-number v-model="dataForm.feeTuition" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled class="w-full"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="代办费" prop="feeAgency">
<el-input-number v-model="dataForm.feeAgency" controls-position="right" :min="0" :max="999999" :step-strictly="true" :disabled="type==2?false:true" class="w-full"></el-input-number>
<el-input-number v-model="dataForm.feeAgency" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled class="w-full"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -585,7 +585,7 @@
<el-row :gutter="20" class="form-row">
<el-col :span="8">
<el-form-item label="联系人" prop="contactName">
<el-select v-model="dataForm.contactName" filterable clearable placeholder="请选择联系人" class="w-full" :disabled="type==1?false:true">
<el-select v-model="dataForm.contactName" filterable clearable placeholder="请选择联系人" class="w-full" :disabled="!isEdit">
<el-option
v-for="item in contactNameList"
:key="item.teacherNo"
@@ -597,12 +597,12 @@
</el-col>
<el-col :span="8">
<el-form-item label="原序号" prop="oldSerialNumber">
<el-input type="text" v-model="dataForm.oldSerialNumber" :disabled="type==1?false:true"></el-input>
<el-input type="text" v-model="dataForm.oldSerialNumber" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="辨色力" prop="colorDiscrimination">
<el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" class="w-full" :disabled="type==1?false:true">
<el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" class="w-full" :disabled="!isEdit">
<el-option
v-for="item in color_discrimination"
:key="item.value"
@@ -616,30 +616,30 @@
<el-row :gutter="20" class="form-row">
<el-col :span="24">
<el-form-item label="既往病史" prop="pastMedicalHistory">
<el-input type="textarea" v-model="dataForm.pastMedicalHistory" placeholder="请输入既往病史" :rows="2" :disabled="type==1?false:true"></el-input>
<el-input type="textarea" v-model="dataForm.pastMedicalHistory" placeholder="请输入既往病史" :rows="2" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="24">
<el-form-item label="备注" prop="remarks">
<el-input type="textarea" v-model="dataForm.remarks" placeholder="备注" :rows="2" :disabled="type==1?false:true"></el-input>
<el-input type="textarea" v-model="dataForm.remarks" placeholder="备注" :rows="2" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" class="form-row">
<el-col :span="24">
<el-form-item label="审核备注" prop="auditRemarks">
<el-input type="textarea" v-model="dataForm.auditRemarks" placeholder="审核备注" :rows="2" :disabled="type==1?false:true"></el-input>
<el-input type="textarea" v-model="dataForm.auditRemarks" placeholder="审核备注" :rows="2" :disabled="!isEdit"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<template #footer v-if="type==1">
<template #footer v-if="isEdit">
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit(20)" v-auth="'recruit_recruitstudentsignup_add'" v-if="canSubmit&&!dataForm.id">保存并送审</el-button>
<el-button type="primary" @click="dataFormSubmit('20')" v-auth="'recruit_recruitstudentsignup_add'" v-if="canSubmit&&!dataForm.id">保存并送审</el-button>
<el-button type="primary" @click="dataFormSubmit" v-auth="'signup_info_exam'" v-if="canSubmit&&dataForm.id">保存</el-button>
<el-button type="primary" @click="dataFormSubmit('20')" v-auth="'signup_info_exam'" v-if="canSubmit&&dataForm.id">确认录取</el-button>
@@ -655,16 +655,15 @@
</template>
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ref, reactive, nextTick, watch, computed } from 'vue'
import { ElNotification } from 'element-plus'
import { Picture } from '@element-plus/icons-vue'
import { useMessageBox } from '/@/hooks/message'
import { getObj, putObj } from '/@/api/recruit/recruitstudentsignup'
import { getObj, putObj, addObj } from '/@/api/recruit/recruitstudentsignup'
import { list as listByGroupId } from '/@/api/recruit/recruitstudentschool'
import { getDeptList } from "/@/api/basic/basicclass"
import { getList } from "/@/api/recruit/recruitstudentplangroup"
import { listByEdu } from "/@/api/recruit/recruitstudentplan"
import { getDicts, getDictsByTypes } from "/@/api/admin/dict"
import { getDictsByTypes } from "/@/api/admin/dict"
import { useDict } from '/@/hooks/dict'
import { areaList, areaSonList } from "/@/api/recruit/recruitstudentschool"
import { list as scoreList } from "/@/api/recruit/recruitstudentplancorrectscoreconfig"
@@ -692,20 +691,24 @@ const eduList = ref<any[]>([])
const imgList = ref<string[]>([])
const type = ref<number | null>(null)
const isShow = ref(false)
const residenceTypeList = [{ label: "农村", value: "1" }, { label: "城市", value: "2" }]
const nutritionList = [{ label: "优", value: "1" }, { label: "良", value: "2" }, { label: "一般", value: "3" }, { label: "差", value: "4" }]
// 计算属性:判断是否为编辑模式
const isEdit = computed(() => {
console.log(type.value)
return type.value === 1
})
// 户口性质
const residenceTypeList = ref<any[]>([])
const schoolCodeList = ref<any[]>([])
const contactNameList = ref<any[]>([])
const planList = ref<any[]>([])
const planMajorList = ref<any[]>([])
const areaListData = ref<any[]>([])
const areaPList = ref<any[]>([])
const areaCList = ref<any[]>([])
const areaAList = ref<any[]>([])
const areaHPList = ref<any[]>([])
const areaHCList = ref<any[]>([])
const areaHAList = ref<any[]>([])
const deptList = ref<any[]>([])
const areaProvinceList = ref<any[]>([])
const areaCityList = ref<any[]>([])
const areaAreaList = ref<any[]>([])
const areaHomeProvinceList = ref<any[]>([])
const areaHomeCityList = ref<any[]>([])
const areaHomeAreaList = ref<any[]>([])
const dialogImageUrl = ref("")
const dialogUploadVisible = ref(false)
const sevenMajorList = ref<any[]>([])
@@ -716,7 +719,7 @@ const threeMajorList = ref<any[]>([])
const twoMajorList = ref<any[]>([])
const agencyFeeList = ref<any[]>([])
const tuitionFeeList = ref<any[]>([])
const schoolFromList = [{ label: "本省外市", value: "2" }, { label: "外省外市", value: "3" }]
const schoolFromList = ref<any[]>([])
const dataForm = reactive({
id: "",
@@ -908,23 +911,37 @@ const init = (id: string | null, typeParam: number) => {
isShow.value = true
nextTick(() => {
dataFormRef.value?.resetFields()
getDicts('finance_student_source').then((res: any) => {
eduList.value = res.data || []
})
if (dataForm.id) {
areaPList.value = []
areaCList.value = []
areaAList.value = []
areaHPList.value = []
areaHCList.value = []
areaHAList.value = []
// 批量获取数据字典(并行获取,提高性能)
getDictsByTypes(['finance_student_source', 'agency_fee', 'tuition_fee']).then((res: any) => {
eduList.value = res.data.finance_student_source || []
agencyFeeList.value = res.data.agency_fee || []
tuitionFeeList.value = res.data.tuition_fee || []
// 获取表单数据
getObj(dataForm.id).then((response: any) => {
// 初始化地区数据
areaProvinceList.value = []
areaCityList.value = []
areaAreaList.value = []
// 家庭地址数据
areaHomeProvinceList.value = []
areaHomeCityList.value = []
areaHomeAreaList.value = []
// 批量获取数据字典(新增和编辑都需要) 文化程度 学费 代办费 户口性质 学校归属地
getDictsByTypes(['finance_student_source', 'agency_fee', 'tuition_fee','house_hold_properties','recruit_school_form']).then((res: any) => {
eduList.value = res.data.finance_student_source || []
agencyFeeList.value = res.data.agency_fee || []
tuitionFeeList.value = res.data.tuition_fee || []
residenceTypeList.value = res.data.house_hold_properties || []
schoolFromList.value = res.data.recruit_school_form || []
// 加载地区数据(新增和编辑都需要)
areaList({ type: 0 }).then((data: any) => {
const areas = data.data
// 加载省级数据
areas.forEach((e: any) => {
if (e.parentId == '1') {
areaProvinceList.value.push(e)
areaHomeProvinceList.value.push(e)
}
})
})
if (dataForm.id) {
// 编辑模式:获取表单数据
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
dataForm.scorePhotoList = []
dataForm.graPicList = []
@@ -974,7 +991,8 @@ const init = (id: string | null, typeParam: number) => {
listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((e: any) => {
planMajorList.value = e.data
if (1 != Number(dataForm.degreeOfEducation)) {
gzAuditChange()
// 如果学历不是初中生,则根据折算分匹配录取专业
getGzAuditChange()
}
// 根据年制分组
planMajorList.value.forEach((item: any) => {
@@ -997,64 +1015,29 @@ const init = (id: string | null, typeParam: number) => {
scoreList({ groupId: dataForm.groupId }).then((data: any) => {
schoolCodeList.value = data.data
})
let areas: any[] = []
// 获取户口所在 省市区
areaList({ type: 0 }).then((data: any) => {
areas = data.data
// 省
let pid = ""
areas.forEach((e: any) => {
if (e.parentId == '1') {
areaPList.value.push(e)
if (e.code == dataForm.residenceProvince) {
pid = e.id
}
// 根据已有数据加载市区数据
if (dataForm.residenceProvince) {
areaSonList({ code: dataForm.residenceProvince }).then((data: any) => {
areaCityList.value = data.data
if (dataForm.residenceCity) {
areaSonList({ code: dataForm.residenceCity }).then((data: any) => {
areaAreaList.value = data.data
})
}
})
// 市
let cid = ""
areas.forEach((e: any) => {
if (e.parentId == pid) {
areaCList.value.push(e)
if (e.code == dataForm.residenceCity) {
cid = e.id
}
}
if (dataForm.homeAddressProvince) {
areaSonList({ code: dataForm.homeAddressProvince }).then((data: any) => {
areaHomeCityList.value = data.data
if (dataForm.homeAddressCity) {
areaSonList({ code: dataForm.homeAddressCity }).then((data: any) => {
areaHomeAreaList.value = data.data
})
}
})
// 区
areas.forEach((e: any) => {
if (e.parentId == cid) {
areaAList.value.push(e)
}
})
// 省
let hpid = ""
areas.forEach((e: any) => {
if (e.parentId == '1') {
areaHPList.value.push(e)
if (e.code == dataForm.homeAddressProvince) {
hpid = e.id
}
}
})
// 市
let hcid = ""
areas.forEach((e: any) => {
if (e.parentId == hpid) {
areaHCList.value.push(e)
if (e.code == dataForm.homeAddressCity) {
hcid = e.id
}
}
})
// 区
areas.forEach((e: any) => {
if (e.parentId == hcid) {
areaHAList.value.push(e)
}
})
})
}
if ("1" == String(dataForm.degreeOfEducation)) {
title.value = "C" + title.value
} else if ("2" == String(dataForm.degreeOfEducation)) {
@@ -1071,8 +1054,11 @@ const init = (id: string | null, typeParam: number) => {
title.value = "已录取 " + title.value
}
})
})
}
} else {
// 新增模式:设置默认标题
title.value = "新增报名信息"
}
})
})
}
@@ -1092,7 +1078,7 @@ const changeEducation = () => {
dataForm.feeTuition = 0
dataForm.feeAgency = 0
// 重新根据学历 获取学费代办费
// 重新根据学历 获取学费代办费
agencyFeeList.value.forEach((e: any) => {
if (dataForm.degreeOfEducation == e.label) {
dataForm.feeAgency = e.value
@@ -1111,10 +1097,11 @@ 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)) {
gzAuditChange()
getGzAuditChange()
}
// 根据年制分组
planMajorList.value.forEach((item: any) => {
@@ -1146,10 +1133,7 @@ const initData = () => {
queryAllTeacher().then((res: any) => {
contactNameList.value = res.data
})
// 查询二级学院信息
getDeptList().then((data: any) => {
deptList.value = data.data
})
// 获取招生计划列表
getList().then((data: any) => {
planList.value = data.data
})
@@ -1181,15 +1165,15 @@ const changeSchoolCode = () => {
}
dataForm.correctedScore = 0
jsZSF()
calculateCorrectedScore()
}
const changePlaceScore = () => {
jsZSF()
calculateCorrectedScore()
}
const gzAuditChange = () => {
if (type.value != 0 && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) {
const getGzAuditChange = () => {
if (isEdit.value && (dataForm.confirmedMajor == undefined || dataForm.confirmedMajor == "")) {
// 根据折算分匹配录取专业
planMajorList.value.forEach((e: any) => {
if (e.majorCode == dataForm.wishMajorOne && (parseFloat(e.xyNum) > 0)) {
@@ -1214,7 +1198,8 @@ const gzAuditChange = () => {
}
}
const jsZSF = () => {
// 计算成绩折算分
const calculateCorrectedScore = () => {
if (dataForm.score != undefined && dataForm.fullScore != undefined && dataForm.correctedScore != undefined && !isNaN(Number(dataForm.correctedScore))) {
dataForm.confirmedMajor = ""
let fjf = 20
@@ -1246,52 +1231,57 @@ const jsZSF = () => {
})
}
if (dataForm.confirmedMajor) {
changeM(dataForm.confirmedMajor)
changeConfirmedMajor(dataForm.confirmedMajor)
}
}
}
const changeR = (changeType: number) => {
let code = ""
areaAList.value = []
// 清空区数据
areaAreaList.value = []
dataForm.residenceArea = ""
if (changeType == 1) {
// 选择省份时,清空市和区数据
code = dataForm.residenceProvince
areaCList.value = []
areaCityList.value = []
dataForm.residenceCity = ""
} else {
// 选择市时
code = dataForm.residenceCity
}
// 获取市或区数据
areaSonList({ code: code }).then((data: any) => {
if (changeType == 1) {
areaCList.value = data.data
areaCityList.value = data.data
} else {
areaAList.value = data.data
areaAreaList.value = data.data
}
})
}
const changeH = (changeType: number) => {
let code = ""
areaHAList.value = []
areaHomeAreaList.value = []
dataForm.homeAddressArea = ""
if (changeType == 1) {
code = dataForm.homeAddressProvince
areaHCList.value = []
areaHomeCityList.value = []
dataForm.homeAddressCity = ""
} else {
code = dataForm.homeAddressCity
}
areaSonList({ code: code }).then((data: any) => {
if (changeType == 1) {
areaHCList.value = data.data
areaHomeCityList.value = data.data
} else {
areaHAList.value = data.data
areaHomeAreaList.value = data.data
}
})
}
const changeM = (id: string) => {
// 改变录取专业
const changeConfirmedMajor = (id: string) => {
if (id) {
let flag = false
dataForm.confirmedMajor = id
@@ -1316,16 +1306,23 @@ const changeM = (id: string) => {
const dataFormSubmit = (state: string) => {
dataForm.auditStatus = state
let submitTitle = "确认通过该学生的报名申请么?"
if(state){
if (state == "-20") {
submitTitle = "确认驳回该学生的报名申请么?"
} else {
if (!dataForm.confirmedMajor) {
ElNotification.error({
title: '错误',
message: '请选择录取专业'
})
return
// 新增模式
if (!dataForm.id) {
submitTitle = "确认保存并提交该学生的报名信息么?"
} else {
// 编辑模式
if(state){
if (state == "-20") {
submitTitle = "确认驳回该学生的报名申请么?"
} else {
if (!dataForm.confirmedMajor) {
ElNotification.error({
title: '错误',
message: '请选择录取专业'
})
return
}
}
}
}
@@ -1359,11 +1356,12 @@ const dataFormSubmit = (state: string) => {
return
}
messageBox.confirm(submitTitle, '提示').then(() => {
messageBox.confirm(submitTitle).then(() => {
dataFormRef.value?.validate((valid: boolean) => {
if (valid) {
canSubmit.value = false
if (dataForm.id) {
// 编辑模式
putObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
@@ -1380,7 +1378,22 @@ const dataFormSubmit = (state: string) => {
canSubmit.value = true
})
} else {
canSubmit.value = true
// 新增模式
addObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '新增成功'
})
visible.value = false
emit('refreshDataList')
}).catch((e: any) => {
ElNotification.error({
title: '错误',
message: e || '新增失败'
})
}).finally(() => {
canSubmit.value = true
})
}
}
})
@@ -1389,6 +1402,16 @@ const dataFormSubmit = (state: string) => {
})
}
// 监听招生计划变化(新增模式下需要加载分数线数据)
watch(() => dataForm.groupId, (newVal) => {
if (newVal && !dataForm.id) {
// 新增模式下,加载招生计划对应的分数线数据
scoreList({ groupId: newVal }).then((data: any) => {
schoolCodeList.value = data.data
})
}
})
// 暴露方法给父组件
defineExpose({
init