// 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);
}
}
})