index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex) // vue的插件机制
  4. let userInfo = uni.getStorageSync('userInfo')
  5. // Vuex.Store 构造器选项
  6. const store = new Vuex.Store({
  7. // 为了不和页面或组件的data中的造成混淆,state中的变量前面建议加上$符号
  8. state: {
  9. active: 4,
  10. token: uni.getStorageSync('token') || '',
  11. // 用户信息
  12. userInfo: userInfo && JSON.parse(userInfo) || {}
  13. },
  14. getters: {
  15. // 获取用户信息
  16. getActive(state) {
  17. return state.active
  18. },
  19. getToken(state) {
  20. return state.token || uni.getStorageSync('token')
  21. }
  22. },
  23. mutations: {
  24. // 修改用户信息
  25. changeUseinf(state, payload) {
  26. payload().then(res => {
  27. console.log('wxLoginRes', res, state);
  28. state.userInfo = res
  29. })
  30. // state.userInfo = payload
  31. },
  32. changeActive(state, payload) {
  33. state.active = payload
  34. },
  35. wxLogininfo(state, payload) {
  36. console.log('wxLogin', state, payload)
  37. uni.login({
  38. provider: 'weixin', //使用微信登录
  39. success: function ({ code }) {
  40. console.log('loginRes', code);
  41. payload({
  42. code: code
  43. }).then(res => {
  44. console.log('wxLoginRes', res, code);
  45. uni.$u.toast("登录成功");
  46. state.token = res.token;
  47. state.userInfo = res.user;
  48. uni.setStorageSync('token', res.token);
  49. uni.setStorageSync('userInfo', JSON.stringify(res.user));
  50. uni.$u.route("/pages/home/webview",
  51. {
  52. url: 'https://sit-nanhuacs.4dage.com/web/index.html#/home',
  53. data: 20
  54. });
  55. })
  56. }
  57. });
  58. }
  59. }
  60. })
  61. export default store