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.

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