You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
2.9 KiB
134 lines
2.9 KiB
// #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: '', |
|
routers: [],//权限路由 |
|
}, |
|
mutations: { |
|
setRouters(state, routers) { |
|
state.routers = routers; |
|
}, |
|
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
|
|
|