// #ifndef VUE3 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ // #endif // #ifdef VUE3 import { createStore } from 'vuex' const store = createStore({ // #endif state: { hasLogin: false, isUniverifyLogin: false, loginProvider: "", openid: null, testvuex: false, 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; }, logout(state) { state.hasLogin = false state.openid = null }, setOpenid(state, openid) { state.openid = openid }, setTestTrue(state) { state.testvuex = true }, setTestFalse(state) { state.testvuex = false }, 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 getUserOpenId: async function({ commit, state }) { return await new Promise((resolve, reject) => { if (state.openid) { resolve(state.openid) } else { uni.login({ success: (data) => { commit('login') setTimeout(function() { //模拟异步请求服务器获取 openid const openid = '123456789' console.log('uni.request mock openid[' + openid + ']'); commit('setOpenid', openid) resolve(openid) }, 1000) }, fail: (err) => { console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err) reject(err) } }) } }) }, getPhoneNumber: function({ commit }, univerifyInfo) { return new Promise((resolve, reject) => { uni.request({ url: 'https://97fca9f2-41f6-449f-a35e-3f135d4c3875.bspapp.com/http/univerify-login', method: 'POST', data: univerifyInfo, success: (res) => { const data = res.data if (data.success) { resolve(data.phoneNumber) } else { reject(res) } }, fail: (err) => { reject(res) } }) }) } } }) export default store