|
@@ -11,16 +11,16 @@
|
|
|
</detail-frame>
|
|
|
<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 align="center" label="寝室号" prop="bedroom" width="100"></el-table-column>
|
|
|
+ <el-table-column align="center" label="楼层" prop="floor" width="100"></el-table-column>
|
|
|
|
|
|
- <el-table-column prop="state" label="状态" align="center">
|
|
|
+ <!-- <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> -->
|
|
|
+ <el-table-column align="center" label="男女限制" prop="gender" width="100"></el-table-column>
|
|
|
+ <el-table-column align="center" label="人数" prop="number" width="100"></el-table-column>
|
|
|
<el-table-column align="center" label="学生">
|
|
|
<template v-slot="{ row }">
|
|
|
<el-row>
|
|
@@ -37,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.bedroom}`" :value="i.bedroom"></el-option>
|
|
|
+ <el-option :key="index" :label="i.name" :value="i.code"></el-option>
|
|
|
</template>
|
|
|
</template>
|
|
|
</template>
|
|
@@ -69,6 +69,7 @@ export default {
|
|
|
list: [],
|
|
|
stuBedroom: [],
|
|
|
bedroomList: [],
|
|
|
+ originBedRoomList: [],
|
|
|
classInfo: {},
|
|
|
opera: [
|
|
|
{
|
|
@@ -84,6 +85,7 @@ export default {
|
|
|
],
|
|
|
turnBedRoomFields: [
|
|
|
{ label: '姓名', model: 'name', type: 'text' },
|
|
|
+ { label: '性别', model: 'gender', type: 'text' },
|
|
|
{ label: '学校', model: 'school_name', type: 'text' },
|
|
|
{ label: '寝室', model: 'bedroom', type: 'select' },
|
|
|
],
|
|
@@ -124,24 +126,19 @@ export default {
|
|
|
}
|
|
|
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;
|
|
|
+ if (this.$checkRes(val)) {
|
|
|
+ let bedrooms = _.cloneDeep(val.data);
|
|
|
+ this.$set(this, `originBedRoomList`, bedrooms);
|
|
|
+ arr = arr.map(i => {
|
|
|
+ let r = bedrooms.find(f => f.code == i.bedroom);
|
|
|
+ if (r) {
|
|
|
+ let mid = _.pick(r, ['number', 'gender', 'floor']);
|
|
|
+ i = { ...i, ...mid };
|
|
|
}
|
|
|
+ return i;
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
+
|
|
|
this.$set(this, `stuBedroom`, arr);
|
|
|
}
|
|
|
},
|
|
@@ -169,22 +166,17 @@ export default {
|
|
|
},
|
|
|
async turnBedroom(data) {
|
|
|
this.$set(this, `form`, data);
|
|
|
- let res = await this.getBedroomList({ status: '0', batch: this.classInfo.batch });
|
|
|
- // 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);
|
|
|
+ let duplicate = _.cloneDeep(this.originBedRoomList);
|
|
|
+ let { gender } = data;
|
|
|
+ //没法限制,还可能有别的班,按班级看的话不全,只能自己排
|
|
|
+ let mid = duplicate.filter(f => f.gender == gender || f.gender == '' || f.gender == undefined || f.gender == null);
|
|
|
+ mid = mid.map(i => {
|
|
|
+ i.name = `${i.code}-${i.gender || '无性别限制'}-${i.floor}楼`;
|
|
|
+ return i;
|
|
|
});
|
|
|
- console.log(r);
|
|
|
- let nums = _.intersection(bdcont, r);
|
|
|
- console.log(nums);
|
|
|
+ // let mid2 = this.stuBedroom.filter(f => f.list.every(e => e.gender == gender) && f.list.length <= f.number);
|
|
|
|
|
|
- this.$set(this, `bedroomList`, nums);
|
|
|
+ this.$set(this, `bedroomList`, mid);
|
|
|
this.dialog = true;
|
|
|
},
|
|
|
//转寝保存
|