index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. const store = new Vuex.Store({
  5. state: {
  6. hasLogin: false,
  7. loginProvider: "",
  8. openid: null,
  9. testvuex:false,
  10. colorIndex: 0,
  11. colorList: ['#FF0000','#00FF00','#0000FF']
  12. },
  13. mutations: {
  14. login(state, provider) {
  15. state.hasLogin = true;
  16. state.loginProvider = provider;
  17. },
  18. logout(state) {
  19. state.hasLogin = false
  20. state.openid = null
  21. },
  22. setOpenid(state, openid) {
  23. state.openid = openid
  24. },
  25. setTestTrue(state){
  26. state.testvuex = true
  27. },
  28. setTestFalse(state){
  29. state.testvuex = false
  30. },
  31. setColorIndex(state,index){
  32. state.colorIndex = index
  33. }
  34. },
  35. getters:{
  36. currentColor(state){
  37. return state.colorList[state.colorIndex]
  38. }
  39. },
  40. actions: {
  41. // lazy loading openid
  42. getUserOpenId: async function ({
  43. commit,
  44. state
  45. }) {
  46. return await new Promise((resolve, reject) => {
  47. if (state.openid) {
  48. resolve(state.openid)
  49. } else {
  50. uni.login({
  51. success: (data) => {
  52. commit('login')
  53. setTimeout(function () { //模拟异步请求服务器获取 openid
  54. const openid = '123456789'
  55. console.log('uni.request mock openid[' + openid + ']');
  56. commit('setOpenid', openid)
  57. resolve(openid)
  58. }, 1000)
  59. },
  60. fail: (err) => {
  61. console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
  62. reject(err)
  63. }
  64. })
  65. }
  66. })
  67. }
  68. }
  69. })
  70. export default store