wuhongyu 4 年 前
コミット
d90e50313c
1 ファイル変更53 行追加3 行削除
  1. 53 3
      src/views/train-plan/bedroom.vue

+ 53 - 3
src/views/train-plan/bedroom.vue

@@ -12,6 +12,15 @@
     <detail-frame :title="classInfo.name" :returns="toReturns" v-if="view != 'list'">
       <el-table :data="stuBedroom" size="mini" border stripe>
         <el-table-column align="center" label="寝室号" prop="bedroom"></el-table-column>
+        <el-table-column align="center" label="楼层" prop="floor"></el-table-column>
+
+        <el-table-column prop="state" label="状态" align="center">
+          <template v-slot="scoped">
+            {{ `${scoped.row.status}` === `0` ? '启用' : `${scoped.row.status}` === `1` ? '停用' : '' }}
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="男女限制" prop="gender"></el-table-column>
+        <el-table-column align="center" label="人数" prop="number"></el-table-column>
         <el-table-column align="center" label="学生">
           <template v-slot="{ row }">
             <el-row>
@@ -28,7 +37,7 @@
         <template #options="{item,form}">
           <template v-if="item.model == 'bedroom'">
             <template v-for="(i, index) in bedroomList">
-              <el-option :key="index" :label="`${i.code}`" :value="i.code"></el-option>
+              <el-option :key="index" :label="`${i.bedroom}`" :value="i.bedroom"></el-option>
             </template>
           </template>
         </template>
@@ -47,6 +56,7 @@ import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: classes } = createNamespacedHelpers('classes');
 const { mapActions: student } = createNamespacedHelpers('student');
 const { mapActions: bedroom } = createNamespacedHelpers('bedroom');
+const { mapActions: util } = createNamespacedHelpers('util');
 export default {
   name: 'bedroom',
   props: {},
@@ -84,7 +94,8 @@ export default {
   methods: {
     ...classes(['query']),
     ...student({ getStudentList: 'query', updateStudent: 'update' }),
-    ...bedroom({ bedroomApart: 'apart', getBedroomList: 'query' }),
+    ...bedroom({ bedroomApart: 'apart', getBedroomList: 'query', classstuList: 'classstuList' }),
+    ...util({ modelFetch: 'fetch' }),
     async search() {
       let termid = _.get(this.defaultOption, 'termid');
       if (!termid) return;
@@ -111,6 +122,26 @@ export default {
           o['list'] = mid[key];
           arr.push(o);
         }
+        let val = await this.getBedroomList({ status: '0', batch: this.classInfo.batch });
+        let bdrooms = [];
+        for (const bdroom of arr) {
+          var ref = val.data.filter(item => item.code == bdroom.bedroom);
+          bdrooms = [...bdrooms, ...ref];
+        }
+        arr.map(item2 => {
+          bdrooms.map(item1 => {
+            if (item2.bedroom == item1.code) {
+              let json = {
+                number: item1.number,
+                gender: item1.gender,
+                floor: item1.floor,
+                status: item1.status,
+              };
+              Object.assign(item2, json);
+              return item2;
+            }
+          });
+        });
         this.$set(this, `stuBedroom`, arr);
       }
     },
@@ -139,11 +170,30 @@ export default {
     async turnBedroom(data) {
       this.$set(this, `form`, data);
       let res = await this.getBedroomList({ status: '0', batch: this.classInfo.batch });
-      if (this.$checkRes(res)) this.$set(this, `bedroomList`, res.data);
+      // var bd1 = res.data.filter(item => item.gender == data.gender);
+      // var bd2 = res.data.filter(item => item.gender == '');
+      // let bdcont = bd1.concat(bd2);
+      var bd3 = this.stuBedroom.filter(item => item.gender == data.gender);
+      var bd2 = this.stuBedroom.filter(item => item.gender == '');
+      let bdcont = bd3.concat(bd2);
+      console.log(bdcont);
+      let r = this.stuBedroom.filter(item1 => {
+        return item1.list.every(item => item.gender == data.gender);
+      });
+      console.log(r);
+      let nums = _.intersection(bdcont, r);
+      console.log(nums);
+
+      this.$set(this, `bedroomList`, nums);
       this.dialog = true;
     },
     //转寝保存
     async turnSave({ data }) {
+      const bedroom = await this.modelFetch({ model: 'bedroom', code: data.bedroom });
+      data.bedroomid = bedroom.data.id;
+      // data.bedroom = bedroom.data.code;
+      console.log(data.bedroomid);
+      console.log(data);
       let res = await this.updateStudent(data);
       if (this.$checkRes(res, `转寝成功`, res.errmsg || `转寝失败`)) {
         this.getSL();