/*
|
* @Author: 小明丶
|
* @Date: 2019-08-19 15:23:17
|
* @LastEditors: zxq
|
* @LastEditTime: 2022-08-12 10:18:32
|
* @Description:
|
*/
|
import Vue from 'vue';
|
import Vuex from "vuex";
|
import md5 from 'blueimp-md5';
|
import mutations from "./mutations";
|
// 数据持久化到session的插件
|
import createPersistedState from 'vuex-persistedstate';
|
import {calcArea} from '@/utils/index';
|
|
import {
|
SET_SESSION_ID,
|
SET_FOOTER_NAV,
|
SET_USER_PAGE,
|
SET_USER_INFO,
|
SET_AREA_LIST,
|
SET_MESSAGE_CONUT,
|
SET_INVITE_CODE,
|
} from './mutations-types';
|
|
Vue.use(Vuex);
|
|
export default new Vuex.Store({
|
plugins: [createPersistedState({ storage: window.sessionStorage })],
|
state: {
|
AppLoading: false,//加载
|
sessionId: '',//判断是否登录
|
userinfo: {}, //用户信息
|
footerNav:[],//底部导航
|
areaList:[],
|
msgCount: {},
|
},
|
getters: {
|
orgType(state){
|
return state.userinfo.orgType
|
},
|
orgId(state) {
|
return state.userinfo.orgId
|
}
|
},
|
mutations,
|
actions: {
|
openIdLogin({ commit, dispatch }, { vm, openId, next }){
|
let passwordLogin = {
|
openId:openId
|
};
|
//dispatch('getWechatUserInfo',{vm,openId,next})
|
Vue.prototype.$api.openIdLogin(passwordLogin).then(res=>{
|
if(res.body){
|
let userInfo = {}
|
userInfo.mblNo = res.body.account;//手机号修改成账号
|
userInfo.hasBankCard = res.body.hasBankCard;//1标识有我的银行卡0未绑定银行卡
|
commit(SET_USER_INFO,userInfo)
|
commit(SET_SESSION_ID, res.body.sessionId);//存储sessionId用于判断是否登录
|
dispatch('setUserMenu',{ vm, next })
|
vm.$router.push('/home/index')//跳转到指定页面
|
}else{
|
vm.$router.push('/login')
|
}
|
}).catch(err=>{
|
//vm.$router.push('/login')
|
})
|
},
|
login({ commit, dispatch }, { vm, mblNo, verCode, openId, next }) {
|
let tmpCode = md5(mblNo + verCode);
|
let passwordLogin = {
|
mblNo: mblNo,
|
verCode: verCode,
|
openId:openId
|
};
|
//dispatch('getWechatUserInfo',{vm,openId,next})
|
Vue.prototype.$api.login(passwordLogin).then(({body}) => {
|
// sessionStorage.jumpUrl = res.body.clientAccessDomain;
|
let { sessionId,openId,account,hasBankCard } = body;
|
let userInfo = {}
|
userInfo.mblNo = account;//手机号修改成账号
|
userInfo.hasBankCard = hasBankCard;//1标识有我的银行卡0未绑定银行卡
|
commit(SET_SESSION_ID, sessionId);//存储sessionId用于判断是否登录
|
localStorage.axx_ins_client_openId = openId||'';
|
commit(SET_USER_INFO,userInfo)
|
dispatch('setUserMenu',{ vm, next })
|
vm.$router.push('/home/index')//跳转到指定页面
|
});
|
},
|
// 获取微信用户信息
|
getWechatUserInfo({commit},{vm,openId,next}){
|
Vue.prototype.$api.wechatGetUserInfo({
|
openId:openId
|
}).then(res=>{
|
let obj = {}
|
obj = res.body
|
})
|
},
|
// 根据不同的权限设置用户拥有的菜单
|
setUserMenu({ commit }, { vm, lastLoginMgrId, next }) {
|
var arr = [
|
{
|
icon:'iconshouye',
|
icon_h:'iconshouye_h',
|
title:'首页',
|
to:'/home/index'
|
},
|
{
|
icon:'icongerenzhongxin',
|
icon_h:'icongerenzhongxin_h',
|
title:'我的',
|
to:'/home/personal'
|
}
|
]
|
commit(SET_FOOTER_NAV, arr);
|
},
|
// 获取验证码
|
getVercode({ commit },obj){
|
let form = {
|
mblNo:obj.mblNo,
|
verCodeType:obj.verCodeType
|
}
|
Vue.prototype.$api.getVerCode(form).then(res=>{
|
obj.vm.$tool.toast('验证码获取成功')
|
})
|
},
|
// 获取地区列表
|
getArea({commit}) {
|
Vue.prototype.$api.areaOptions().then((res) => {
|
let provList = res.body;
|
commit(SET_AREA_LIST,provList)
|
}).catch((err) => {
|
|
});
|
},
|
//消息count
|
getCount({commit}) {
|
|
}
|
},
|
modules: {
|
|
}
|
})
|