index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import {
  4. setSycCache
  5. } from '../config/cache'
  6. Vue.use(Vuex)
  7. const store = new Vuex.Store({
  8. state: {
  9. hasLogin: false,
  10. isUniverifyLogin: false,
  11. loginProvider: "",
  12. openid: null,
  13. unreadCount: 0,
  14. noMatchLeftWindow: true,
  15. location: {
  16. city: '',
  17. },
  18. },
  19. mutations: {
  20. login(state, provider) {
  21. state.hasLogin = true;
  22. state.loginProvider = provider;
  23. setSycCache('userInfo', provider)
  24. },
  25. logout(state) {
  26. state.hasLogin = false
  27. state.openid = null
  28. setSycCache('userInfo', {})
  29. },
  30. setOpenid(state, openid) {
  31. state.openid = openid
  32. },
  33. setLocation(state, data) {
  34. state.location = data
  35. },
  36. setUnreadCount(state, count) {
  37. state.unreadCount = count
  38. },
  39. },
  40. getters: {
  41. },
  42. actions: {
  43. // lazy loading openid
  44. getUserOpenId: async function({
  45. commit,
  46. state
  47. }) {
  48. return await new Promise((resolve, reject) => {
  49. if (state.openid) {
  50. resolve(state.openid)
  51. } else {
  52. uni.login({
  53. success: (data) => {
  54. commit('login')
  55. setTimeout(function() { //模拟异步请求服务器获取 openid
  56. const openid = '123456789'
  57. console.log('uni.request mock openid[' +
  58. openid + ']');
  59. commit('setOpenid', openid)
  60. resolve(openid)
  61. }, 1000)
  62. },
  63. fail: (err) => {
  64. console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
  65. reject(err)
  66. }
  67. })
  68. }
  69. })
  70. },
  71. getPhoneNumber: function({
  72. commit
  73. }, univerifyInfo) {
  74. return new Promise((resolve, reject) => {
  75. uni.request({
  76. url: 'https://97fca9f2-41f6-449f-a35e-3f135d4c3875.bspapp.com/http/univerify-login',
  77. method: 'POST',
  78. data: univerifyInfo,
  79. success: (res) => {
  80. const data = res.data
  81. if (data.success) {
  82. resolve(data.phoneNumber)
  83. } else {
  84. reject(res)
  85. }
  86. },
  87. fail: (err) => {
  88. reject(res)
  89. }
  90. })
  91. })
  92. }
  93. }
  94. })
  95. export default store