猫妈狗爸伴宠师小程序前端代码
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.

92 lines
1.9 KiB

  1. import storage from '@/utils/storage'
  2. import constant from '@/utils/constant'
  3. import {
  4. getInfo,
  5. login,
  6. logout
  7. } from '@/api/login'
  8. import {
  9. getIsLogin,
  10. getToken,
  11. removeToken,
  12. setIsLogin,
  13. setToken
  14. } from '@/utils/auth'
  15. import {
  16. currentUrl
  17. } from '@/utils/getUrl'
  18. import {
  19. wxLogin
  20. } from "../../api/system/user";
  21. import {
  22. getbaseInfo
  23. } from "@/api/home.js"
  24. const baseUrl = currentUrl
  25. const user = {
  26. state: {
  27. accessToken: uni.getStorageSync("token") || "",
  28. userInfo: uni.getStorageSync("baseInfo") ? JSON.parse(uni.getStorageSync("baseInfo")) : {}
  29. },
  30. mutations: {
  31. // 设置token
  32. setAccessToken(state, token) {
  33. state.accessToken = token;
  34. },
  35. // 设置用户信息
  36. setUserInfo(state, userInfo) {
  37. state.userInfo = userInfo;
  38. }
  39. },
  40. actions: {
  41. login(context) {
  42. uni.login({
  43. success: (res) => {
  44. const code = res.code
  45. uni.showLoading({
  46. mask : true
  47. });
  48. wxLogin({
  49. code
  50. }).then(res => {
  51. if (res.code === 200) {
  52. uni.setStorageSync("token", res.data.token)
  53. uni.setStorageSync("baseInfo", JSON.stringify(res.data.userInfo))
  54. context.commit('setAccessToken', res.data.token);
  55. context.commit('setUserInfo', res.data.userInfo);
  56. setIsLogin(true);
  57. uni.hideLoading();
  58. if (!res.data.userInfo.userName || !res.data.userInfo.userImage || !
  59. res.data.userInfo.userTelephone) {
  60. uni.navigateTo({
  61. url: "/pages/login/wxUserInfo"
  62. })
  63. } else {
  64. uni.navigateBack(-1)
  65. }
  66. }
  67. })
  68. }
  69. })
  70. },
  71. // 已登录的情况下调用接口获取用户信息,保证用户信息的实时更新
  72. async getUserInfo({
  73. commit,
  74. state
  75. }) {
  76. if (getIsLogin()) {
  77. const response = await getbaseInfo(state.userInfo.userId);
  78. if (response.code == 200) {
  79. commit("setUserInfo", response.data);
  80. uni.setStorageSync("baseInfo", JSON.stringify(response.data))
  81. }
  82. }
  83. }
  84. }
  85. }
  86. export default user