import Vue from 'vue' import Vuex from 'vuex' import { req,rootDocment } from '../config/util.js' import { api } from '../config/api.js' Vue.use(Vuex) Vue.prototype.$req = req Vue.prototype.$api = api var md5 = require('../config/md5.js'); const store = new Vuex.Store({ state: { hasLogin: false,//是否登录 rootDocment: rootDocment,//域名 loginProvider: "",//登录的平台 - 目前只是微信小程序 userInfo: null,//用户基础信息详情 systemInfo:{},//系统信息 brandCategoryList:[],//品牌分类数据 colorIndex: 0, colorList: ['#FF0000', '#00FF00', '#0000FF'], noMatchLeftWindow: true, active: 'componentPage', leftWinActive: '/pages/component/view/view', activeOpen: '', menu: [], univerifyErrorMsg: '' }, mutations: { login(state, provider) { state.hasLogin = true; state.loginProvider = provider; }, setSystemInfo(state,data){//设置系统信息 state.systemInfo = data }, logout(state) { state.hasLogin = false state.openid = null }, setOpenid(state, openid) { state.openid = openid }, setColorIndex(state, index) { state.colorIndex = index }, setMatchLeftWindow(state, matchLeftWindow) { state.noMatchLeftWindow = !matchLeftWindow }, setActive(state, tabPage) { state.active = tabPage }, setLeftWinActive(state, leftWinActive) { state.leftWinActive = leftWinActive }, setActiveOpen(state, activeOpen) { state.activeOpen = activeOpen }, setMenu(state, menu) { state.menu = menu }, setUniverifyLogin(state, payload) { typeof payload !== 'boolean' ? payload = !!payload : ''; state.isUniverifyLogin = payload; }, setUniverifyErrorMsg(state,payload = ''){ state.univerifyErrorMsg = payload } }, getters: { currentColor(state) { return state.colorList[state.colorIndex] } }, actions: { // lazy loading openid //loginInfo {'encrypted_data':encrypted_data,'iv':iv,'provider':provider} getUserInfo_login: async function({commit,state},loginInfo) { return await new Promise((resolve, reject) => { console.log((loginInfo.iv),'loginInfo') uni.login({ 'provider':loginInfo.provider, success: (data) => { if(data.code){ req(api.LOGIN,'get',{ 'code': data.code, 'iv': loginInfo.iv, 'encrypted_data': loginInfo.encryptedData, },function(res){ if(res && res.errno == 0){ commit('login') uni.setStorageSync('session_key',res.rst.session_key) uni.setStorageSync('isLogin',true) state.userInfo = res.rst.info uni.setStorageSync('admin_id',res.rst.info.id) uni.setStorageSync('ttl',res.rst.ttl) var sign=md5.hex_md5("random="+res.rst.random+"&ttl="+res.rst.ttl+"&user_id="+res.rst.info.id); uni.setStorageSync('sign',sign) resolve() }else{ reject({err:'interface',info:res.err}) } }) }else{ reject({err:'code获取失败'}) } }, fail: (err) => { console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err) reject({err:'uni.login失败',info:err}) } }) }) }, login_verified: function({commit}) {//过审核接口 return new Promise((resolve, reject) => { req(api.verified,'get',{ 'version': 'v6.7', },function(res){ if(res && res.errno == 0){ commit('login') uni.setStorageSync('session_key',res.rst.session_key) uni.setStorageSync('isLogin',true) state.userInfo = res.rst.data uni.setStorageSync('admin_id',res.rst.data.id) uni.setStorageSync('ttl',res.rst.ttl) var sign=md5.hex_md5("random="+res.rst.random+"&ttl="+res.rst.ttl+"&user_id="+res.rst.data.id); uni.setStorageSync('sign',sign) resolve() }else if(res.errno == 9014){ reject() } },(err)=>{ reject() }) }) }, login_first:function({commit,state}){//首次进入,登录 return new Promise((resolve, reject) => { uni.login({ success: (data) => { req(api.loginByUnionId,'get',{ 'code': data.code, },function(res){ if(res && res.errno == 0){ commit('login') uni.setStorageSync('session_key',res.rst.session_key) uni.setStorageSync('isLogin',true) state.userInfo = res.rst.info uni.setStorageSync('admin_id',res.rst.info.id) uni.setStorageSync('ttl',res.rst.ttl) var sign=md5.hex_md5("random="+res.rst.random+"&ttl="+res.rst.ttl+"&user_id="+res.rst.info.id); uni.setStorageSync('sign',sign) resolve() }else{ } },(err)=>{ }) } }) }) } } }) export default store