2025-03-11 09:45:29 +08:00

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 || '登录失败,请稍后再试');
});
});
});
}
}
});