1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import Vue from 'vue'
- import Vuex from 'vuex'
- import request from '@/common/request'
- Vue.use(Vuex)
- const store = new Vuex.Store({
- state: {
- hasLogin: false,
- jwt: uni.getStorageSync('jwt'),
- user: {}
- },
- // getters
- getters: {
- // ��ȡtokenֵ
- getJwt: state => {
- return state.jwt;
- },
- // ��֤�Ƿ���token
- verifyJwt: state => {
- if (state.jwt) {
- state.hasLogin = true;
- return true
- }
- return false;
- }
- },
- mutations: {
- setJwt(state, jwt) {
- state.jwt = jwt;
- uni.setStorageSync('jwt', state.jwt);
- },
- login(state) {
- state.hasLogin = true;
- try {
- uni.setStorageSync('jwt', state.jwt);
- } catch (e) {
- // error
- }
- },
- logout(state) {
- state.hasLogin = false
- state.user = {};
- state.jwt = '';
- uni.removeStorage({
- key: 'jwt',
- success: function(res) {}
- });
- },
- setUser(state, user) {
- state.user = user
- }
- },
- actions: {
- // lazy loading openid
- getUser: async function({
- commit,
- state
- }, refresh) {
- return await new Promise((resolve, reject) => {
- if (refresh != true && state.user && Object.keys(state.user).length > 0) {
- resolve(state.user)
- } else {
- request.get("/api/user/userInfo", {}, false).then(data => {
- if (data.code == 200) {
- commit('setUser', data.data)
- resolve(data.data)
- } else {
- resolve(null)
- }
- }).catch((err) => {
- console.info(err)
- reject(err);
- });
- }
- })
- }
- }
- })
- export default store
|