Houjie
2025-06-03 2fda34643bc22e25f6c569415da5f955c81536bf
store/index.js
@@ -1,124 +1,173 @@
import Vue from 'vue'
import Vuex from 'vuex'
import api from "@/api/api"
import MinCache from'@/common/util/MinCache.js'
import { ACCESS_TOKEN,USER_NAME,USER_INFO,X_TENANT_ID } from "@/common/util/constants"
import MinCache from '@/common/util/MinCache.js'
import {
   ACCESS_TOKEN,
   USER_NAME,
   USER_INFO,
   X_TENANT_ID
} from "@/common/util/constants"
Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    token: '',
    userid:'',
    username: '',
    realname: '',
    welcome: '',
    avatar: ''
  },
  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_NAME: (state, { username, realname, welcome }) => {
      state.username = username
      state.realname = realname
      state.welcome = welcome
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
    }
  },
  actions: {
    // 登录
    mLogin({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
       api.login(userInfo).then(response => {
          if(response.data.code ==200){
            const result = response.data.result
            const userInfo = result.userInfo
         uni.setStorageSync(ACCESS_TOKEN,result.token);
         uni.setStorageSync("isLogin",true);
         uni.setStorageSync(USER_INFO,userInfo);
            commit('SET_TOKEN', result.token)
            commit('SET_AVATAR', userInfo.avatar)
            commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname})
            resolve(response)
          }else{
            resolve(response)
          }
        }).catch(error => {
         console.log("catch===>response",response)
          reject(error)
        })
      })
    },
    //手机号登录
    PhoneLogin({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
        api.phoneNoLogin(userInfo).then(response => {
          if(response.data.code ==200){
            const result = response.data.result
            const userInfo = result.userInfo
         uni.setStorageSync(ACCESS_TOKEN,result.token);
         uni.setStorageSync(USER_INFO,userInfo);
            commit('SET_TOKEN', result.token)
            commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname})
            commit('SET_AVATAR', userInfo.avatar)
            resolve(response)
          }else{
            reject(response)
          }
        }).catch(error => {
          reject(error)
        })
      })
    },
    // 第三方登录
    ThirdLogin({ commit }, param) {
      return new Promise((resolve, reject) => {
        api.thirdLogin(param.token,param.thirdType,param.tenantId).then(response => {
          if(response.data.code =='200'){
            const result = response.data.result
            const userInfo = result.userInfo
            uni.setStorageSync(ACCESS_TOKEN,result.token);
            uni.setStorageSync(USER_INFO,userInfo);
            uni.setStorageSync(X_TENANT_ID,userInfo.loginTenantId);
   state: {
      auth: [],
      token: '',
      userid: '',
      username: '',
      realname: '',
      welcome: '',
      avatar: ''
   },
   mutations: {
      SET_AUTH(state, auth) {
         state.auth = auth
      },
      SET_TOKEN: (state, token) => {
         state.token = token
      },
      SET_NAME: (state, {
         username,
         realname,
         welcome
      }) => {
         state.username = username
         state.realname = realname
         state.welcome = welcome
      },
      SET_AVATAR: (state, avatar) => {
         state.avatar = avatar
      }
   },
   actions: {
      // 登录
      mLogin({
         commit
      }, userInfo) {
         return new Promise((resolve, reject) => {
            api.login(userInfo).then(response => {
               if (response.data.code == 200) {
                  const result = response.data.result
                  const userInfo = result.userInfo
                  uni.setStorageSync(ACCESS_TOKEN, result.token);
                  uni.setStorageSync("isLogin", true);
                  uni.setStorageSync("userId", userInfo.id);
                  uni.setStorageSync(USER_INFO, userInfo);
                  commit('SET_TOKEN', result.token)
                  commit('SET_AVATAR', userInfo.avatar)
                  commit('SET_NAME', {
                     username: userInfo.username,
                     realname: userInfo.realname
                  })
                  resolve(response)
               } else {
                  resolve(response)
               }
            }).catch(error => {
               console.log("catch===>response", response)
               reject(error)
            })
         })
      },
      //手机号登录
      PhoneLogin({
         commit
      }, userInfo) {
         return new Promise((resolve, reject) => {
            api.phoneNoLogin(userInfo).then(response => {
               if (response.data.code == 200) {
                  const result = response.data.result
                  const userInfo = result.userInfo
                  uni.setStorageSync(ACCESS_TOKEN, result.token);
                  uni.setStorageSync(USER_INFO, userInfo);
                  commit('SET_TOKEN', result.token)
                  commit('SET_NAME', {
                     username: userInfo.username,
                     realname: userInfo.realname
                  })
                  commit('SET_AVATAR', userInfo.avatar)
                  resolve(response)
               } else {
                  reject(response)
               }
            }).catch(error => {
               reject(error)
            })
         })
      },
      // 第三方登录
      ThirdLogin({
         commit
      }, param) {
         return new Promise((resolve, reject) => {
            api.thirdLogin(param.token, param.thirdType, param.tenantId).then(response => {
               if (response.data.code == '200') {
                  const result = response.data.result
                  const userInfo = result.userInfo
                  uni.setStorageSync(ACCESS_TOKEN, result.token);
                  uni.setStorageSync(USER_INFO, userInfo);
                  uni.setStorageSync(X_TENANT_ID, userInfo.loginTenantId);
            commit('SET_TOKEN', result.token)
            commit('SET_AVATAR', userInfo.avatar)
            commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname })
            commit('SET_ID', userInfo.id)
            commit('SET_INFO', userInfo)
            commit('SET_TENANTID', userInfo.loginTenantId)
            resolve(response)
          }else{
            reject(response)
          }
        }).catch(error => {
          reject(error)
        })
      })
    },
    // 登出
    Logout({ commit, state }) {
      return new Promise((resolve) => {
        let logoutToken = state.token;
        commit('SET_TOKEN', '')
        uni.removeStorageSync(ACCESS_TOKEN)
        api.logout(logoutToken).then(() => {
          resolve()
        }).catch(() => {
          resolve()
        })
      })
    },
  },
  getters:{
    token: state => state.token,
   username: state => {state.userid=uni.getStorageSync(USER_INFO).username; return state.username},
   nickname: state => {state.userid=uni.getStorageSync(USER_INFO).realname; return state.user.realname},
   avatar: state => {state.userid=uni.getStorageSync(USER_INFO).avatar; return state.user.avatar},
   userid:state => {state.userid=uni.getStorageSync(USER_INFO).id; return state.userid},
  }
})
                  commit('SET_TOKEN', result.token)
                  commit('SET_AVATAR', userInfo.avatar)
                  commit('SET_NAME', {
                     username: userInfo.username,
                     realname: userInfo.realname
                  })
                  commit('SET_ID', userInfo.id)
                  commit('SET_INFO', userInfo)
                  commit('SET_TENANTID', userInfo.loginTenantId)
                  resolve(response)
               } else {
                  reject(response)
               }
            }).catch(error => {
               reject(error)
            })
         })
      },
      // 登出
      Logout({
         commit,
         state
      }) {
         return new Promise((resolve) => {
            let logoutToken = state.token;
            commit('SET_TOKEN', '')
            uni.removeStorageSync(ACCESS_TOKEN)
            api.logout(logoutToken).then(() => {
               resolve()
            }).catch(() => {
               resolve()
            })
         })
      },
      saveAuth({
         commit
      }, auth) {
         commit('SET_AUTH', auth)
      }
   },
   getters: {
      getAuth: state => state.auth,
      token: state => state.token,
      username: state => {
         state.userid = uni.getStorageSync(USER_INFO).username;
         return state.username
      },
      nickname: state => {
         state.userid = uni.getStorageSync(USER_INFO).realname;
         return state.user.realname
      },
      avatar: state => {
         state.userid = uni.getStorageSync(USER_INFO).avatar;
         return state.user.avatar
      },
      userid: state => {
         state.userid = uni.getStorageSync(USER_INFO).id;
         return state.userid
      },
   }
})