This commit is contained in:
zhoutianchi
2026-01-14 10:52:06 +08:00
parent 8c1f4ec05e
commit d0c8ea0223
140 changed files with 16969 additions and 11469 deletions

View File

@@ -0,0 +1,395 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px">
<el-form-item label="招生计划名称" prop="groupId">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%;" :disabled="!dataForm.id ? false : true">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input v-model="dataForm.phone" placeholder="电话"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="dataForm.gender" style="width: 100%" >
<el-option
v-for="item in sexyList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="准考证" prop="admission">
<el-input v-model="dataForm.admission" placeholder="准考证"></el-input>
</el-form-item>
<el-form-item label="中考成绩" prop="achievement">
<el-input-number v-model="dataForm.achievement" :min=0 :max=700 placeholder="中考成绩" style="width: 100%"></el-input-number>
</el-form-item>
<!-- <el-form-item label="联系人" prop="contactsNo">-->
<!-- <el-select v-model="dataForm.contactsNo" filterable clearable placeholder="" size="small" style="width: 100%" >-->
<!-- <el-option-->
<!-- v-for="item in contactNameList"-->
<!-- :key="item.teacherNo"-->
<!-- :label="item.realName+'-'+item.deptCode"-->
<!-- :value="item.teacherNo">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="对接人" prop="djUser" v-if="permissions.recruit_recruitprestudent_dj_sure">
<el-select v-model="dataForm.djUser" filterable clearable placeholder="" size="small" style="width: 100%" >
<el-option
v-for="item in contactNameList"
:key="item.teacherNo"
:label="item.realName+'-'+item.deptCode"
:value="item.teacherNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学校" prop="schoolId">
<el-select v-model="dataForm.schoolId" filterable placeholder="请选择学校" size="small" style="width: 100%;" >
<el-option
v-for="item in schoolList"
:key="item.id"
:label="item.schoolName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业1" prop="planMajorOne">
<el-select v-model="dataForm.planMajorOne" filterable placeholder="请选择拟报专业1" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业2" prop="planMajorTwo">
<el-select v-model="dataForm.planMajorTwo" filterable clearable placeholder="请选择拟报专业2" size="small" style="width: 100%;"
>
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业3" prop="planMajorThree">
<el-select v-model="dataForm.planMajorThree" filterable clearable placeholder="请选择拟报专业3" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业4" prop="planMajorFour">
<el-select v-model="dataForm.planMajorFour" filterable clearable placeholder="请选择拟报专业4" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业5" prop="planMajorFive">
<el-select v-model="dataForm.planMajorFive" filterable clearable placeholder="请选择拟报专业5" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业6" prop="planMajorSix">
<el-select v-model="dataForm.planMajorSix" filterable clearable placeholder="请选择拟报专业6" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业7" prop="planMajorSeven">
<el-select v-model="dataForm.planMajorSeven" filterable clearable placeholder="请选择拟报专业5" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业8" prop="planMajorEight">
<el-select v-model="dataForm.planMajorEight" filterable clearable placeholder="请选择拟报专业8" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业9" prop="planMajorNine">
<el-select v-model="dataForm.planMajorNine" filterable clearable placeholder="请选择拟报专业9" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业10" prop="planMajorTen">
<el-select v-model="dataForm.planMajorTen" filterable clearable placeholder="请选择拟报专业10" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业11" prop="planMajorEleven">
<el-select v-model="dataForm.planMajorEleven" filterable clearable placeholder="请选择拟报专业11" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业12" prop="planMajorTwelve">
<el-select v-model="dataForm.planMajorTwelve" filterable clearable placeholder="请选择拟报专业12" size="small" style="width: 100%;" >
<el-option
v-for="item in planMajorList"
:key="item.id"
:label="item.zymc"
:value="item.id"
:disabled="isDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button>
</span>
</el-dialog>
</template>
<script>
import {getObj,addObjStu,putObj} from '@/api/recruit/recruitprestudent'
import {queryAllTeacherByRecruit} from "@/api/professional/teacherbase";
import {mapGetters} from "vuex";
import {list} from "@/api/recruit/recruitstudentplangroup";
export default {
props:["planList","planMajorList","schoolList"],
data () {
return {
visible: false,
canSubmit: false,
contactNameList:[],
sexyList: [
{
label: '男',
value: '1'
},
{
label: '女',
value: '2'
}
],
dataForm: {
groupId:"",
name:"",
gender:"",
phone:"",
idCard:"",
schoolId:"",
planMajorOne:"",
planMajorTwo:"",
planMajorThree:"",
planMajorFour:"",
planMajorFive:"",
planMajorSix:"",
planMajorSeven:"",
planMajorEight:"",
planMajorNine:"",
planMajorTen:"",
planMajorEleven:"",
planMajorTwelve:"",
admission:"",
achievement:"",
contactsNo:"",
djUser:""
},
dataRule: {
planMajorOne: [
{ required: true, message: '拟报专业1不能为空', trigger: 'blur' }
],
groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }
],
name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' },
{ min: 1,max:20, message: "姓名长度最多20位", trigger: "blur" }
],
phone: [
{ required: true, message: '电话不能为空', trigger: 'blur' },
{ min: 11,max:11, message: "电话号码长度为11位", trigger: "blur" }
],
gender: [
{ required: true, message: '性别不能为空', trigger: 'blur' }
],
schoolId: [
{ required: true, message: '学校不能为空', trigger: 'blur' }
],
// admission: [
// { required: true, message: '准考证不能为空', trigger: 'blur' }
// ],
// achievement: [
// { required: true, message: '中考成绩不能为空', trigger: 'blur' }
// ],
}
}
},
created () {
},
computed: {
...mapGetters(['permissions'])
},
methods: {
init (id) {
let _this = this;
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
queryAllTeacherByRecruit().then(res =>{
this.contactNameList = res.data.data
});
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
_this.dataForm = response.data.data
_this.dataForm.year = this.dataForm.year+"";
})
}else {
list().then(data => {
_this.planList = data.data.data
_this.dataForm.groupId = _this.planList[0].id;
})
}
})
},
isDisable(id){
if(id==this.dataForm.planMajorOne
||id==this.dataForm.planMajorTwo
||id==this.dataForm.planMajorThree
||id==this.dataForm.planMajorFour
||id==this.dataForm.planMajorFive
||id==this.dataForm.planMajorSix
||id==this.dataForm.planMajorSeven
||id==this.dataForm.planMajorEight
||id==this.dataForm.planMajorNine
||id==this.dataForm.planMajorTen
||id==this.dataForm.planMajorEleven
||id==this.dataForm.planMajorTwelve
){
return true
}else {
return false
}
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.canSubmit = false;
if (this.dataForm.id) {
putObj(this.dataForm).then(data => {
this.$notify.success('修改成功')
this.visible = false
this.$emit('refreshDataList')
}).catch(() => {
this.canSubmit = true;
});
} else {
this.dataForm.djUser=null;
this.dataForm.djTime=null;
this.dataForm.djName=null;
this.dataForm.djDept=null;
this.dataForm.isDj="0";
addObjStu(this.dataForm).then(data => {
this.$notify.success('添加成功')
this.visible = false
this.$emit('refreshDataList')
}).catch(() => {
this.canSubmit = true;
});
}
}
})
}
}
}
</script>