|
@@ -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: {
|