wuhongyu 5 éve
szülő
commit
fe93676997

+ 0 - 3
src/layout/class/classGroup.vue

@@ -59,9 +59,6 @@ export default {
     saveGroup() {
       this.$emit('saveGroup', { data: this.groupForm });
     },
-    // createGroup() {
-    //   this.$emit('createGroup');
-    // },
   },
 };
 </script>

+ 85 - 0
src/layout/class/jiaoshistu.vue

@@ -0,0 +1,85 @@
+<template>
+  <div id="stuleaveList">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="list" v-for="(item, index) in newclassList" :key="index">
+          <el-col :span="18" class="name">
+            <p>{{ item.name }}</p>
+          </el-col>
+          <el-col :span="6" class="btn">
+            <el-link :underline="false" @click="clickShows(item.id)">详情</el-link>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+export default {
+  name: 'stuleaveList',
+  props: {
+    newclassList: null,
+    leaveInfo: null,
+    show: null,
+  },
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {
+    clickShows(id) {
+      this.$router.push({ path: '/class/stuDetail', query: { id } });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.list {
+  margin: 10px 10px 0 10px;
+  background: #fff;
+  width: 95%;
+  padding: 10px;
+  border-radius: 10px;
+}
+.list .name {
+  padding: 5px 0;
+}
+.list .btn {
+  padding: 5px 0;
+  text-align: center;
+}
+.wrapper {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 100%;
+}
+.leaveInfo {
+  width: 90%;
+  background: #ffffff;
+  padding: 0 0 10px 0;
+  border-radius: 10px;
+}
+.info {
+  height: 450px;
+  overflow-y: auto;
+}
+.jilu {
+  text-align: center;
+  padding: 10px 0;
+}
+.leavelist {
+  padding: 10px 10px 0 10px;
+}
+.leavelist .date p {
+  padding: 0;
+}
+.leavelist .status {
+  padding: 10px 0;
+}
+</style>

+ 197 - 0
src/layout/class/studentteainfo.vue

@@ -0,0 +1,197 @@
+<template>
+  <div id="studentInfo">
+    <el-row>
+      <el-col :span="24" class="messageInfo">
+        <el-col :span="24" class="images">
+          <div class="demo-basic--circle">
+            <div class="block"><el-avatar :size="163" :src="circleUrl"></el-avatar></div>
+          </div>
+        </el-col>
+        <span>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">姓名</p>
+              <p class="name">{{ messInfo.name }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">身份证号</p>
+              <p class="name">{{ messInfo.id_number }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">性别</p>
+              <p class="name">{{ messInfo.gender }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">民族</p>
+              <p class="name">{{ messInfo.nation }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">手机号</p>
+              <p class="name">{{ messInfo.phone }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">QQ</p>
+              <p class="name">{{ messInfo.qq }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">学校</p>
+              <p class="name">{{ messInfo.school_name }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">所在院系</p>
+              <p class="name">{{ messInfo.faculty }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">所在专业</p>
+              <p class="name">{{ messInfo.major }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">入学年份</p>
+              <p class="name">{{ messInfo.entry_year }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">毕业年份</p>
+              <p class="name">{{ messInfo.finish_year }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">在校所担当职务</p>
+              <p class="name">{{ messInfo.school_job }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">e-mail</p>
+              <p class="name">{{ messInfo.email }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">户口所在地</p>
+              <p class="name">{{ messInfo.family_place }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+        </span>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+export default {
+  name: 'studentInfo',
+  props: {
+    messInfo: null,
+    teainfo: null,
+    jianshiinfo: null,
+  },
+  components: {},
+  data: () => ({
+    circleUrl: require('@/assets/circle.png'),
+  }),
+  created() {},
+  computed: {
+    ...mapState(['user']),
+  },
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.messageInfo {
+  margin: 0 0 10px 0;
+}
+.images {
+  text-align: center;
+  padding: 15px 0;
+}
+.mess {
+  min-height: 50px;
+  border-bottom: 1px solid #efeff4;
+}
+.info {
+  padding: 0 15px;
+}
+.info .title {
+  font-size: 14px;
+  color: #92a1b1;
+  padding: 4px 0;
+}
+.info .name {
+  font-size: 16px;
+  color: #000;
+}
+.icon {
+  padding: 11px 0;
+  font-size: 20px;
+  color: #ccc;
+}
+</style>

+ 54 - 0
src/layout/class/teacherClassList.vue

@@ -0,0 +1,54 @@
+<template>
+  <div id="teaLeaveList">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="list" v-for="(item, index) in newclassList" :key="index">
+          <el-col :span="18" class="mess">
+            <p>班级:{{ item.name }}</p>
+            <p>班级人数:{{ item.number }}</p>
+          </el-col>
+          <el-col :span="6" class="btn">
+            <el-link :underline="false" @click="$router.push({ path: '/class/teaclass', query: { id: item.id } })">班级名单</el-link>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'teaLeaveList',
+  props: {
+    newclassList: null,
+  },
+  components: {},
+  data: () => ({
+    openCollapse: [],
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.list {
+  background: #fff;
+  margin: 10px;
+  width: 94%;
+  padding: 10px;
+  border-radius: 20px;
+}
+.list .mess p {
+  padding: 5px 0;
+}
+.list .btn {
+  padding: 20px 0;
+  text-align: center;
+}
+</style>

+ 2 - 0
src/layout/common/footInfo.vue

@@ -7,10 +7,12 @@
             <van-image width="60" height="60" :src="index" />
             <p class="text">首页</p>
           </van-tabbar-item>
+
           <van-tabbar-item to="/class/index">
             <van-image width="60" height="60" :src="classes" />
             <p class="text">班级名单</p>
           </van-tabbar-item>
+
           <van-tabbar-item to="/question/index">
             <van-image width="60" height="60" :src="question" />
             <p class="text">问卷调查</p>

+ 3 - 0
src/layout/user/clickBtn.vue

@@ -27,6 +27,9 @@
         <el-col :span="24" class="native" v-if="this.user.type === '1'">
           <van-cell is-link @click="$router.push({ path: '/user/teacher' })">查看任课教师</van-cell>
         </el-col>
+        <!-- <el-col :span="24" class="native" v-if="this.user.type === '3'">
+          <van-cell is-link @click="$router.push({ path: '/user/terstudent' })">查看任课教师</van-cell>
+        </el-col> -->
       </el-col>
     </el-row>
   </div>

+ 16 - 0
src/layout/user/messageInfo.vue

@@ -26,6 +26,21 @@
           <p>所在部门:{{ teainfo.department }}</p>
         </el-col>
       </el-col>
+      <el-col
+        :span="24"
+        class="message"
+        @click.native="$router.push({ path: '/user/personalDetail', query: { id: jiaoshiinfo.id } })"
+        v-if="this.user.type === '3'"
+      >
+        <el-col :span="7" class="name">
+          {{ jiaoshiinfo.name }}
+        </el-col>
+        <el-col :span="17" class="mess">
+          <p>年龄:{{ jiaoshiinfo.age }}&nbsp;&nbsp;性别:{{ jiaoshiinfo.gender }}</p>
+          <p>手机号:{{ jiaoshiinfo.phone }}</p>
+          <p>所在部门:{{ jiaoshiinfo.department }}</p>
+        </el-col>
+      </el-col>
     </el-row>
   </div>
 </template>
@@ -37,6 +52,7 @@ export default {
   props: {
     info: null,
     teainfo: null,
+    jiaoshiinfo: null,
   },
   components: {},
   data: () => ({}),

+ 86 - 0
src/layout/user/studentInfo.vue

@@ -135,6 +135,91 @@
             </el-col>
           </el-col>
         </span>
+
+        <span v-if="this.user.type === '3'">
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">姓名</p>
+              <p class="name">{{ jianshiinfo.name }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">性别</p>
+              <p class="name">{{ jianshiinfo.gender }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">年龄</p>
+              <p class="name">{{ jianshiinfo.age }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">手机号</p>
+              <p class="name">{{ jianshiinfo.phone }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">学校名称</p>
+              <p class="name">{{ jianshiinfo.schname }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">邮箱</p>
+              <p class="name">{{ jianshiinfo.email }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">资料评分</p>
+              <p class="name">{{ jianshiinfo.zlscore }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">面试评分</p>
+              <p class="name">{{ jianshiinfo.msscore }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="mess">
+            <el-col :span="22" class="info">
+              <p class="title">学生评分</p>
+              <p class="name">{{ jianshiinfo.xsscore }}</p>
+            </el-col>
+            <el-col :span="2" class="icon">
+              <van-icon name="arrow" />
+            </el-col>
+          </el-col>
+        </span>
         <span v-else>
           <el-col :span="24" class="mess">
             <el-col :span="22" class="info">
@@ -212,6 +297,7 @@ export default {
   props: {
     messInfo: null,
     teainfo: null,
+    jianshiinfo: null,
   },
   components: {},
   data: () => ({

+ 0 - 9
src/layout/user/teacherdetail.vue

@@ -89,15 +89,6 @@
             <van-icon name="arrow" />
           </el-col>
         </el-col>
-        <el-col :span="24" class="mess">
-          <el-col :span="22" class="info">
-            <p class="title">资料评分</p>
-            <p class="name">{{ teainfo.zlscore }}</p>
-          </el-col>
-          <el-col :span="2" class="icon">
-            <van-icon name="arrow" />
-          </el-col>
-        </el-col>
       </el-col>
     </el-row>
   </div>

+ 14 - 0
src/router/index.js

@@ -64,6 +64,20 @@ const routes = [
     path: '/class/joinGroup',
     component: () => import('../views/class/joinGroup.vue'),
   },
+  //教师班级名单
+
+  {
+    path: '/class/teaclass',
+    meta: { title: '班级成绩', isleftarrow: true },
+    component: () => import('../views/class/teaclass.vue'),
+  },
+  //教师学生详情
+  {
+    path: '/class/stuDetail',
+    meta: { title: '学生详情', isleftarrow: true },
+    component: () => import('../views/class/stuDetail.vue'),
+  },
+
   // 问卷调查
   {
     path: '/question/index',

+ 14 - 0
src/views/class/index.vue

@@ -9,6 +9,10 @@
           <span v-if="this.user.type === '1'">
             <headClassList :headClassList="headClassList" @clickStu="clickStu"></headClassList>
           </span>
+
+          <span v-if="this.user.type === '3'">
+            <teacherClassList :newclassList="newclassList"></teacherClassList>
+          </span>
           <span v-else>
             <classList
               :stuNameList="stuNameList"
@@ -46,6 +50,7 @@
 import NavBar from '@/layout/common/topInfo.vue';
 import footInfo from '@/layout/common/footInfo.vue';
 import headClassList from '@/layout/class/headClassList.vue';
+import teacherClassList from '@/layout/class/teacherClassList.vue';
 import classList from '@/layout/class/classList.vue';
 import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
 const { mapActions: mapGroup } = createNamespacedHelpers('group');
@@ -62,6 +67,7 @@ export default {
     headClassList, //班主任中管理的学生列表
     classList, //班级名单
     footInfo, //底部导航
+    teacherClassList, //教师班级列表
   },
   data: () => ({
     form: {},
@@ -72,6 +78,7 @@ export default {
     // 学生看学生名单
     stuNameList: [],
     // 班级分组
+    newclassList: [],
     groupList: [],
     createGroupDialog: false,
     groupForm: {},
@@ -85,6 +92,7 @@ export default {
     await this.searchInfo();
     await this.searchstu();
     await this.findGroup();
+    this.class();
   },
   computed: {
     ...mapState(['user']),
@@ -248,6 +256,12 @@ export default {
       console.log(item);
       const res = await this.create(item);
     },
+
+    async class() {
+      const res = await this.classList();
+      console.log(res.data);
+      this.$set(this, 'newclassList', res.data);
+    },
   },
 };
 </script>

+ 89 - 0
src/views/class/stuDetail.vue

@@ -0,0 +1,89 @@
+<template>
+  <div id="personalDetail">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+
+        <el-col :span="24" class="main">
+          <studentteainfo :messInfo="messInfo"></studentteainfo>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/layout/common/topInfo.vue';
+import studentteainfo from '@/layout/class/studentteainfo.vue';
+
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapDirectors } = createNamespacedHelpers('director');
+const { mapActions: mapStudent } = createNamespacedHelpers('student');
+const { mapActions: mapteacher } = createNamespacedHelpers('teacher');
+const { mapActions: mapDept } = createNamespacedHelpers('dept');
+export default {
+  name: 'personalDetail',
+  props: {},
+  components: {
+    NavBar, //头部导航
+    studentteainfo, //学生详细信息
+  },
+  data: () => ({
+    messInfo: {},
+    teainfo: {},
+    stulist: {},
+    title: '',
+    isleftarrow: '',
+    navShow: true,
+    jianshiinfo: {},
+  }),
+  created() {
+    this.searchInfo();
+  },
+  computed: {
+    id() {
+      return this.$route.query.id;
+    },
+    ...mapState(['user']),
+  },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+  watch: {
+    $route(to, from) {
+      this.title = to.meta.title;
+      this.isleftarrow = to.meta.isleftarrow;
+    },
+  },
+  methods: {
+    ...mapDirectors({ directorQuery: 'query', directorFetch: 'fetch' }),
+    ...mapStudent({ studentQuery: 'query', studentFetch: 'fetch' }),
+    ...mapDept({ deptFetch: 'fetch' }),
+    ...mapteacher({ teacherFether: 'fetch' }),
+    // 1:班主任,4:学生
+    async searchInfo() {
+      const res = await this.studentFetch(this.id);
+      this.$set(this, `messInfo`, res.data);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+}
+.main {
+  min-height: 570px;
+}
+</style>

+ 82 - 0
src/views/class/teaclass.vue

@@ -0,0 +1,82 @@
+<template>
+  <div id="teaLeave">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <jiaoshistu :newclassList="newclassList"></jiaoshistu>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/layout/common/topInfo.vue';
+import jiaoshistu from '@/layout/class/jiaoshistu.vue';
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapClass } = createNamespacedHelpers('classes');
+const { mapActions: mapStudent } = createNamespacedHelpers('student');
+export default {
+  name: 'leave',
+  props: {},
+  components: {
+    NavBar, //头部导航
+    jiaoshistu, //班主任学生请假列表
+  },
+  data: () => ({
+    newclassList: [],
+    isleftarrow: '',
+    title: '',
+    isleftarrow: '',
+    navShow: true,
+  }),
+  created() {
+    this.searchInfo();
+  },
+  computed: {
+    ...mapState(['user']),
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+  watch: {
+    $route(to, from) {
+      this.title = to.meta.title;
+      this.isleftarrow = to.meta.isleftarrow;
+    },
+  },
+  methods: {
+    ...mapClass({ classinfo: 'query' }),
+    ...mapStudent({ stuQuery: 'query', stuFetch: 'fetch' }),
+    async searchInfo({ ...info } = {}) {
+      let classid = this.id;
+      const res = await this.stuQuery({ classid });
+
+      this.$set(this, `newclassList`, res.data);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+}
+.main {
+  min-height: 570px;
+}
+</style>

+ 8 - 1
src/views/user/index.vue

@@ -7,7 +7,7 @@
         </el-col>
         <el-col :span="24" class="main">
           <el-col :span="24" class="message">
-            <messageInfo :info="info" :teainfo="teainfo"></messageInfo>
+            <messageInfo :info="info" :teainfo="teainfo" :jiaoshiinfo="jiaoshiinfo"></messageInfo>
           </el-col>
           <el-col :span="24" class="clickBtn">
             <clickBtn></clickBtn>
@@ -29,6 +29,7 @@ import clickBtn from '@/layout/user/clickBtn.vue';
 import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
 const { mapActions: mapDirectors } = createNamespacedHelpers('director');
 const { mapActions: mapStudent } = createNamespacedHelpers('student');
+const { mapActions: mapTeacher } = createNamespacedHelpers('teacher');
 const { mapActions: mapDept } = createNamespacedHelpers('dept');
 
 export default {
@@ -43,6 +44,7 @@ export default {
   data: () => ({
     info: {},
     teainfo: {},
+    jiaoshiinfo: {},
     title: '',
     isleftarrow: '',
     navShow: true,
@@ -66,6 +68,7 @@ export default {
   methods: {
     ...mapDirectors({ directorQuery: 'query', directorFetch: 'fetch' }),
     ...mapStudent({ studentQuery: 'query', studentFetch: 'fetch' }),
+    ...mapTeacher({ teacherlist: 'query', teacherfetch: 'fetch' }),
     ...mapDept({ deptFetch: 'fetch' }),
     // 查询登录用户信息
     async searchSite() {
@@ -78,6 +81,10 @@ export default {
       } else if (this.user.type === '4') {
         const res = await this.studentFetch(this.user.userid);
         this.$set(this, `info`, res.data);
+      } else if (this.user.type === '3') {
+        const res = await this.teacherfetch(this.user.userid);
+        console.log(res.data); 
+        this.$set(this, `jiaoshiinfo`, res.data);
       }
     },
   },

+ 10 - 1
src/views/user/personalDetail.vue

@@ -5,8 +5,9 @@
         <el-col :span="24" class="top">
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
+
         <el-col :span="24" class="main">
-          <studentInfo :messInfo="messInfo" :teainfo="teainfo"></studentInfo>
+          <studentInfo :messInfo="messInfo" :teainfo="teainfo" :jianshiinfo="jianshiinfo"></studentInfo>
         </el-col>
       </el-col>
     </el-row>
@@ -16,9 +17,11 @@
 <script>
 import NavBar from '@/layout/common/topInfo.vue';
 import studentInfo from '@/layout/user/studentInfo.vue';
+
 import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
 const { mapActions: mapDirectors } = createNamespacedHelpers('director');
 const { mapActions: mapStudent } = createNamespacedHelpers('student');
+const { mapActions: mapteacher } = createNamespacedHelpers('teacher');
 const { mapActions: mapDept } = createNamespacedHelpers('dept');
 export default {
   name: 'personalDetail',
@@ -30,9 +33,11 @@ export default {
   data: () => ({
     messInfo: {},
     teainfo: {},
+    stulist: {},
     title: '',
     isleftarrow: '',
     navShow: true,
+    jianshiinfo: {},
   }),
   created() {
     this.searchInfo();
@@ -57,6 +62,7 @@ export default {
     ...mapDirectors({ directorQuery: 'query', directorFetch: 'fetch' }),
     ...mapStudent({ studentQuery: 'query', studentFetch: 'fetch' }),
     ...mapDept({ deptFetch: 'fetch' }),
+    ...mapteacher({ teacherFether: 'fetch' }),
     // 1:班主任,4:学生
     async searchInfo() {
       if (this.user.type === '1') {
@@ -67,6 +73,9 @@ export default {
       } else if (this.user.type === '4') {
         const res = await this.studentFetch(this.id);
         this.$set(this, `messInfo`, res.data);
+      } else if (this.user.type === '3') {
+        const res = await this.teacherFether(this.id);
+        this.$set(this, `jianshiinfo`, res.data);
       }
     },
   },

+ 1 - 1
src/views/user/pingfenindex.vue

@@ -7,7 +7,7 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          <el-col :span="24" class="leaveBtn">
+          <el-col :span="24" class="leaveBtn" v-if="this.user.job == '班长'">
             <van-button round type="info" icon="smile" @click="onClickRight()">添加分数</van-button>
           </el-col>
           <el-col :span="24" class="leaveList">