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,280 @@
<template>
<div>
<el-dialog :visible.sync="newStuCheckInDialog" width="40%">
<el-form :model="form" :rules="rules" ref="form" label-width="120px"
class="demo-ruleForm">
<el-form-item label="姓名" prop="realName">
<el-input v-model="form.name" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="form.gender" placeholder="请选择性别" style=" width: 80%">
<el-option
v-for="item in genderData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idNumber" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item label="报到状态" prop="checkInStatus">
<el-select v-model="form.checkInStatus" filterable placeholder="请选择报到状态" style=" width: 80% ">
<el-option
v-for="item in checkInStatusData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否住宿" prop="isRoom" v-if="isRoomTab">
<el-select v-model="form.isRoom" filterable placeholder="是否住宿" style=" width: 80% ">
<el-option
v-for="item in yesOrNoData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="宿舍号" prop="roomNo" v-if="isRoomTab && form.isRoom=='1'">
<!-- <el-select v-model="form.roomNo" filterable placeholder="请选择房间号" :remote-method="remoteMethod" style=" width: 80% ">-->
<el-select
v-model="form.roomNo"
filterable
remote
placeholder="请选择宿舍号"
:remote-method="remoteMethod"
@change="change"
:loading="loading"
style=" width: 80% "
>
<el-option
v-for="item in roomNoList"
:key="item.id"
:label="item.roomNo"
:value="item.roomNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="床号" prop="bedNo" v-if="isRoomTab && form.isRoom=='1'">
<el-select v-model="form.bedNo" filterable placeholder="请选择床号" style=" width: 80% ">
<el-option
v-for="item in bedNoData"
:key="item.bedNo"
:label="item.bedNo"
:value="item.bedNo"
:disabled="isRoomDisable(item.notBedNo)">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" :rows="2" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="checkIn('form')" v-loading="submitLoading">确定</el-button>
<el-button @click="newStuCheckInDialog = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {getDataByRoomNo} from "/@/api/stuwork/dormroom";
import {fearchRoomStuNum} from "/@/api/stuwork/dormroomstudent";
import {getDictByType} from "/@/api/contract/contract";
import {putObj} from '@/api/recruit/newstucheckin'
export default {
name: "stu-check-in",
data() {
return {
page:{},
newStuCheckInDialog:false,
bedNoData:[],
roomNoList:[],
checkInStatusData:[],
loading:false,
isRoomTab:false,
yesOrNoData:[{label:'否', value:'0'},{label:'是', value:'1'}],
genderData:[{label:'女', value:'2'},{label:'男', value:'1'}],
submitLoading:false,
form:{
name:"",
checkInStatus:"",
gender:"",
idNumber:"",
isRoom:"",
roomNo:"",
bedNo:"",
remarks:"",
residenceDetail:"",
parentName:"",
parentTelOne:"",
parentTelTwo:""
},
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: [ "blur","change"] }
],
gender: [
{ required: true, message: '请输入性别', trigger: [ "blur","change"] }
],
idNumber: [
{ required: true, message: '请输入身份证号', trigger: [ "blur","change"] }
],
checkInStatus: [
{ required: true, message: '请输入报到状态', trigger: [ "blur","change"] }
],
isRoom: [
{ required: true, message: '请选择是否住宿', trigger: [ "blur","change"] }
],
roomNo: [
{ required: true, message: '请选择宿舍号', trigger: [ "blur","change"] }
],
bedNo: [
{ required: true, message: '请选择床位号', trigger: [ "blur","change"] }
],
}
}
},
watch:{
'form.checkInStatus':{
handler(newVal){
if(newVal==='1'){
this.isRoomTab = true
}else {
this.isRoomTab = false
}
},
},
'form.roomNo':{
handler(newVal){
console.log(newVal)
if (newVal){
this.fearchRoomStuNums(newVal)
}
}
},
'form.isRoom':{
handler(newVal){
if (newVal === '0'){
this.form.roomNo = ''
this.form.bedNo = ''
}
}
}
},
methods:{
initForm(){
this.form.name = ""
this.form.checkInStatus = ""
this.form.gender = ""
this.form.idNumber = ""
this.form.isRoom = ""
this.form.roomNo = ""
this.form.bedNo = ""
this.form.remarks = ""
this.form.residenceDetail="";
this.form.parentName="";
this.form.parentTelOne="";
this.form.parentTelTwo="";
},
init(formData,page){
this.initForm();
this.page = page
this.submitLoading = false
this.newStuCheckInDialog = true
Object.assign(this.form,formData)
if(formData.roomNo){
this.remoteMethod(formData.roomNo);
this.fearchRoomStuNums(formData.bedNo);
}
getDictByType('check_in_status').then(data=>{
this.checkInStatusData = data.data.data
})
console.log("OKKK")
},
checkIn(form) {
let _that = this
_that.submitLoading = true;
_that.$refs[form].validate((valid) => {
if (valid) {
// console.log("form",this.form)
// _that.formLoading = true
putObj(this.form).then(data => {
this.$message({
showClose: true,
message: '报到成功',
type: 'success'
})
_that.$emit("reload",this.page);
_that.newStuCheckInDialog = false
_that.submitLoading = false
})
// _that.formLoading = false
}else {
return false
}
})
},
//实时检索宿舍号
remoteMethod(query) {
if (query != '' && query.length>=3) {
let data = {'roomNo':query}
this.loading = true
let _this = this
getDataByRoomNo(data).then(data=>{
_this.roomNoList = data.data.data;
console.log("this.roomNoList")
console.log(_this.roomNoList)
_this.loading = false
})
}
},
//查询此房间为几人间
fearchRoomStuNums(roomNo){
var data = {"roomNo":roomNo}
fearchRoomStuNum(data).then(data =>{
this.bedNoData = data.data.data;
})
},
isRoomDisable(notBedNo){
if(undefined != notBedNo && "" != notBedNo){
return true
}else {
return false
}
},
change(){
this.form.bedNo='';
this.$forceUpdate()
}
}
}
</script>
<style scoped>
</style>