Files

167 lines
3.9 KiB
JavaScript
Raw Normal View History

2020-03-15 13:59:43 +08:00
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const debug = process.env.NODE_ENV !== "production";
import cookie from "@/utils/store/cookie";
2020-04-06 22:08:40 +08:00
import {
getUserInfo,
getUser
2020-04-06 22:08:40 +08:00
} from "@/api/user";
2020-03-15 13:59:43 +08:00
import dialog from "@/utils/dialog";
2020-06-13 01:38:36 +08:00
const loginKey = "login_status";
2020-03-15 13:59:43 +08:00
const vuexStore = new Vuex.Store({
2020-04-06 22:08:40 +08:00
state: {
// 是否已经在授权页面
isAuthorizationPage: false,
// 是否授权
isAuthorization: false,
// 不建议从这里取 token但是删除掉会影响其他的页面
2020-06-13 01:38:36 +08:00
token: cookie.get(loginKey) || null,
userInfo: cookie.get('userInfo'),
2020-04-06 22:08:40 +08:00
$deviceType: null,
2020-06-13 01:38:36 +08:00
location: {
latitude: '',
longitude: ''
2020-06-16 01:04:01 +08:00
},
storeItems: cookie.get("storeItems") || null,
goName: cookie.get("goName") || ""
2020-04-06 22:08:40 +08:00
},
mutations: {
2020-06-13 01:38:36 +08:00
login(state, token, expires_time) {
2020-04-06 22:08:40 +08:00
state.token = token;
2020-06-13 01:38:36 +08:00
cookie.set(loginKey, token, expires_time);
2020-04-06 22:08:40 +08:00
},
2020-06-13 01:38:36 +08:00
logout(state) {
2020-06-03 20:12:00 +08:00
console.log('清除数据')
2020-04-06 22:08:40 +08:00
state.token = null;
state.userInfo = null
cookie.clearAll()
2020-04-06 22:08:40 +08:00
},
2020-06-13 01:38:36 +08:00
backgroundColor(state, color) {
2020-04-06 22:08:40 +08:00
state.color = color;
// document.body.style.backgroundColor = color;
},
2020-06-13 01:38:36 +08:00
updateUserInfo(state, userInfo) {
2020-04-06 22:08:40 +08:00
state.userInfo = userInfo;
if (userInfo) {
cookie.set('userInfo', userInfo)
} else {
cookie.set('userInfo', null)
}
2020-04-06 22:08:40 +08:00
},
2020-06-13 01:38:36 +08:00
updateAuthorizationPage(state, isAuthorizationPage) {
2020-04-06 22:08:40 +08:00
state.isAuthorizationPage = isAuthorizationPage;
},
2020-06-13 01:38:36 +08:00
updateAuthorization(state, isAuthorization) {
2020-04-06 22:08:40 +08:00
state.isAuthorization = isAuthorization;
},
2020-06-13 01:38:36 +08:00
updateDevicetype(state, $deviceType) {
2020-04-06 22:08:40 +08:00
state.$deviceType = $deviceType;
},
2020-06-13 01:38:36 +08:00
setLocation(state, location) {
state.location = location
2020-06-16 01:04:01 +08:00
},
get_store(state, storeItems) {
state.storeItems = storeItems;
cookie.set("storeItems", storeItems);
},
get_to(state, goName) {
state.goName = goName;
cookie.set("goName", goName);
2020-06-13 01:38:36 +08:00
}
2020-04-06 22:08:40 +08:00
},
actions: {
2020-06-13 01:38:36 +08:00
getLocation({ state, commit }, force) {
uni.getLocation({
type: 'gcj02',
2020-06-13 01:38:36 +08:00
success: function (res) {
console.log(res)
commit("setLocation", {
longitude: res.longitude,
latitude: res.latitude,
});
}
});
},
userInfo({ state, commit }, force) {
if (state.userInfo !== null && !force) {
2020-04-06 22:08:40 +08:00
return Promise.resolve(state.userInfo);
}
return new Promise(reslove => {
getUserInfo().then(res => {
commit("updateUserInfo", res.data);
reslove(res.data);
});
}).catch(() => {
uni.showToast({
title: "获取信息失败!",
icon: "none",
duration: 2000,
});
});
},
getUser({ state, commit }) {
if (!state.token) {
return Promise.reject('未获取到token');
}
return new Promise(reslove => {
2020-07-12 22:44:37 +08:00
getUserInfo().then(res => {
console.log(res)
2020-06-13 01:38:36 +08:00
commit("updateUserInfo", res.data);
reslove(res.data);
});
}).catch((error) => {
console.log(error)
uni.showToast({
title: "获取信息失败!",
icon: "none",
duration: 2000,
});
});
2020-04-06 22:08:40 +08:00
},
changeLogin({
state,
commit
}, data, date) {
2020-06-13 01:38:36 +08:00
commit("login", data, date);
2020-04-06 22:08:40 +08:00
},
setUserInfo({
state,
commit
}, user) {
2020-09-22 01:20:02 +08:00
2020-06-13 01:38:36 +08:00
commit("updateUserInfo", user);
2020-04-06 22:08:40 +08:00
},
changeAuthorizationPage({
state,
commit
}, index) {
2020-06-13 01:38:36 +08:00
commit("updateAuthorizationPage", index);
2020-04-06 22:08:40 +08:00
},
changeAuthorization({
state,
commit
}, index) {
2020-06-13 01:38:36 +08:00
commit("updateAuthorization", index);
2020-04-06 22:08:40 +08:00
},
},
getters: {
isAuthorizationPage: state => state.isAuthorizationPage,
isAuthorization: state => state.isAuthorization,
token: state => state.token,
isLogin: state => !!state.token,
userInfo: state => state.userInfo || {},
2020-06-13 01:38:36 +08:00
location: state => state.location,
2020-06-16 01:04:01 +08:00
storeItems: state => state.storeItems,
goName: state => state.goName,
2020-09-22 01:20:02 +08:00
$deviceType: state => state.$deviceType,
2020-04-06 22:08:40 +08:00
},
strict: debug
2020-03-15 13:59:43 +08:00
});
export default vuexStore