教员管理,教研室管理

This commit is contained in:
2026-08-25 18:08:29 +08:00
parent 7fa8041bf7
commit 5c107426c1
3 changed files with 117 additions and 236 deletions
@@ -103,22 +103,9 @@
<el-form ref="addFormRef" :model="addForm" :rules="addRules" label-width="140px" class="add-form">
<el-divider content-position="left">教员基本信息</el-divider>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教员编号"><el-input v-model="addForm.teacher.jybh" placeholder="选填" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教员姓名" prop="teacher.jyxm"><el-input v-model="addForm.teacher.jyxm" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教研室代号" prop="teacher.jysdh"><el-input v-model="addForm.teacher.jysdh" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="序号" prop="teacher.xh"><el-input v-model="addForm.teacher.xh" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="性别" prop="teacher.xb">
<el-select v-model="addForm.teacher.xb" style="width:100%">
@@ -126,33 +113,55 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="序号" prop="teacher.xh"><el-input v-model="addForm.teacher.xh" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="teacher.sfzh"><el-input v-model="addForm.teacher.sfzh" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="专业技术职务等级" prop="teacher.zyjszwdj"><el-input v-model="addForm.teacher.zyjszwdj" placeholder="请输入" /></el-form-item>
<el-form-item label="专业技术职务等级" prop="teacher.zyjszwdj">
<el-select v-model="addForm.teacher.zyjszwdj" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in zyjszwdjOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="虚实类型" prop="teacher.xslx">
<el-select v-model="addForm.teacher.xslx" style="width:100%">
<el-option :value="1" label="实教" /><el-option :value="0" label="非实教" />
<el-radio-group v-model="addForm.teacher.xslx">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教员类别" prop="teacher.jylb">
<el-select v-model="addForm.teacher.jylb" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jylbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="在职类别" prop="teacher.zzlb">
<el-select v-model="addForm.teacher.zzlb" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in zzlbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教员类别" prop="teacher.jylb"><el-input v-model="addForm.teacher.jylb" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="在职类别" prop="teacher.zzlb"><el-input v-model="addForm.teacher.zzlb" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="导师类别" prop="teacher.dslb"><el-input v-model="addForm.teacher.dslb" placeholder="请输入" /></el-form-item>
<el-form-item label="导师类别" prop="teacher.dslb">
<el-select v-model="addForm.teacher.dslb" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in dslbOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学缘" prop="teacher.xy"><el-input v-model="addForm.teacher.xy" placeholder="请输入" /></el-form-item>
@@ -594,6 +603,7 @@ import {
getTeacherAttribute,
updateTeacherAttribute
} from '@/api/teachOffice/teacher'
import { getDicts } from '@/api/system/dict/data'
export default {
name: 'Teacher',
@@ -614,14 +624,14 @@ export default {
addForm: this.createEmptyAddForm(),
addRules: {
'teacher.jyxm': [{ required: true, message: '请输入教员姓名', trigger: 'blur' }],
'teacher.jysdh': [{ required: true, message: '请输入教研室代号', trigger: 'blur' }],
'teacher.xh': [{ required: true, message: '请输入序号', trigger: 'blur' }],
'teacher.zyjszwdj': [{ required: true, message: '请输入专业技术职务等级', trigger: 'blur' }],
'teacher.zyjszwdj': [{ required: true, message: '请选择专业技术职务等级', trigger: 'change' }],
'teacher.xslx': [{ required: true, message: '请选择虚实类型', trigger: 'change' }],
'teacher.jylb': [{ required: true, message: '请输入教员类别', trigger: 'blur' }],
'teacher.zzlb': [{ required: true, message: '请输入在职类别', trigger: 'blur' }],
'teacher.jylb': [{ required: true, message: '请选择教员类别', trigger: 'change' }],
'teacher.zzlb': [{ required: true, message: '请选择在职类别', trigger: 'change' }],
'teacher.ewyxkbs': [{ required: true, message: '请输入额外允许开班数', trigger: 'change' }],
'teacher.dslb': [{ required: true, message: '请输入导师类别', trigger: 'blur' }],
'teacher.dslb': [{ required: true, message: '请选择导师类别', trigger: 'change' }],
'teacher.xy': [{ required: true, message: '请输入学缘', trigger: 'blur' }],
'teacher.sfzh': [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
'teacher.xb': [{ required: true, message: '请选择性别', trigger: 'change' }],
@@ -659,11 +669,17 @@ export default {
attributeForm: {},
attributeLoading: false,
attributeSaving: false,
attributeJybh: ''
attributeJybh: '',
// 字典选项
zyjszwdjOptions: [],
jylbOptions: [],
zzlbOptions: [],
dslbOptions: []
}
},
mounted() {
this.fetchList()
this.loadDicts()
},
methods: {
/** 统一格式化后端 LocalDateTime(去除 T、截断到秒) */
@@ -696,6 +712,15 @@ export default {
},
/** 移除空值 */
loadDicts() {
getDicts('teacher_zyjszwdj').then(res => { this.zyjszwdjOptions = res.data || [] }).catch(() => {})
getDicts('teacher_jylb').then(res => { this.jylbOptions = res.data || [] }).catch(() => {})
getDicts('teacher_zzlb').then(res => { this.zzlbOptions = res.data || [] }).catch(() => {})
getDicts('teacher_dslb').then(res => { this.dslbOptions = res.data || [] }).catch(() => {})
},
cleanPayload(obj) {
const payload = {}
Object.keys(obj).forEach(key => {
@@ -1052,3 +1077,5 @@ export default {
}
}
</style>