panhui 5 vuotta sitten
vanhempi
commit
1d3f9365d3
3 muutettua tiedostoa jossa 41 lisäystä ja 38 poistoa
  1. 3 18
      src/main/vue/src/router.js
  2. 27 1
      src/main/vue/src/store.js
  3. 11 19
      src/main/vue/src/views/Login.vue

+ 3 - 18
src/main/vue/src/router.js

@@ -414,25 +414,10 @@ router.beforeEach((to, from, next) => {
         return;
     }
     if (!store.state.userInfo && to.path !== '/login') {
-        http.axios
-            .get('/user/my')
-            .then(res => {
-                store.commit('updateUserInfo', res.data);
-                let flag = res.data.authorities.find(item => {
-                    return item.name == 'ROLE_ORGANIZER';
-                });
-                if (typeof flag != 'undefined') {
-                    http.axios
-                        .get('/organization/getByUserId/' + res.data.id)
-                        .then(index => {
-                            store.commit('updateOrganization', index.data);
-                        })
-                        .catch(() => {
-                            console.log(index.error);
-                        });
-                }
+        store
+            .dispatch('getUserInfo')
+            .then(() => {
                 next();
-                return;
             })
             .catch(() => {
                 localStorage.removeItem('token');

+ 27 - 1
src/main/vue/src/store.js

@@ -1,5 +1,6 @@
 import Vue from 'vue';
 import Vuex from 'vuex';
+import http from './plugins/http';
 
 Vue.use(Vuex);
 
@@ -24,5 +25,30 @@ export default new Vuex.Store({
             state.organization = organization;
         }
     },
-    actions: {}
+    actions: {
+        getUserInfo(context) {
+            return http.axios
+                .get('/user/my')
+                .then(res => {
+                    context.commit('updateUserInfo', res.data);
+                    let flag = res.data.authorities.find(item => {
+                        return item.name == 'ROLE_ORGANIZER';
+                    });
+                    if (flag) {
+                        return http.axios.get('/organization/getByUserId/' + res.data.id);
+                    } else {
+                        return Promise.resolve();
+                    }
+                })
+                .then(res => {
+                    if (res) {
+                        context.commit('updateOrganization', res.data);
+                    }
+                    return Promise.resolve();
+                })
+                .catch(() => {
+                    return Promise.reject();
+                });
+        }
+    }
 });

+ 11 - 19
src/main/vue/src/views/Login.vue

@@ -3,11 +3,11 @@
         <transition :name="`slide-${register ? 'in' : 'out'}`">
             <div class="login-wrapper" @keyup.enter="doRegister" v-if="register" key="register">
                 <div class="title">南京市社会艺术水平考级系统注册</div>
-                <el-page-header @back="register = false" title="登录" style="width: 350px; line-height: 55px;">
+                <el-page-header @back="register = false" title="登录" style="width: 350px; line-height: 55px">
                     <div class="register-title" slot="content">注册账号</div>
                 </el-page-header>
 
-                <el-form :model="registerInfo" style="width: 350px;" ref="registerForm">
+                <el-form :model="registerInfo" style="width: 350px" ref="registerForm">
                     <el-form-item prop="username" :rules="{ required: true, message: '请输入用户名', trigger: 'blur' }">
                         <el-input v-model="registerInfo.username" placeholder="用户名"> </el-input>
                     </el-form-item>
@@ -50,7 +50,7 @@
                         <single-upload v-model="registerInfo.businessLicense"></single-upload>
                     </el-form-item> -->
                     <el-form-item class="login-btn">
-                        <el-button :loading="loading" @click="doRegister" type="primary" style="width: 100%;"
+                        <el-button :loading="loading" @click="doRegister" type="primary" style="width: 100%"
                             >注册</el-button
                         >
                     </el-form-item>
@@ -60,7 +60,7 @@
                 <div class="title">南京市社会艺术水平考级系统</div>
                 <el-tabs v-model="activeName" stretch class="tab-list">
                     <el-tab-pane label="用户名登陆" name="first">
-                        <el-form size="medium" :model="userInfo" style="width: 380px;" ref="form">
+                        <el-form size="medium" :model="userInfo" style="width: 380px" ref="form">
                             <el-form-item
                                 prop="username"
                                 :rules="{ required: true, message: '请输入用户名', trigger: 'blur' }"
@@ -74,7 +74,7 @@
                                 <el-input v-model="userInfo.password" placeholder="密码" type="password"></el-input>
                             </el-form-item>
                             <el-form-item class="login-btn">
-                                <el-button :loading="loading" @click="login" type="primary" style="width: 100%;"
+                                <el-button :loading="loading" @click="login" type="primary" style="width: 100%"
                                     >登录
                                 </el-button>
                             </el-form-item>
@@ -85,14 +85,14 @@
                             </el-form-item> -->
                             <el-form-item label="">
                                 <el-checkbox v-model="rememberMe">7天内免登录 </el-checkbox>
-                                <el-button type="text" style="float: right;" @click="register = true"
+                                <el-button type="text" style="float: right" @click="register = true"
                                     >注册账号
                                 </el-button>
                             </el-form-item>
                         </el-form>
                     </el-tab-pane>
                     <el-tab-pane label="验证码登陆" name="second">
-                        <el-form size="medium" :model="userInfo" style="width: 380px;" ref="form2">
+                        <el-form size="medium" :model="userInfo" style="width: 380px" ref="form2">
                             <el-form-item
                                 prop="phone"
                                 :rules="{ required: true, message: '请输入手机号', trigger: 'blur' }"
@@ -124,13 +124,13 @@
                                     :loading="loading"
                                     @click="phonelogin"
                                     type="primary"
-                                    style="width: 100%;"
+                                    style="width: 100%"
                                     >手机登录</el-button
                                 >
                             </el-form-item>
                             <el-form-item label="">
                                 <el-checkbox v-model="rememberMe">7天内免登录 </el-checkbox>
-                                <el-button type="text" style="float: right;" @click="register = true"
+                                <el-button type="text" style="float: right" @click="register = true"
                                     >注册账号
                                 </el-button>
                             </el-form-item>
@@ -231,19 +231,11 @@ export default {
                         })
                         .then(res => {
                             localStorage.setItem('token', res);
-                            return this.$http.get('/user/my');
+
+                            return this.$store.dispatch('getUserInfo');
                         })
                         .then(res => {
                             this.loading = false;
-                            this.$store.commit('updateUserInfo', res);
-                            let flag = res.authorities.find(item => {
-                                return item.name == 'ROLE_ORGANIZER';
-                            });
-                            if (typeof flag != 'undefined') {
-                                this.$http.get('/organization/getByUserId/' + res.id).then(index => {
-                                    this.$store.commit('updateOrganization', index);
-                                });
-                            }
                             this.$router.replace({
                                 name: this.$route.params.name || 'dashboard'
                             });