import { reactive } from 'vue' export type UserInfo = { id : string nickname : string avatar : string } export type UserState = { token : string userInfo : UserInfo | null } export const userStore = reactive({ token: '', userInfo: null } as UserState) as UserState export function setToken(token : string) { userStore.token = token uni.setStorageSync('token', token) } export function setUserInfo(info : UserInfo | null) { userStore.userInfo = info uni.setStorageSync('userInfo', info) } export function logout() { userStore.token = '' userStore.userInfo = null uni.removeStorageSync('token') uni.removeStorageSync('userInfo') } export function initStore() { const token = uni.getStorageSync('token') if (token != null) { userStore.token = token as string } const info = uni.getStorageSync('userInfo') if (info != null) { userStore.userInfo = info as UserInfo } }