diff --git a/yudao-ui-app/pages/login/login.vue b/yudao-ui-app/pages/login/login.vue index 993c84bb4..0d1f06519 100644 --- a/yudao-ui-app/pages/login/login.vue +++ b/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() { diff --git a/yudao-ui-app/pages/profile/profile.vue b/yudao-ui-app/pages/profile/profile.vue index 2d15cb492..9b66ea80e 100644 --- a/yudao-ui-app/pages/profile/profile.vue +++ b/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) }) } } diff --git a/yudao-ui-app/pages/user/user.vue b/yudao-ui-app/pages/user/user.vue index 3cb57feda..8ca6e804e 100644 --- a/yudao-ui-app/pages/user/user.vue +++ b/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 diff --git a/yudao-ui-app/store/index.js b/yudao-ui-app/store/index.js index 2bda31387..f0c5d8b86 100644 --- a/yudao-ui-app/store/index.js +++ b/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) } } })