83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
import Vue from 'vue';
|
|
import Vuex from 'vuex';
|
|
|
|
Vue.use(Vuex);
|
|
|
|
export default new Vuex.Store({
|
|
state: {
|
|
token: null,
|
|
session: null,
|
|
userid: null,
|
|
username: null,
|
|
sitename: null,
|
|
menuList: [],
|
|
backendUrl: 'http://162.14.99.253:32293' // 默认测试环境地址
|
|
},
|
|
mutations: {
|
|
SET_TOKEN(state, token) {
|
|
state.token = token;
|
|
},
|
|
SET_USERID(state, userid) {
|
|
state.userid = userid;
|
|
},
|
|
SET_USERNAME(state, username) {
|
|
state.username = username;
|
|
},
|
|
SET_SITENAME(state, sitename) {
|
|
state.sitename = sitename;
|
|
},
|
|
SET_MENULIST(state, menuList) {
|
|
state.menuList = menuList;
|
|
},
|
|
setBackendUrl(state, url) {
|
|
state.backendUrl = url;
|
|
},
|
|
setSession(state, session) {
|
|
state.session = session;
|
|
}
|
|
},
|
|
actions: {
|
|
setBackendUrl({ commit }, url) {
|
|
commit('setBackendUrl', url);
|
|
},
|
|
login({ commit }, payload) {
|
|
return new Promise((resolve, reject) => {
|
|
import('@/common/api.js').then(({ LoginCheck }) => {
|
|
LoginCheck(payload)
|
|
.then(res => {
|
|
console.log("保留store的值", res.data); // 打印原始数据以便调试
|
|
|
|
if (res && res['status'] === 'success') {
|
|
try {
|
|
const parsedData = JSON.parse(res.data);
|
|
console.log("解析后的数据:", parsedData); // 打印解析后的数据以便调试
|
|
|
|
commit('SET_TOKEN', parsedData.token);
|
|
commit('SET_USERID', parsedData.USERNAME);
|
|
commit('SET_USERNAME', parsedData.USERNAME);
|
|
commit('SET_SITENAME', parsedData.SITENAME);
|
|
commit('SET_MENULIST', parsedData.menuList);
|
|
commit('setSession', parsedData.session);
|
|
resolve(res);
|
|
} catch (parseError) {
|
|
console.error('JSON 解析失败:', parseError);
|
|
Vue.prototype.$showMessage('登录失败:服务器返回的数据格式不正确', 2000);
|
|
reject('服务器返回的数据格式不正确');
|
|
}
|
|
} else {
|
|
Vue.prototype.$showMessage(res.message || '登录失败,请稍后再试', 2000);
|
|
reject(res.data.message || '登录失败,请稍后再试');
|
|
}
|
|
})
|
|
.catch(err => {
|
|
console.error('登录请求失败:', err);
|
|
console.error('Error message:', err.message);
|
|
Vue.prototype.$showMessage(err.message || '登录失败,请稍后再试', 2000);
|
|
reject(err.message || '登录失败,请稍后再试');
|
|
});
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|