/* * @Author: 小明丶 * @Date: 2019-08-19 15:23:17 * @LastEditors: zxq * @LastEditTime: 2022-08-05 15:51:21 * @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 } = body; let userInfo = {} userInfo.mblNo = body.account;//手机号修改成账号 userInfo.hasBankCard = body.hasBankCard;//1标识有我的银行卡0未绑定银行卡 commit(SET_SESSION_ID, sessionId);//存储sessionId用于判断是否登录 localStorage.axx_ins_client_openId = body.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: { } })