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