lrf402788946 il y a 4 ans
Parent
commit
1f09b1cb9c
4 fichiers modifiés avec 230 ajouts et 0 suppressions
  1. 3 0
      src/layout/user/clickBtn.vue
  2. 6 0
      src/router/index.js
  3. 2 0
      src/store/index.js
  4. 219 0
      src/views/user/classInfo.vue

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

@@ -2,6 +2,9 @@
   <div id="clickBtn">
   <div id="clickBtn">
     <el-row>
     <el-row>
       <el-col :span="24">
       <el-col :span="24">
+        <el-col :span="24" class="native">
+          <van-cell is-link @click="$router.push({ path: '/user/classInfo' })">班级信息</van-cell>
+        </el-col>
         <el-col :span="24" class="native">
         <el-col :span="24" class="native">
           <van-cell is-link @click="$router.push({ path: '/user/checkWork' })">考勤</van-cell>
           <van-cell is-link @click="$router.push({ path: '/user/checkWork' })">考勤</van-cell>
         </el-col>
         </el-col>

+ 6 - 0
src/router/index.js

@@ -178,6 +178,12 @@ const routes = [
     meta: { title: '登陆中', isleftarrow: true },
     meta: { title: '登陆中', isleftarrow: true },
     component: () => import('../views/login.vue'),
     component: () => import('../views/login.vue'),
   },
   },
+  //正在登陆
+  {
+    path: '/user/classInfo',
+    meta: { title: '班级信息', isleftarrow: true },
+    component: () => import('../views/user/classInfo.vue'),
+  },
 ];
 ];
 
 
 const router = new VueRouter({
 const router = new VueRouter({

+ 2 - 0
src/store/index.js

@@ -28,6 +28,7 @@ import school from '@frame/store/school';
 import answerapply from '@frame/store/answerapply';
 import answerapply from '@frame/store/answerapply';
 import chatroom from '@frame/store/chatroom';
 import chatroom from '@frame/store/chatroom';
 import answerchat from '@frame/store/answerchat';
 import answerchat from '@frame/store/answerchat';
+import classtype from '@frame/store/classtype';
 import personalscore from '@frame/store/personalscore';
 import personalscore from '@frame/store/personalscore';
 import * as ustate from '@frame/store/user/state';
 import * as ustate from '@frame/store/user/state';
 import * as umutations from '@frame/store/user/mutations';
 import * as umutations from '@frame/store/user/mutations';
@@ -68,5 +69,6 @@ export default new Vuex.Store({
     answerchat,
     answerchat,
     location,
     location,
     personalscore,
     personalscore,
+    classtype,
   },
   },
 });
 });

+ 219 - 0
src/views/user/classInfo.vue

@@ -0,0 +1,219 @@
+<template>
+  <div id="classInfo">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" title="班级信息" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <el-col :span="24" class="clickBtn">
+            <el-col :span="24" class="messageInfo">
+              <el-col :span="24" class="mess">
+                <el-col :span="22" class="info">
+                  <p class="title">班级名称</p>
+                  <p class="name">{{ classinfo.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">{{ classinfo.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">{{ classinfo.batch }}</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">{{ classinfo.term }}</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">{{ dirInfo.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">
+                    <a :href="`tel:${dirInfo.phone}`">{{ dirInfo.phone }}</a>
+                  </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">{{ classinfo.lyteacher }}</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">{{ classinfo.yclocation }}</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">{{ classinfo.kzjhlocation }}</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">{{ classinfo.kbyslocation }}</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">{{ classinfo.jslocation }}</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">
+                    <span>{{ getType(classinfo.type) }}</span>
+                  </p>
+                </el-col>
+                <el-col :span="2" class="icon">
+                  <van-icon name="arrow" />
+                </el-col>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="foot">
+          <footInfo></footInfo>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/layout/common/topInfo.vue';
+import footInfo from '@/layout/common/footInfo.vue';
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: classes } = createNamespacedHelpers('classes');
+const { mapActions: director } = createNamespacedHelpers('director');
+const { mapActions: classtype } = createNamespacedHelpers('classtype');
+
+export default {
+  name: 'classInfo',
+  props: {},
+  components: { NavBar, footInfo },
+  data: () => ({
+    info: {},
+    teainfo: {},
+    jiaoshiinfo: {},
+    title: '',
+    isleftarrow: '',
+    navShow: true,
+    classinfo: {},
+    classTypeList: [],
+    dirInfo: {},
+  }),
+  async created() {
+    await this.getOtherList();
+    this.search();
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  methods: {
+    ...director({ getDir: 'fetch' }),
+    ...classes(['fetch']),
+    ...classtype({ getClassType: 'query' }),
+    async search() {
+      const classinfo = (await this.fetch(this.user.classid)).data;
+      this.$set(this, `classinfo`, classinfo);
+      if (_.get(classinfo, 'headteacherid')) {
+        const dirInfo = await this.getDir(_.get(classinfo, 'headteacherid'));
+        if (this.$checkRes(dirInfo)) this.$set(this, `dirInfo`, dirInfo.data);
+      }
+    },
+    async getOtherList() {
+      const res = await this.getClassType();
+      if (this.$checkRes(res)) this.$set(this, `classTypeList`, res.data);
+    },
+    getType(type) {
+      console.log(type);
+      const r = this.classTypeList.find(f => f.code == type);
+      if (r) return r.name;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+p {
+  padding: 0;
+  margin: 0;
+}
+.messageInfo {
+  margin: 0 0 10px 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>