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 } 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: { /** * 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) */ // 登录 mLogin({ commit }, userInfo) { return new Promise((resolve, reject) => { api.login(userInfo).then(response => { // console.log(response) if(response.data.state ==200){ const result = response.data // const userInfo = response.data.data //uni.setStorageSync(USER_INFO,userInfo); commit('SET_TOKEN', "") commit('SET_AVATAR', null) //commit('SET_NAME', userInfo.username) let params = {}; // console.log("data:",userInfo) params.login_state=result.data; params.client_id="ibps"; //授权第二步 api.authorize(params).then(response2 =>{ //console.log(response2) if(response.data.state ==200){ let auparams = {}; auparams.authorize_code=response2.data.data; auparams.client_id="ibps"; //写死的client_secret auparams.client_secret="58b65297-3467-0859-8337-8cbaf81ef68a" auparams.grant_type="authorization_code" //授权第三步 api.authentication(auparams).then(res =>{ if(res.data.state ==200){ //将返回的token给到 uni.setStorageSync(ACCESS_TOKEN,res.data.data.access_token); uni.setStorageSync("refresh_token",res.data.data.refresh_token); resolve(res) } else{ resolve(res) } }) }else{ resolve(response2) } }) }else{ resolve(response) } }).catch(error => { console.log("catch===>response") reject(error) }) }) }, // 注册并登录 mSign({ commit }, userInfo) { return new Promise((resolve, reject) => { api.sign(userInfo).then(response => { if(response.data.state ==200){ const result = response.data const userInfo = response.data.data //uni.setStorageSync(ACCESS_TOKEN,"ashdgajd"); uni.setStorageSync(USER_INFO,userInfo); commit('SET_TOKEN', "ashdgajd") commit('SET_AVATAR', userInfo.id) commit('SET_NAME', userInfo.username) //授权第二步 let params = {}; params.login_state=userInfo.data; params.client_id="ibps"; api.authorize(params).then(response2 =>{ //console.log(response2) if(response.data.state ==200){ let auparams = {}; auparams.authorize_code=response2.data.data; auparams.client_id="ibps"; //写死的client_secret auparams.client_secret="58b65297-3467-0859-8337-8cbaf81ef68a" auparams.grant_type="authorization_code" //授权第三步 api.authentication(auparams).then(res =>{ if(res.data.state ==200){ //将返回的token给到 uni.setStorageSync(ACCESS_TOKEN,res.data.data.access_token); uni.setStorageSync("refresh_token",res.data.data.refresh_token); resolve(response) } else{ resolve(response) } }) }else{ resolve(response) } }) }else{ resolve(response) } }).catch(error => { console.log("catch===>response",error) reject(error) }) }) }, //手机号登录 PhoneLogin({ commit }, userInfo) { return new Promise((resolve, reject) => { api.phoneNoLogin(userInfo).then(response => { if(response.data.state ==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) */ const result = response.data const userInfo = response.data.data uni.setStorageSync(ACCESS_TOKEN,"ashdgajd"); uni.setStorageSync(USER_INFO,userInfo); commit('SET_TOKEN', "") commit('SET_AVATAR', userInfo.id) commit('SET_NAME', userInfo.username) //授权第二步 let params = {}; params.login_state=userInfo.data; params.client_id="ibps"; api.authorize(params).then(response2 =>{ //console.log(response2) if(response.data.state ==200){ let auparams = {}; auparams.authorize_code=response2.data.data; auparams.client_id="ibps"; //写死的client_secret auparams.client_secret="58b65297-3467-0859-8337-8cbaf81ef68a" auparams.grant_type="authorization_code" //授权第三步 api.authentication(auparams).then(res =>{ if(res.data.state ==200){ //将返回的token给到 uni.setStorageSync(ACCESS_TOKEN,res.data.data.access_token); uni.setStorageSync("refresh_token",res.data.data.refresh_token); resolve(res) } else{ resolve(res) } }) }else{ resolve(response2) } }) }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.username=uni.getStorageSync(USER_INFO).username; return state.username}, nickname: state => {state.companyname=uni.getStorageSync(USER_INFO).companyname; return state.companyname}, 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}, userinfo:state => {state.info=uni.getStorageSync(USER_INFO); return state.info}, }, })