// import Vue from 'vue' // import Vuex from 'vuex' import app from './modules/app' import portal from './modules/portal' import user from './modules/user' import getters from './getters' import {getUrlValue} from '@main/utils' Vue.use(Vuex) export default new Vuex.Store({ modules:{ portal, app, user }, getters, state: { appStatus:'loading',//failed , loading ,success appStatusMsg:'', }, mutations: { SET_appStatus(state,str){ state.appStatus = str; } }, actions: { async initApp(me){ function setErrorMsg(err,msgHead){ let __data=err.response.data; me.state.appStatusMsg=__data.msg || __data.message; msgHead&&(me.state.appStatusMsg=Vue.prototype.$t('hivuiMain_store_msg1')+msgHead+Vue.prototype.$t('hivuiMain_store_msg2')+(me.state.appStatusMsg&&(me.state.appStatusMsg+","))+Vue.prototype.$t('hivuiMain_store_msg3')); delete window.mainPageInitErrorJump; return new Promise((resolve, reject) => { reject(err); }); } window.mainPageInitErrorJump=true; //单点登录票据 if(window.HIVUI_SETTING.url!=location.origin&&window.HIVUI_SETTING.isSingleLogin&&getUrlValue('','ticket')){ function __ssoLogin(){ let returnPageUrl=window.location.origin+window.location.pathname; if(getUrlValue('','returnPage')){ returnPageUrl=getUrlValue('','returnPage'); } let params=window.location.search.slice(1).split("&").filter(item=>{ if(item.indexOf("ticket")==-1 && item.indexOf("returnPage")==-1){ return item } }); location = returnPageUrl+(params.length>0?'?':'')+params.join("&"); } await me.dispatch('user/login').then(res=>{ __ssoLogin(); }).catch(err=>{ __ssoLogin(); });//单点登录 } // await me.dispatch('user/load') //await me.dispatch('app/getPowers')//权限 // console.log('//权限 end') if(!me.state.app.menusList||me.state.app.menusList.length==0){ await me.dispatch('app/getMenus').catch(err=>{ return setErrorMsg(err,Vue.prototype.$t('hivuiMain_store_sysmenu')); })//菜单 // console.log('//菜单 end') } if(!me.state.user.userInfo.fuserid){ await me.dispatch('user/getInfo').catch(err=>{ return setErrorMsg(err,Vue.prototype.$t('hivuiMain_store_userinfo')); })//获取用户信息 // console.log('//获取用户信息 end') } if(!me.state.user.bzList){ await me.dispatch('user/getBzList').catch(err=>{ return setErrorMsg(err,Vue.prototype.$t('hivuiMain_store_bzlist')); })//获取多岗信息 // console.log('//获取多岗信息 end') } if(!me.state.app.latelyNavs&&me.state.app.latelyNavs.length==0){ await me.dispatch('app/getLatelyUse').catch(err=>{ return setErrorMsg(err,Vue.prototype.$t('hivuiMain_store_lately')); })//最近使用 // console.log('//最近使用 end') } //await me.dispatch('app/getQuickNav')//快速导航 // console.log('//快速导航 end') // await me.dispatch('portal/loadColumns')//栏目功能 // console.log('//栏目功能 end') // await me.dispatch('portal/loadList')//工作台门户列表 // console.log('//工作台门户列表 end') // await me.dispatch('portal/loadSysList')//系统门户列表 // console.log('//系统门户列表 end') delete window.mainPageInitErrorJump; return new Promise((resolve, reject) => { resolve(); }); }, setAppLoad({state,commit},status){ commit('SET_appStatus',status); } } })