guhongwei 4 年 前
コミット
9420f04615
2 ファイル変更37 行追加2 行削除
  1. 0 0
      src/views/teacher/addteacher.vue
  2. 37 2
      src/views/teacher/index.vue

+ 0 - 0
src/views/teacher/addteacher.vue


+ 37 - 2
src/views/teacher/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="index">
-    <list-frame title="教师列表页" @query="search" :total="total" :filter="filFields" :needAdd="false">
+    <list-frame title="教师列表页" @query="search" :total="total" :filter="filFields" :needAdd="true" @add="add()">
       <template #options="{item}">
         <template v-if="item.model == 'gender'">
           <el-option v-for="(item, index) in gender" :key="index" :value="item.label"></el-option>
@@ -24,12 +24,17 @@
       </el-row>
       <data-table :fields="fields" :data="list" :opera="opera" @share="share" @edit="toEdit" @delete="toDelete" @select="toSelect"></data-table>
     </list-frame>
+    <el-dialog :visible.sync="dialog" title="添加教师" @close="toClose" width="50%">
+      <data-form :data="form" :fields="tearcherForm" :rules="rules" @save="turnSave"> </data-form>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import _ from 'lodash';
 import listFrame from '@frame/layout/admin/list-frame';
 import dataTable from '@frame/components/data-table';
+import dataForm from '@frame/components/form';
 import { createNamespacedHelpers } from 'vuex';
 const { mapActions } = createNamespacedHelpers('teacher');
 export default {
@@ -38,6 +43,7 @@ export default {
   components: {
     listFrame,
     dataTable,
+    dataForm,
   },
   data: () => ({
     gender: [
@@ -129,13 +135,27 @@ export default {
       },
     ],
     total: 0,
+    // 添加教师
+    dialog: false,
+    form: {},
+    tearcherForm: [
+      { label: '教师姓名', required: true, model: 'name' },
+      { label: '手机号', required: true, model: 'phone', options: { maxLength: 11, minLength: 11 } },
+    ],
+    rules: {
+      name: [{ required: true, message: '请输入教师姓名' }],
+      phone: [
+        { required: true, message: '请输入手机号' },
+        { min: 11, max: 11, message: '请输入11位手机号 ', trigger: 'blur' },
+      ],
+    },
   }),
   created() {
     this.search();
   },
   computed: {},
   methods: {
-    ...mapActions(['query', 'delete', 'scoreImport', 'status']),
+    ...mapActions(['query', 'delete', 'scoreImport', 'status', 'create']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
       const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
@@ -179,6 +199,21 @@ export default {
     printView() {
       this.$router.push({ path: '/teacher/printTea', query: {} });
     },
+    // 添加教师
+    add() {
+      this.dialog = true;
+    },
+    // 提交
+    async turnSave({ data }) {
+      data.status = '0';
+      const res = await this.create(data);
+      if (this.$checkRes(res, `创建成功`, res.errmsg || '创建失败')) this.search();
+    },
+    // 取消
+    toClose() {
+      this.from = {};
+      this.dialog = false;
+    },
   },
 };
 </script>