Browse Source

vuex统一命名风格

sfmind 3 years ago
parent
commit
5efd621f21

+ 6 - 14
yudao-ui-app/pages/login/login.vue

@@ -142,20 +142,12 @@ export default {
     },
     handleSubmit() {
       this.$refs.form.validate().then(res => {
-        if (this.currentModeIndex === 0) {
-          this.handleLoginPromise(passwordLogin({ mobile: this.formData.mobile, password: this.formData.password }))
-        } else if (this.currentModeIndex === 1) {
-          this.handleLoginPromise(smsLogin({ mobile: this.formData.mobile, code: this.formData.code }))
-        }
-      })
-    },
-    handleLoginPromise(promise) {
-      promise.then(res => {
-        this.$store.commit('setToken', res.data)
-        uni.$u.toast('登录成功')
-        setTimeout(() => {
-          this.navigateBack()
-        }, 1000)
+        this.$store.dispatch('Login', { type: this.currentModeIndex, data: this.formData }).then(res => {
+          uni.$u.toast('登录成功')
+          setTimeout(() => {
+            this.navigateBack()
+          }, 1000)
+        })
       })
     },
     navigateBack() {

+ 2 - 2
yudao-ui-app/pages/profile/profile.vue

@@ -81,7 +81,7 @@ export default {
           const tempFilePaths = chooseImageRes.tempFilePaths
           updateAvatar(tempFilePaths[0]).then(res => {
             this.userInfo.avatar = res.data
-            this.$store.commit('setUserInfo', this.userInfo)
+            this.$store.commit('SET_USER_INFO', this.userInfo)
           })
         }
       })
@@ -90,7 +90,7 @@ export default {
       updateNickname({ nickname: this.tempName }).then(res => {
         this.nameEditOn = false;
         this.userInfo.nickname = this.tempName
-        this.$store.commit('setUserInfo', this.userInfo)
+        this.$store.commit('SET_USER_INFO', this.userInfo)
       })
     }
   }

+ 3 - 3
yudao-ui-app/pages/user/user.vue

@@ -73,7 +73,7 @@ export default {
   },
   onLoad() {
     if (this.hasLogin){
-      this.$store.dispatch('obtainUserInfo')
+      this.$store.dispatch('ObtainUserInfo')
     }
   },
   methods: {
@@ -90,7 +90,7 @@ export default {
         content: '您确定要退出登录吗',
         success: res => {
           if (res.confirm) {
-            this.$store.dispatch('logout')
+            this.$store.dispatch('Logout')
           } else if (res.cancel) {
             //console.log('用户点击取消')
           }
@@ -100,7 +100,7 @@ export default {
   },
   computed: {
     userInfo() {
-      return this.$store.state.userInfo
+      return this.$store.getters.userInfo
     },
     hasLogin() {
       return this.$store.getters.hasLogin

+ 28 - 11
yudao-ui-app/store/index.js

@@ -2,6 +2,7 @@ import Vue from 'vue'
 import Vuex from 'vuex'
 import { logout } from '@/api/auth'
 import { getUserInfo } from '@/api/user'
+import { passwordLogin, smsLogin } from '../api/auth'
 
 Vue.use(Vuex) // vue的插件机制
 
@@ -14,13 +15,16 @@ const store = new Vuex.Store({
     timerIdent: false // 全局 1s 定时器,只在全局开启一个,所有需要定时执行的任务监听该值即可,无需额外开启 TODO 芋艿:需要看看
   },
   getters: {
+    userInfo(state) {
+      return state.userInfo
+    },
     hasLogin(state) {
       return !!state.token
     }
   },
   mutations: {
     // 更新 state 的通用方法
-    setStateAttr(state, param) {
+    SET_STATE_ATTR(state, param) {
       if (param instanceof Array) {
         for (let item of param) {
           state[item.key] = item.val
@@ -30,22 +34,22 @@ const store = new Vuex.Store({
       }
     },
     // 更新token
-    setToken(state, data) {
+    SET_TOKEN(state, data) {
       // 设置 Token
       const { token } = data
       state.token = token
       uni.setStorageSync('token', token)
 
       // 加载用户信息
-      this.dispatch('obtainUserInfo')
+      this.dispatch('ObtainUserInfo')
     },
     // 更新用户信息
-    setUserInfo(state, data) {
+    SET_USER_INFO(state, data) {
       state.userInfo = data
       uni.setStorageSync('userInfo', data)
     },
     // 清空 Token 和 用户信息
-    clearLoginInfo(state) {
+    CLEAR_LOGIN_INFO(state) {
       uni.removeStorageSync('token')
       state.token = ''
       uni.removeStorageSync('userInfo')
@@ -53,15 +57,28 @@ const store = new Vuex.Store({
     }
   },
   actions: {
-    // 获得用户基本信息
-    async obtainUserInfo({ state, commit }) {
-      const res = await getUserInfo()
-      commit('setUserInfo', res.data)
+    //账号登录
+    Login({ state, commit }, { type, data }) {
+      console.log(type, data)
+      if (type === 0) {
+        return passwordLogin(data).then(res => {
+          commit('SET_TOKEN', res.data)
+        })
+      } else {
+        return smsLogin(data).then(res => {
+          commit('SET_TOKEN', res.data)
+        })
+      }
     },
     // 退出登录
-    async logout({ state, commit }) {
-      commit('clearLoginInfo')
+    async Logout({ state, commit }) {
+      commit('CLEAR_LOGIN_INFO')
       await logout()
+    },
+    // 获得用户基本信息
+    async ObtainUserInfo({ state, commit }) {
+      const res = await getUserInfo()
+      commit('SET_USER_INFO', res.data)
     }
   }
 })