guhongwei 4 years ago
parent
commit
d7db1637d3
2 changed files with 219 additions and 0 deletions
  1. 6 0
      src/router/index.js
  2. 213 0
      src/views/directorInfo/index.vue

+ 6 - 0
src/router/index.js

@@ -156,6 +156,12 @@ const routes = [
         meta: { title: '课程培训', sub: '管理' },
         component: () => import('@/views/trainVidoe/viewVideo.vue'),
       },
+      {
+        path: '/directorInfo/index',
+        name: 'directorInfo_index',
+        meta: { title: '班主任信息', sub: '管理' },
+        component: () => import('@/views/directorInfo/index.vue'),
+      },
     ],
   },
   {

+ 213 - 0
src/views/directorInfo/index.vue

@@ -0,0 +1,213 @@
+<template>
+  <div id="index">
+    <detail-frame :title="mainTitle">
+      <data-form :data="form" :fields="fields" :rules="rules" @save="handleSave">
+        <template #options="{item}">
+          <template v-if="item.model === 'department'">
+            <el-option v-for="(item, index) in deptList" :key="index" :label="item.name" :value="item.id"></el-option>
+          </template>
+          <template v-if="item.model === 'politics'">
+            <el-option v-for="(i, index) in politicsList" :key="index" :label="i.name" :value="i.name"></el-option>
+          </template>
+          <template v-if="item.model === 'education'">
+            <el-option v-for="(i, index) in educationList" :key="index" :label="i.name" :value="i.name"></el-option>
+          </template>
+          <template v-if="item.model === 'degree'">
+            <el-option v-for="(i, index) in degreeList" :key="index" :label="i.name" :value="i.name"></el-option>
+          </template>
+          <template v-if="item.model === 'nation'">
+            <el-option v-for="(i, index) in nationList" :key="index" :label="i.name" :value="i.name"></el-option>
+          </template>
+        </template>
+        <template #radios="{item}">
+          <template v-if="item.model === 'gender'">
+            <el-radio label="男">男</el-radio>
+            <el-radio label="女">女</el-radio>
+          </template>
+          <template v-if="item.model === 'islyteacher'">
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </template>
+        </template>
+        <template #custom="{item, form}">
+          <template v-if="item.model == 'eduexperience'">
+            <el-button type="primary" size="mini" @click="perDialog = true" style="margin:10px 0;">添加</el-button>
+            <el-table :data="form.eduexperience" style="width: 100%" border>
+              <el-table-column prop="date" label="时间" align="center"> </el-table-column>
+              <el-table-column prop="content" label="学校名称&培训内容" align="center" :show-overflow-tooltip="true"> </el-table-column>
+              <el-table-column prop="card" label="学历&培训证书" align="center" :show-overflow-tooltip="true"> </el-table-column>
+            </el-table>
+          </template>
+        </template>
+      </data-form>
+    </detail-frame>
+    <el-dialog title="教育培训经历" :visible.sync="perDialog" center>
+      <el-form :model="experienceForm" label-position="left" label-width="auto" :rules="perRules" ref="experienceForm">
+        <el-form-item label="培训时间">
+          <el-date-picker v-model="experienceForm.date" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"> </el-date-picker>
+        </el-form-item>
+        <el-form-item label="学校名称&培训内容">
+          <el-input type="textarea" :rows="2" placeholder="请输入学校名称&培训内容" v-model="experienceForm.content"> </el-input>
+        </el-form-item>
+        <el-form-item label="学历&培训证书">
+          <el-input type="textarea" :rows="2" placeholder="请输入学历&培训证书" v-model="experienceForm.card"> </el-input>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button @click="closeAttend()">取 消</el-button>
+        <el-button type="primary" @click="proAttend">确 定</el-button>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@frame/layout/admin/detail-frame';
+import dataForm from '@frame/components/form';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: director } = createNamespacedHelpers('director');
+const { mapActions: mapNation } = createNamespacedHelpers('nation');
+const { mapActions: mapDept } = createNamespacedHelpers('dept');
+export default {
+  metaInfo: { title: '教师信息管理' },
+  name: 'index',
+  props: {},
+  components: {
+    detailFrame,
+    dataForm,
+  },
+  data: function() {
+    return {
+      form: {
+        eduexperience: [],
+      },
+      fields: [
+        { label: '姓名', required: true, model: 'name' },
+        { label: '性别', model: 'gender', type: `radio` },
+        { label: '所属部门', required: false, model: 'department', type: 'select' },
+        { label: '手机号', required: true, model: 'phone', options: { maxLength: 11, minLength: 11 } },
+        { label: '民族', model: 'nation', type: `select` },
+        { label: '固定电话', required: false, model: 'mobile' },
+        { label: '身份证号', required: false, model: 'idnumber', options: { maxLength: 18, minLength: 18 } },
+        { label: '政治面貌', model: 'politics', type: `select` },
+        { label: '工作地点', required: false, model: 'jobaddress' },
+        { label: '职务', required: false, model: 'job' },
+        { label: '职称', required: false, model: 'protitle' },
+        { label: '最后学历', model: 'education', type: `select` },
+        { label: '最后学位', model: 'degree', type: `select` },
+        { label: 'QQ', required: false, model: 'qq' },
+        { label: '年龄', required: false, model: 'age' },
+        { label: '教育培训经历', required: false, model: 'eduexperience', custom: true },
+        { label: '是/否是礼仪老师', model: 'islyteacher', type: `radio` },
+      ],
+      rules: {},
+      politicsList: [
+        { code: '01', name: '中国共产党党员' },
+        { code: '02', name: '中国共产党预备党员' },
+        { code: '03', name: '中国共产主义青年团团员' },
+        { code: '04', name: '中国国民党革命委员会会员' },
+        { code: '05', name: '中国民主同盟盟员' },
+        { code: '06', name: '中国民主建国会会员' },
+        { code: '07', name: '中国民主促进会会员' },
+        { code: '08', name: '中国农工民主党党员' },
+        { code: '09', name: '中国致公党党员' },
+        { code: '10', name: '九三学社社员' },
+        { code: '11', name: '台湾民主自治同盟盟员' },
+        { code: '12', name: '无党派民主人士' },
+        { code: '13', name: '群众' },
+        { code: '14', name: '其他' },
+      ],
+      educationList: [
+        { code: '01', name: '博士生毕业' },
+        { code: '03', name: '博士生结业' },
+        { code: '09', name: '博士生肆业' },
+        { code: '11', name: '硕士生毕业' },
+        { code: '13', name: '硕士生结业' },
+        { code: '19', name: '硕士生肆业' },
+        { code: '21', name: '研班毕业' },
+        { code: '25', name: '双学位毕业' },
+        { code: '31', name: '本科生毕业' },
+        { code: '33', name: '本科生结业' },
+        { code: '39', name: '本科生肆业' },
+        { code: '41', name: '专科生毕业' },
+        { code: '43', name: '专科生结业' },
+        { code: '49', name: '专科生肆业' },
+        { code: '51', name: '中专生毕业' },
+        { code: '53', name: '中专生结业' },
+        { code: '59', name: '中专生肆业' },
+        { code: '61', name: '高职毕业' },
+        { code: '63', name: '高职结业' },
+      ],
+      degreeList: [{ name: '博士学位' }, { name: '硕士学位' }, { name: '学士学位' }],
+      nationList: [],
+      // 部门
+      deptList: [],
+      perDialog: false,
+      experienceForm: {},
+      perRules: {},
+    };
+  },
+  created() {
+    this.getOtherList();
+    this.search();
+  },
+  methods: {
+    ...director(['fetch', 'update']),
+    ...mapNation({ nation: 'query' }),
+    ...mapDept({ dept: 'query' }),
+    async search() {
+      let userid = this.user.userid;
+      let res = await this.fetch(userid);
+      if (res.errcode === 0) {
+        this.$set(this, `form`, res.data);
+      }
+    },
+    // 保存
+    async handleSave({ data }) {
+      let res = await this.update(data);
+      if (res.errcode === 0) {
+        this.$message({
+          message: '修改信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
+    },
+    async getOtherList() {
+      let res;
+      res = await this.dept();
+      if (this.$checkRes(res)) this.$set(this, `deptList`, res.data);
+      res = await this.nation();
+      if (this.$checkRes(res)) this.$set(this, `nationList`, res.data);
+    },
+    // 教育经历
+    proAttend() {
+      console.log(this.experienceForm);
+      this.form.eduexperience.push(this.experienceForm);
+      this.experienceForm = {};
+      this.perDialog = false;
+    },
+    // 取消
+    closeAttend() {
+      this.experienceForm = {};
+      this.perDialog = false;
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    mainTitle() {
+      let meta = this.$route.meta;
+      let main = meta.title || '';
+      let sub = meta.sub || '';
+      return `${main}${sub}`;
+    },
+    keyWord() {
+      let meta = this.$route.meta;
+      let main = meta.title || '';
+      return main;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>