reloaded 5 年之前
父节点
当前提交
f46375afb4
共有 5 个文件被更改,包括 94 次插入2 次删除
  1. 12 0
      src/router/index.js
  2. 3 1
      src/store/index.js
  3. 33 0
      src/views/classes/attendance.vue
  4. 27 1
      src/views/classes/index.vue
  5. 19 0
      src/views/classes/leave.vue

+ 12 - 0
src/router/index.js

@@ -57,6 +57,18 @@ const routes = [
         meta: { title: '班级', sub: '寝室' },
         component: () => import('@/views/classes/bedroom.vue'),
       },
+      {
+        path: '/classes/attendance',
+        name: 'classes_attendance',
+        meta: { title: '班级', sub: '考勤' },
+        component: () => import('@/views/classes/attendance.vue'),
+      },
+      {
+        path: '/classes/leave',
+        name: 'classes_leave',
+        meta: { title: '班级', sub: '请假' },
+        component: () => import('@/views/classes/leave.vue'),
+      },
       {
         path: '/student/detail',
         name: 'student_detail',

+ 3 - 1
src/store/index.js

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

+ 33 - 0
src/views/classes/attendance.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="attendance">
+    <attendanceInfo :classId="classId"></attendanceInfo>
+  </div>
+</template>
+
+<script>
+import attendanceInfo from '@frame/parts/attendance';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'attendance',
+  props: {},
+  components: { attendanceInfo },
+  data: () => ({
+    classId: {},
+  }),
+  created() {
+    this.initId();
+  },
+  computed: {
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  methods: {
+    async initId() {
+      this.classId = this.id;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 27 - 1
src/views/classes/index.vue

@@ -1,7 +1,17 @@
 <template>
   <div id="index">
     <list-frame title="班级管理" @query="search" :total="total" :filter="filFields" :needFilter="false" :needAdd="false">
-      <data-table :fields="fields" :data="list" :opera="opera" @edit="toEdit" @completion="toCompletion" @lesson="toLesson" @bedRoom="toBedRoom"></data-table>
+      <data-table
+        :fields="fields"
+        :data="list"
+        :opera="opera"
+        @edit="toEdit"
+        @completion="toCompletion"
+        @lesson="toLesson"
+        @bedRoom="toBedRoom"
+        @attendance="toAttendance"
+        @leave="toLeave"
+      ></data-table>
     </list-frame>
   </div>
 </template>
@@ -41,6 +51,16 @@ export default {
         icon: 'el-icon-s-home',
         method: 'bedRoom',
       },
+      {
+        label: '查看考勤情况',
+        icon: 'el-icon-map-location',
+        method: 'attendance',
+      },
+      {
+        label: '查看请假情况',
+        icon: 'el-icon-timer',
+        method: 'leave',
+      },
     ],
     fields: [
       { label: '班级名称', prop: 'name' },
@@ -78,6 +98,12 @@ export default {
     toBedRoom({ data }) {
       this.$router.push({ path: '/classes/bedroom', query: { id: data.id } });
     },
+    toAttendance({ data }) {
+      this.$router.push({ path: '/classes/attendance', query: { id: data.id } });
+    },
+    toLeave({ data }) {
+      this.$router.push({ path: '/classes/leave', query: { id: data.id } });
+    },
   },
 };
 </script>

+ 19 - 0
src/views/classes/leave.vue

@@ -0,0 +1,19 @@
+<template>
+  <div id="leave">
+    <p>leave</p>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'leave',
+  props: {},
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped></style>