lrf402788946 %!s(int64=4) %!d(string=hai) anos
pai
achega
7341572e2c
Modificáronse 2 ficheiros con 34 adicións e 9 borrados
  1. 8 3
      src/views/class/index.vue
  2. 26 6
      src/views/class/newClass/nameList.vue

+ 8 - 3
src/views/class/index.vue

@@ -8,11 +8,11 @@
         <el-col :span="24" class="main">
           <el-tabs v-model="activeName">
             <el-tab-pane label="班级名单" name="first">
-              <el-col :span="24">
+              <el-col :span="24" style="text-align:center;padding:15px 0;">
                 <el-button type="primary" size="mini">查看平时成绩</el-button>
               </el-col>
               <el-col :span="24">
-                <name-list :data="studentList"></name-list>
+                <name-list :data="studentList" @updateStu="toUpdateStu"></name-list>
               </el-col>
             </el-tab-pane>
             <el-tab-pane label="班级分组" name="second">
@@ -69,13 +69,18 @@ export default {
     await this.findGroup();
   },
   methods: {
-    ...student({ getStudentList: 'query' }),
+    ...student({ getStudentList: 'query', updateStudent: 'update' }),
     ...group({ groupQuery: 'query' }),
     // 查学生
     async toGetStudentList() {
       const res = await this.getStudentList({ classid: this.user.classid });
       if (res) this.$set(this, `studentList`, res.data);
     },
+    // 修改学生职位
+    async toUpdateStu(data) {
+      const res = await this.updateStudent(data);
+      if (this.$checkRes(res, '修改成功', res.errmsg || '修改失败')) this.toGetStudentList();
+    },
     // 查询小组
     async findGroup() {
       let classid = this.user.classid;

+ 26 - 6
src/views/class/newClass/nameList.vue

@@ -2,19 +2,24 @@
   <div id="nameList">
     <el-row>
       <el-col :span="12" v-for="(stu, index) in data" :key="index" class="list">
-        <p class="name">{{ stu.name }}</p>
-        <p class="job">{{ stu.job }}</p>
-        <p class="job">性别:{{ stu.gender }}</p>
-        <p class="job">寝室号:{{ stu.bedroom }}</p>
+        <div @click="changeJob(stu)">
+          <p class="name">{{ stu.name }}</p>
+          <p class="job">{{ stu.job }}</p>
+          <p class="job">性别:{{ stu.gender }}</p>
+          <p class="job">寝室号:{{ stu.bedroom }}</p>
+        </div>
         <p>
           <i class="el-icon-phone"></i><el-link href="tel:01234567890" :underline="false">:{{ stu.phone }}</el-link>
         </p>
       </el-col>
     </el-row>
+
+    <van-action-sheet v-model="show" :actions="selectList" cancel-text="取消" @select="toSelect" :description="form.name" close-on-click-action />
   </div>
 </template>
 
 <script>
+import _ from 'lodash';
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'nameList',
@@ -23,10 +28,25 @@ export default {
   },
   components: {},
   data: function() {
-    return {};
+    return {
+      show: false,
+      form: {},
+      selectList: [{ name: '文艺委员' }, { name: '安全委员' }, { name: '普通学员' }],
+    };
   },
   created() {},
-  methods: {},
+  methods: {
+    changeJob(data) {
+      this.show = true;
+      this.$set(this, `form`, _.cloneDeep(data));
+    },
+    toSelect({ name: job }) {
+      let info = _.cloneDeep(this.form);
+      info.job = job;
+      console.log('in function:');
+      this.$emit('updateStu', info);
+    },
+  },
   computed: {
     ...mapState(['user']),
     pageTitle() {