|
@@ -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();
|