reloaded 4 lat temu
rodzic
commit
023c2ace6d
4 zmienionych plików z 87 dodań i 27 usunięć
  1. 12 0
      src/router/index.js
  2. 4 0
      src/store/index.js
  3. 33 27
      src/views/index.vue
  4. 38 0
      src/views/login.vue

+ 12 - 0
src/router/index.js

@@ -1,5 +1,6 @@
 import Vue from 'vue';
 import VueRouter from 'vue-router';
+import store from '@/store/index';
 
 Vue.use(VueRouter);
 
@@ -44,4 +45,15 @@ const router = new VueRouter({
   routes,
 });
 
+router.beforeEach((to, form, next) => {
+  store.commit('setUser');
+  let user = store.state.user;
+  if (user) {
+    console.log('已登录');
+  }
+  //下面是没登录的情况,需要跳转页面到用户未登录页
+  else console.log('未登录');
+  next();
+});
+
 export default router;

+ 4 - 0
src/store/index.js

@@ -2,6 +2,8 @@ import Vue from 'vue';
 import Vuex from 'vuex';
 import login from '@frame/store/login';
 import trainplan from '@frame/store/trainplan';
+import classes from '@frame/store/classes';
+import director from '@frame/store/director';
 
 import * as ustate from '@frame/store/user/state';
 import * as umutations from '@frame/store/user/mutations';
@@ -14,5 +16,7 @@ export default new Vuex.Store({
   modules: {
     trainplan,
     login,
+    classes,
+    director,
   },
 });

+ 33 - 27
src/views/index.vue

@@ -7,13 +7,17 @@
         </el-col>
         <el-col :span="24" class="main">
           <span v-if="display">
-            <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-              <p @click="clickBtn(index)">{{ item.title }}</p>
+            <el-col :span="24" class="list" v-for="(item, index) in planList" :key="index" @click.native="toClass(item.id)">
+              <p>计划年份:{{ item.year }}</p>
+              <p>计划标题:{{ item.title }}</p>
             </el-col>
           </span>
           <span v-else>
-            <el-col :span="24" class="list" v-for="(item, index) in classList" :key="index">
-              <p @click="classBtn(index)">{{ item.classname }}</p>
+            <el-col :span="24" class="list" v-for="(item, index) in classList" :key="index" @click.native="classBtn(item.id)">
+              <p>班级时间:{{ item.startdate }}~{{ item.enddate }}</p>
+              <p>
+                班级名称:{{ item.name }}<span style="margin-left:20px;">班级人数:{{ item.number }}</span>
+              </p>
             </el-col>
           </span>
         </el-col>
@@ -24,7 +28,9 @@
 
 <script>
 import NavBar from '@/layout/common/topInfo.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: trainplan } = createNamespacedHelpers('trainplan');
+const { mapActions: classes } = createNamespacedHelpers('classes');
 export default {
   name: 'index',
   props: {},
@@ -38,32 +44,28 @@ export default {
       navShow: true,
       display: true,
       // 计划列表
-      list: [
-        {
-          title: '计划一',
-        },
-        {
-          title: '计划二',
-        },
-      ],
+      planList: [],
       // 计划id
       planId: '',
-      classList: [
-        {
-          classname: '班级一',
-        },
-        {
-          classname: '班级二',
-        },
-      ],
+      classList: [],
     };
   },
-  created() {},
+  created() {
+    this.search();
+  },
   methods: {
-    clickBtn(index) {
+    ...trainplan(['query']),
+    ...classes({ classQuery: 'query' }),
+    async search() {
+      const planList = await this.query();
+      this.$set(this, `planList`, planList.data);
+    },
+    async toClass(planid) {
       // index:计划id
       this.display = false;
-      this.$set(this, `planId`, index);
+      this.$set(this, `planId`, planid);
+      const classList = await this.classQuery({ planid: planid, headteacherid: this.user.userid });
+      this.$set(this, `classList`, classList.data);
     },
     classBtn(index) {
       // index:班级id
@@ -99,8 +101,12 @@ export default {
 }
 .main {
   min-height: 570px;
-  .list {
-    border: 1px solid red;
-  }
+}
+.list {
+  background: #fff;
+  margin: 10px;
+  width: 94%;
+  padding: 10px;
+  border-radius: 20px;
 }
 </style>

+ 38 - 0
src/views/login.vue

@@ -0,0 +1,38 @@
+<template>
+  <div id="login">
+    <van-button type="primary" @click="toIndex" v-if="is_dev">去首页(开发用)</van-button>
+  </div>
+</template>
+
+<script>
+const jwt = require('jsonwebtoken');
+
+export default {
+  metaInfo: { title: '正在登陆...' },
+  name: 'login',
+  props: {},
+  components: {},
+  data: () => ({
+    is_dev: process.env.NODE_ENV === 'development',
+  }),
+  created() {
+    this.$toast.loading({
+      message: '登陆中...',
+      duration: 0,
+    });
+    let token = this.$route.query.token;
+    let user = jwt.decode(token);
+    localStorage.setItem('user', JSON.stringify(user));
+    this.$toast.clear();
+    if (!this.is_dev) this.toIndex();
+  },
+  computed: {},
+  methods: {
+    toIndex() {
+      this.$router.push({ path: '/' });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>