export default createStore({
modules: {
account,
},
state: {
globalLoading: false,
},
}
export interface RootState {
globalLoading: boolean
}
import { Module } from 'vuex'
import { RootState } from './../index.d'
interface UserInfo {
id?: number,
nickname?: string
}
interface AccountState {
userInfo: UserInfo
}
interface SendCode {
mobile: string,
}
const account: Module<AccountState, RootState> = {
state: {
userInfo: {},
},
mutations: {
setUserInfo(state, payload: UserInfo): void {
state.userInfo = payload
},
},
actions: {
async sendCode({ commit }, payload: SendCode): Promise<object> {
console.log('in sendCode actions, data:', payload)
return Promise.resolve({})
},
}
}
export default account
import { GetterTree, MutationTree, ActionTree } from 'vuex'
import { RootState } from './../index.d'
interface UserInfo {
id?: number,
nickname?: string
}
interface AccountState {
userInfo: UserInfo
}
interface SendCode {
mobile: string,
}
const state: AccountState = {
userInfo: {},
}
const getters: GetterTree<AccountState, RootState> = {
accountId(state) {
return state.userInfo.id
}
}
const mutations: MutationTree<AccountState> = {
setUserInfo(state, payload: UserInfo): void {
state.userInfo = payload
},
}
const actions: ActionTree<AccountState, RootState> = {
async sendCode({ commit }, payload: SendCode): Promise<object> {
console.log('in sendCode actions, data:', payload)
return Promise.resolve({})
},
}
export default {
state,
getters,
mutations,
actions,
}