131 lines
2.8 KiB
JavaScript
131 lines
2.8 KiB
JavaScript
|
// #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
|