Просмотр исходного кода

Merge branch 'master' of http://git.cc-lotus.info/new_train/train-director

guhongwei 5 лет назад
Родитель
Сommit
76b6be62f5
2 измененных файлов с 43 добавлено и 5 удалено
  1. 2 0
      src/store/index.js
  2. 41 5
      src/views/classes/bedroom.vue

+ 2 - 0
src/store/index.js

@@ -16,6 +16,7 @@ import lesson from '@frame/store/lesson';
 import director from '@frame/store/director';
 import termquest from '@frame/store/termquest';
 import questionnaire from '@frame/store/questionnaire';
+import bedroom from '@frame/store/bedroom';
 import login from '@frame/store/login';
 import util from '@frame/store/util';
 import * as ustate from '@frame/store/user/state';
@@ -42,6 +43,7 @@ export default new Vuex.Store({
     director,
     lesson,
     util,
+    bedroom,
   },
   state: { ...ustate },
   mutations: { ...umutations },

+ 41 - 5
src/views/classes/bedroom.vue

@@ -5,46 +5,82 @@
         <template #custom="{item, row}">
           <template v-if="item.prop === 'studentList'">
             <el-row type="flex" justify="left">
-              <el-col :span="6" v-for="(stud, index) in row.studentList" :key="index">{{ stud }}</el-col>
+              <el-col :span="6" v-for="(stud, index) in row.stus" :key="index" @click.native="changeRoom(stud)">{{ stud.name }}</el-col>
             </el-row>
           </template>
         </template>
       </data-table>
     </detail-frame>
+    <el-dialog :visible.sync="dialog" title="修改寝室" @close="toClose" width="30%">
+      <data-form :data="form" :fields="turnBedRoomFields" :rules="{}" @save="turnSave">
+        <template #options="{item,form}">
+          <template v-if="item.model == 'bedroom'">
+            <template v-for="(i, index) in list">
+              <el-option v-if="i.bedroom" :key="index" :label="`${i.bedroom}`" :value="i.bedroom"></el-option>
+            </template>
+          </template>
+        </template>
+      </data-form>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import _ from 'lodash';
 import { mapActions, mapState, createNamespacedHelpers } from 'vuex';
 import dataTable from '@frame/components/data-table';
+import dataForm from '@frame/components/form';
 import detailFrame from '@frame/layout/admin/detail-frame';
-const { mapActions: student } = createNamespacedHelpers('student'); //班级
+const { mapActions: bedroom } = createNamespacedHelpers('bedroom'); //班级
 export default {
   metaInfo: { title: '寝室安排' },
   name: 'bedroom',
   props: {},
-  components: { detailFrame, dataTable },
+  components: { detailFrame, dataTable, dataForm },
   data: () => ({
+    dialog: false,
     fields: [
       { label: '寝室号', prop: 'bedroom', options: { width: `150px` } },
       { label: '寝室人员', prop: 'studentList', custom: true },
     ],
+    turnBedRoomFields: [
+      { label: '姓名', model: 'name', type: 'text' },
+      { label: '学校', model: 'school_name', type: 'text' },
+      { label: '寝室', model: 'bedroom', type: 'select' },
+    ],
     list: [],
+    form: {},
   }),
   created() {
     this.search();
   },
   methods: {
-    ...student(['bedRoom']),
+    ...bedroom(['getClassList']),
     async search() {
-      let res = await this.bedRoom({ classid: this.id });
+      let res = await this.getClassList(this.id);
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
       }
     },
+    //转寝保存
+    async turnSave({ data }) {
+      let res = await this.updateStudent(data);
+      if (this.$checkRes(res, `转寝成功`, res.errmsg || `转寝失败`)) {
+        this.getStudent();
+        this.toClose();
+      }
+    },
     toreturn() {
       window.history.go(-1);
     },
+    changeRoom(stu) {
+      this.$set(this, `form`, _.cloneDeep(stu));
+      this.dialog = true;
+    },
+    toClose() {
+      this.dialog = false;
+      this.form = {};
+    },
   },
   computed: {
     id() {