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.

user.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {
  2. setItem,
  3. removeItem,
  4. StorageKeys,
  5. getItem
  6. } from "@/utils/storage";
  7. import {
  8. defineStore
  9. } from "pinia";
  10. import {
  11. request,requestNew
  12. } from "@/utils/network/request";
  13. import {
  14. appId,
  15. getToken,
  16. wechatAppID,
  17. getOpenId,
  18. loginByNoPassword
  19. } from "@/utils/network/api";
  20. import {
  21. stringToJson
  22. } from "@/utils/network/encryption";
  23. import {
  24. confirm,
  25. msg,
  26. navTo
  27. } from "@/utils/utils";
  28. export const useUserStore = defineStore("userStore", {
  29. state: () => ({
  30. //访问令牌
  31. access_token: "",
  32. //openId
  33. openId: "",
  34. }),
  35. getters: {},
  36. actions: {
  37. //设置用户token
  38. saveToken(token) {
  39. this.access_token = token;
  40. setItem(StorageKeys.Token, token);
  41. },
  42. //设置openId
  43. saveOpenId(openId) {
  44. this.openId = openId;
  45. setItem(StorageKeys.OpenId, openId);
  46. },
  47. /*根据登录phoneNumber获取token信息 无感登录*/
  48. fetchToken(phoneNumber) {
  49. const options = {
  50. type: 2,
  51. data: {
  52. accountNumber: phoneNumber,
  53. loginSource: getItem("loginSource"),
  54. },
  55. method: "POST",
  56. showLoading: true,
  57. };
  58. return new Promise(async (resolve, reject) => {
  59. const res = await requestNew(loginByNoPassword, options);
  60. const data = res;
  61. console.log("data==",data)
  62. setItem("openId", data.openId);
  63. setItem("token", data.accessToken);
  64. resolve(data);
  65. }).catch((error) => {
  66. reject(error);
  67. });
  68. },
  69. /*退出登录*/
  70. loginOutNoConfirm() {
  71. msg("退出登录成功!");
  72. // //把state中的值恢复成默认值
  73. this.$reset();
  74. // //移除本地缓存
  75. removeItem(StorageKeys.Token);
  76. removeItem(StorageKeys.OpenId);
  77. uni.$emit('loginOut');
  78. uni.navigateTo({
  79. url: "/login/login"
  80. });
  81. },
  82. /*退出登录*/
  83. loginOut() {
  84. confirm(
  85. "确定要退出登录吗?",
  86. () => {
  87. this.loginOutNoConfirm();
  88. },
  89. "提示",
  90. true
  91. );
  92. },
  93. },
  94. });