laosan2382995021@163.com 4 år sedan
förälder
incheckning
6ce5a4c6cd

+ 4 - 0
src/App.vue

@@ -10,6 +10,10 @@ export default {
 
   components:{
     layoutEntry
+  },
+
+  created() {
+    this.$store.commit('initializationUser');
   }
 
 }

+ 9 - 3
src/components/button/mixins/handle.ts

@@ -44,12 +44,14 @@ export default <LibMixins>{
         triggerChangeStatus(status:Status){
             clearTimeout(this._timeChangeStats);
             if (this.success && status === Status.success) {
+
+                setTimeout(()=>{
+                    this.$emit('change-success');
+                },this.changeSuccessTime);
+
                 this._timeChangeStats = setTimeout(()=> {
                     if (this._status === Status.success) {
                         this.exit = true;
-
-                        this.$emit('change-success');
-
                         setTimeout(()=>{
                             this.exit = false;
                             this.setStatus(Status.none);
@@ -59,6 +61,10 @@ export default <LibMixins>{
             }
         }
 
+    },
+
+    onUnmounted(){
+        clearTimeout(this._timeChangeStats);
     }
 
 }

+ 6 - 0
src/components/button/props.ts

@@ -19,6 +19,12 @@ export default {
       default:'#00D5AF'
     },
 
+    // 触发change-success的时间
+    changeSuccessTime:{
+      type:Number,
+      default:1000
+    },
+
     // 失败状态的文本
     failText:{
       type:String,

+ 4 - 2
src/popup/popup-export/global.ts

@@ -6,6 +6,8 @@ import popup from "$utils/tool/popup";
 
 import request from "$utils/request";
 
+import store from '../../store'
+
 export default {
 
     install(app:any){
@@ -13,7 +15,7 @@ export default {
         nextTick(()=>{
 
             // @ts-ignore
-            popup.$popup = createApp(main).use(request).mount('#popup');
+            popup.$popup = createApp(main).use(request).use(store).mount('#popup');
 
             for (let key in popup) {
                 if (popup.hasOwnProperty(key)) {
@@ -21,7 +23,7 @@ export default {
                 }
             }
 
-            (popup.$popup as PopupComponent).open('popup-login');
+            // (popup.$popup as PopupComponent).open('popup-login');
 
         });
 

+ 12 - 0
src/popup/popup-login/components/login/src/main.vue

@@ -34,6 +34,8 @@
       <v-button class="login-button"
         @submit-verify="submitVerify"
         @submit="submit"
+        @change-success="loginSuccess"
+        success-text="登录成功"
       >同意协议并登录</v-button>
 
       <!--  协议  -->
@@ -76,6 +78,12 @@ export default {
         data:obj.data,
         message: InstructionsMessageType.other
       }).then((data)=>{
+
+        if (data.isSuccess) {
+          this.$store.commit('setUserInfo',data.data);
+        }
+
+
         return data.isSuccess ? obj.success() : obj.none();
       }).catch(obj.fail);
     },
@@ -89,6 +97,10 @@ export default {
         });
       }
 
+    },
+
+    loginSuccess:function () {
+      return this.$emit('close');
     }
   },
 

+ 5 - 10
src/store/index.ts

@@ -1,12 +1,7 @@
-import { createStore } from 'vuex'
+import { createStore } from 'vuex';
+
+import modules from './modules';
 
 export default createStore({
-  state: {
-  },
-  mutations: {
-  },
-  actions: {
-  },
-  modules: {
-  }
-})
+  modules
+});

+ 10 - 3
src/store/modules/user.ts

@@ -1,15 +1,21 @@
-import {StoreOptions} from "vuex";
+import {Module} from "vuex";
 
 import userConfig from '$config/user';
 
 import storage from '$utils/tool/storage';
 
-export default <StoreOptions>{
+export default <Module<any,any>>{
 
     state:{
         user:{}
     },
 
+    getters:{
+      isLogin(state){
+          return state.user && state.user.login_token;
+      }
+    },
+
     mutations:{
 
         initializationUser(state){
@@ -17,6 +23,7 @@ export default <StoreOptions>{
             if (userData) {
                 userConfig.user = userData;
                 state.user = userData;
+                console.log(userData);
             }
         },
 
@@ -25,7 +32,7 @@ export default <StoreOptions>{
 
             if (user) {
 
-                userConfig.user = userData;
+                userConfig.user = user;
                 state.user = user;
 
                 return storage.setItem(userConfig.storageKey,user,userConfig.storageTime);

+ 6 - 1
src/views/view-header/src/main.vue

@@ -13,11 +13,16 @@
     </aside>
     <!--  用户模块   -->
     <section class="view-header-user row">
+      <!--  登录模式   -->
+      <aside v-if="$store.getters.isLogin">
+        
+      </aside>
       <!--  未登录模式   -->
-      <aside @click="openLogin" class="user-no-login rowACenter cursor-pointer">
+      <aside v-else @click="openLogin" class="user-no-login rowACenter cursor-pointer">
         <img src="../images/no-user.png" class="user-no-login-icon" />
         <span class="user-no-login-label">立即登录</span>
       </aside>
+
     </section>
   </header>
 </template>