lrf402788946 5 years ago
parent
commit
b98b568d30
1 changed files with 36 additions and 59 deletions
  1. 36 59
      src/views/train-plan/tsbbedroom.vue

+ 36 - 59
src/views/train-plan/tsbbedroom.vue

@@ -5,18 +5,31 @@
       <data-table :fields="fields" :data="list" :opera="opera" @edit="toEdit" :usePage="false"></data-table>
     </detail-frame>
     <detail-frame :title="classInfo.name" :returns="toReturns" v-if="view != 'list'">
-      <data-table :fields="stufields" :data="sutlist" :opera="stuopera" @edit="toQinshi"></data-table>
+      <el-row type="flex" align="middle" justify="end" class="btn_bar">
+        <el-col :span="2">
+          <el-button type="primary" size="mini" @click="toSave">保存</el-button>
+        </el-col>
+      </el-row>
+      <el-table :data="stulist" size="mini" border stripe>
+        <template v-for="(f, index) in stufields">
+          <template v-if="f.prop !== 'bedroom'">
+            <el-table-column :key="index" align="center" :label="f.label" :prop="f.prop"></el-table-column>
+          </template>
+          <template v-else-if="f.prop == 'bedroom'">
+            <el-table-column :key="index" align="center" :label="f.label">
+              <template v-slot="{ row }">
+                <el-input size="mini" v-model="row[f.prop]"></el-input>
+              </template>
+            </el-table-column>
+          </template>
+        </template>
+      </el-table>
     </detail-frame>
-    <el-dialog :visible.sync="dialog" title="编辑寝室" @close="toClose" width="30%">
-      <data-form :data="form" :fields="tsbbedroomFields" :rules="{}" @save="turnSave"> </data-form>
-    </el-dialog>
   </div>
 </template>
 
 <script>
 import _ from 'lodash';
-import axios from 'axios';
-import dataForm from '@frame/components/form';
 import dataTable from '@frame/components/filter-page-table';
 import detailFrame from '@frame/layout/admin/detail-frame';
 import { mapState, createNamespacedHelpers } from 'vuex';
@@ -27,22 +40,15 @@ const { mapActions: util } = createNamespacedHelpers('util');
 export default {
   name: 'tsbbedroom',
   props: {},
-  components: { detailFrame, dataTable, dataForm },
+  components: { detailFrame, dataTable },
   data: function() {
     return {
       view: 'list',
       dialog: false,
       form: {},
-      list: [
-        {
-          term: '1',
-          batch: '1',
-          name: '1',
-        },
-      ],
+      list: [],
       stuBedroom: [],
       bedroomList: [],
-      originBedRoomList: [],
       classInfo: {},
       opera: [
         {
@@ -58,31 +64,9 @@ export default {
       ],
       options: undefined,
       // 编辑学生所在寝室
-      sutlist: [
-        {
-          name: '测试',
-          gender: '男',
-          nation: '汉',
-          id_number: '220182199603257019',
-          termname: '1',
-          batchname: '1',
-          classname: '1',
-          school_name: '吉林大学',
-          faculty: '计算机',
-          major: '计算机',
-          phone: '17319450324',
-          email: '123456@163.com',
-        },
-      ],
-      stuopera: [
-        {
-          label: '编辑寝室',
-          icon: 'el-icon-view',
-          method: 'edit',
-        },
-      ],
+      stulist: [],
       stufields: [
-        { label: '寝室号', prop: 'code' },
+        { label: '寝室号', prop: 'bedroom' },
         { label: '姓名', prop: 'name' },
         { label: '性别', prop: 'gender' },
         { label: '民族', prop: 'nation' },
@@ -96,17 +80,12 @@ export default {
         { label: '手机号', prop: 'phone' },
         { label: '邮箱', prop: 'email' },
       ],
-      tsbbedroomFields: [
-        { label: '姓名', model: 'name', type: 'text' },
-        { label: '性别', model: 'gender', type: 'text' },
-        { label: '寝室号', prop: 'code', type: 'input' },
-      ],
     };
   },
   created() {},
   methods: {
     ...classes(['query']),
-    ...student({ getStudentList: 'query', updateStudent: 'update' }),
+    ...student({ getStudentList: 'query', updateStudent: 'update', batUpdateBedroom: 'updateBedroom' }),
     ...bedroom({ bedroomApart: 'apart', getBedroomList: 'query', classstuList: 'classstuList' }),
     ...util({ modelFetch: 'fetch' }),
     // 查询特殊班级
@@ -115,11 +94,16 @@ export default {
       if (!termid) return;
       let res = await this.query({ termid });
       if (this.$checkRes(res)) {
-        // this.$set(this, `list`, res.data);
+        let r = res.data.filter(f => f.type != '0');
+        this.$set(this, `list`, r);
       }
     },
     // 修改
-    toEdit({ data }) {
+    async toEdit({ data }) {
+      const res = await this.getStudentList({ classid: data._id });
+      if (this.$checkRes(res)) {
+        this.$set(this, `stulist`, res.data);
+      }
       this.$set(this, `classInfo`, data);
       this.view = 'class';
     },
@@ -129,18 +113,11 @@ export default {
       this.$set(this, `classInfo`, {});
       this.$set(this, `stuBedroom`, []);
     },
-    // 编辑寝室
-    toQinshi({ data }) {
-      this.$set(this, `form`, data);
-      this.dialog = true;
-    },
-    // 提交编辑寝室
-    turnSave() {
-      console.log(this.form);
-    },
-    // 关闭dialog
-    toClose() {
-      this.dialog = false;
+    async toSave() {
+      // TODO 批量保存学生
+      let duplicate = _.cloneDeep(this.stulist);
+      let res = await this.batUpdateBedroom(duplicate);
+      this.$checkRes(res, '修改成功', res.errmsg);
     },
   },
   watch: {