|
@@ -6,6 +6,12 @@
|
|
|
{{ status }}
|
|
|
</template>
|
|
|
<template #options="{item}">
|
|
|
+ <template v-if="item.model === 'subid'">
|
|
|
+ <el-option v-for="(i, index) in subjectList" :key="index" :label="i.name" :value="i._id"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model === 'school_code'">
|
|
|
+ <el-option v-for="(i, index) in schoolList" :key="index" :label="i.name" :value="i.code"></el-option>
|
|
|
+ </template>
|
|
|
<template v-if="item.model === 'tltype'">
|
|
|
<el-option label="ppt" value="0"></el-option>
|
|
|
<el-option label="视频" value="1"></el-option>
|
|
@@ -32,10 +38,12 @@ import detailFrame from '@frame/layout/admin/detail-frame';
|
|
|
import dataForm from '@frame/components/form';
|
|
|
import upload from '@frame/components/upload';
|
|
|
import { createNamespacedHelpers } from 'vuex';
|
|
|
-const { mapActions } = createNamespacedHelpers('teacher');
|
|
|
+const { mapActions: teacher } = createNamespacedHelpers('teacher');
|
|
|
+const { mapActions: subject } = createNamespacedHelpers('subject');
|
|
|
+const { mapActions: school } = createNamespacedHelpers('school');
|
|
|
|
|
|
export default {
|
|
|
- metaInfo: { title: '题库详情页' },
|
|
|
+ metaInfo: { title: '教师详情' },
|
|
|
name: 'detail',
|
|
|
props: {},
|
|
|
components: {
|
|
@@ -43,21 +51,43 @@ export default {
|
|
|
dataForm,
|
|
|
},
|
|
|
data: () => ({
|
|
|
- info: { status: '1' },
|
|
|
+ // info: { status: '1', is_etiquette_teacher: '0' },
|
|
|
+ info: {
|
|
|
+ status: '1',
|
|
|
+ is_etiquette_teacher: '0',
|
|
|
+ name: '测试教师',
|
|
|
+ gender: '男',
|
|
|
+ phone: '18946597931',
|
|
|
+ id_number: '222222222222222222',
|
|
|
+ profession_number: '1111111111111212',
|
|
|
+ school_code: '10183',
|
|
|
+ email: '2938260457@qq.com',
|
|
|
+ age: '29',
|
|
|
+ birthday: '1991-02-04',
|
|
|
+ entry_time: '2015-02-04',
|
|
|
+ job: '教师',
|
|
|
+ major: '化学',
|
|
|
+ subid: '5e4369a4275c2f5514ec2593',
|
|
|
+ school_name: '吉林大学',
|
|
|
+ },
|
|
|
fields: [
|
|
|
{ label: '教师姓名', required: true, model: 'name' },
|
|
|
- { label: '状态', required: true, model: 'status', custom: true },
|
|
|
+ // { label: '状态', required: true, model: 'status', custom: true },
|
|
|
{ label: '性别', model: 'gender', type: `radio` },
|
|
|
- { label: '手机号', required: true, model: 'phone' },
|
|
|
- { label: '身份证号', required: true, model: 'id_number' },
|
|
|
+ { label: '手机号', required: true, model: 'phone', options: { maxLength: 11, minLength: 11 } },
|
|
|
+ { label: '身份证号', required: true, model: 'id_number', options: { maxLength: 18, minLength: 18 } },
|
|
|
{ label: '教师资格证号', required: true, model: 'profession_number' },
|
|
|
- { label: '学校名称', required: true, model: 'school_name' },
|
|
|
+ // { label: '教师资格证', required: true, model: 'profession_number_file' },
|
|
|
+ { label: '学校', required: true, model: 'school_code', type: 'select' },
|
|
|
{ label: '邮箱', required: true, model: 'email' },
|
|
|
{ label: '年龄', required: true, model: 'age' },
|
|
|
- { label: '出生日期', required: true, model: 'birthday' },
|
|
|
+ { label: '出生日期', required: true, model: 'birthday', type: 'date' },
|
|
|
+ { label: '入职时间', required: true, model: 'entry_time', type: 'date' },
|
|
|
{ label: '职务', required: true, model: 'job' },
|
|
|
{ label: '专业', required: true, model: 'major' },
|
|
|
+ { label: '科目', required: true, model: 'subid', type: 'select' },
|
|
|
{ label: '是/否是礼仪老师', model: 'is_etiquette_teacher', type: `radio` },
|
|
|
+
|
|
|
// { label: '资料评分', required: true, model: 'zlgrade' },
|
|
|
// { label: '面试评分', required: true, model: 'msgrade' },
|
|
|
// { label: '学生评分', required: true, model: 'student' },
|
|
@@ -68,36 +98,43 @@ export default {
|
|
|
],
|
|
|
rules: {
|
|
|
name: [{ required: true, message: '请输入教师姓名' }],
|
|
|
- // state: [{ required: true, message: '请选择状态' }],
|
|
|
- sex: [{ required: true, message: '请选择性别' }],
|
|
|
- birthday: [{ required: true, message: '请输入出生日期' }],
|
|
|
- zhiwu: [{ required: true, message: '请输入职务' }],
|
|
|
- zhuanye: [{ required: true, message: '请输入专业' }],
|
|
|
- // zlgrade: [{ required: true, message: '请输入资料评分' }],
|
|
|
- // msgrade: [{ required: true, message: '请输入面试评分' }],
|
|
|
- // student: [{ required: true, message: '请输入学生评分' }],
|
|
|
- // url: [{ required: true, message: '请输入视频地址' }],
|
|
|
- // zlname: [{ required: true, message: '请输入资料名称' }],
|
|
|
- openid: [{ required: true, message: '请输入openid' }],
|
|
|
- password: [{ required: true, message: '请输入职业资格证文件' }],
|
|
|
+ gender: [{ required: true, message: '请选择性别' }],
|
|
|
+ phone: [
|
|
|
+ { required: true, message: '请输入手机号' },
|
|
|
+ { min: 11, max: 11, message: '请输入11位手机号 ', trigger: 'blur' },
|
|
|
+ ],
|
|
|
id_number: [
|
|
|
{ required: true, message: '请输入身份证号' },
|
|
|
{ min: 18, max: 18, message: '请输入18位身份证号 ', trigger: 'blur' },
|
|
|
],
|
|
|
- school_name: [{ required: true, message: '请输入学校名称' }],
|
|
|
- email: [{ required: true, message: '请输入教师邮箱' }],
|
|
|
+ profession_number: [{ required: true, message: '请输入教师资格证号' }],
|
|
|
+ school_code: [{ required: true, message: '请选择学校' }],
|
|
|
+ email: [{ required: true, message: '请输入邮箱' }],
|
|
|
age: [{ required: true, message: '请输入年龄' }],
|
|
|
- phone: [
|
|
|
- { required: true, message: '请输入电话' },
|
|
|
- { min: 11, max: 11, message: '请输入11位电话号码', trigger: 'blur' },
|
|
|
- ],
|
|
|
- profession_number_file: [
|
|
|
- { required: true, message: '请输入教师资格证号' },
|
|
|
- { min: 17, max: 17, message: '请输入17位教师资格证号', trigger: 'blur' },
|
|
|
- ],
|
|
|
+ birthday: [{ required: true, message: '请选择出生日期' }],
|
|
|
+ entry_time: [{ required: true, message: '请选择入职时间' }],
|
|
|
+ job: [{ required: true, message: '请输入职务' }],
|
|
|
+ major: [{ required: true, message: '请输入专业' }],
|
|
|
+ subid: [{ required: true, message: '请选择科目' }],
|
|
|
+ // zlgrade: [{ required: true, message: '请输入资料评分' }],
|
|
|
+ // msgrade: [{ required: true, message: '请输入面试评分' }],
|
|
|
+ // student: [{ required: true, message: '请输入学生评分' }],
|
|
|
+ // url: [{ required: true, message: '请输入视频地址' }],
|
|
|
+ // zlname: [{ required: true, message: '请输入资料名称' }],
|
|
|
+ // openid: [{ required: true, message: '请输入openid' }],
|
|
|
+ // password: [{ required: true, message: '请输入职业资格证文件' }],
|
|
|
+ // school_name: [{ required: true, message: '请输入学校名称' }],
|
|
|
+ // profession_number_file: [
|
|
|
+ // { required: true, message: '请输入教师资格证号' },
|
|
|
+ // { min: 17, max: 17, message: '请输入17位教师资格证号', trigger: 'blur' },
|
|
|
+ // ],
|
|
|
},
|
|
|
+ subjectList: [],
|
|
|
+ schoolList: [],
|
|
|
}),
|
|
|
- created() {},
|
|
|
+ created() {
|
|
|
+ this.getOtherList();
|
|
|
+ },
|
|
|
computed: {
|
|
|
status() {
|
|
|
return this.info.status == '0' ? '面试' : this.info.status == '1' ? '注册' : '其他';
|
|
@@ -131,7 +168,9 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
- ...mapActions(['fetch', 'create', 'update']),
|
|
|
+ ...teacher(['fetch', 'create', 'update']),
|
|
|
+ ...subject({ getSubjectList: 'query' }),
|
|
|
+ ...school({ getSchoolList: 'query' }),
|
|
|
async search() {
|
|
|
const res = await this.fetch(this.id);
|
|
|
if (this.$checkRes(res)) this.$set(this, `info`, res.data);
|
|
@@ -140,20 +179,25 @@ export default {
|
|
|
async handleSave({ isNew, data }) {
|
|
|
let res;
|
|
|
let msg;
|
|
|
+ data.school_name = this.schoolList.find(f => f.code === data.school_code).name;
|
|
|
if (isNew) {
|
|
|
res = this.create(data);
|
|
|
+ data.password = '123456';
|
|
|
msg = `${this.keyWord}添加成功`;
|
|
|
} else {
|
|
|
res = this.update(data);
|
|
|
msg = `${this.keyWord}修改成功`;
|
|
|
}
|
|
|
- if (this.$checkRes(res, msg)) this.$router.push({ path: '/teacher/index' });
|
|
|
+ // if (this.$checkRes(res, msg)) this.$router.push({ path: '/teacher/index' });
|
|
|
},
|
|
|
|
|
|
- // async handleSave({ isNew, data }) {
|
|
|
- // console.log(isNew);
|
|
|
- // console.log(data);
|
|
|
- // },
|
|
|
+ async getOtherList() {
|
|
|
+ let res;
|
|
|
+ res = await this.getSubjectList();
|
|
|
+ if (this.$checkRes(res)) this.$set(this, `subjectList`, res.data);
|
|
|
+ res = await this.getSchoolList();
|
|
|
+ if (this.$checkRes(res)) this.$set(this, `schoolList`, res.data);
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|