app.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { defineStore } from "pinia";
  2. import { getUserInfo } from "@/api/user.js";
  3. import Cache from "@/utils/cache.js";
  4. import { USER_INFO,CITYINFO,TOKEN} from "@/config/cache.js";
  5. import { uniLogin } from "@/utils/util.js";
  6. export const useAppStore = defineStore("app", {
  7. state: () => {
  8. return {
  9. userInfo: Cache.get(USER_INFO) ? JSON.parse(Cache.get(USER_INFO)) : null,
  10. token: Cache.get(TOKEN) || null,
  11. agentId: '',//当前选择的智能体ID
  12. useBalance:false,//是否使用晓豆
  13. msgContent:'',//当前跳转过来带的问题
  14. moneyUnit:'AI豆',//默认晓豆
  15. title: "财税知识平台",//小程序名字
  16. statusBarHeight: 0,//状态栏高度
  17. navbarHeight: 0,//导航栏总高度
  18. bgDefaultImage:"https://fs.bjwdys.com/miniapp/bg-default.png?time="+Date.now(),//纯色背景图,带时间戳防止缓存
  19. };
  20. },
  21. getters: {
  22. $userInfo: (state) => state.userInfo,
  23. onShareAppMessageObj:(state) =>({
  24. title: "财税知识平台",
  25. path: `/pages/index/index?scene=inviteCode=${state.userInfo?.inviteCode || ''}`, // 分享路径
  26. })
  27. },
  28. // 也可以这样定义
  29. // state: () => ({ count: 0 })
  30. actions: {
  31. UPDATE_agentId(agentId) {
  32. this.agentId = agentId
  33. },
  34. UPDATE_msgContent(msgContent) {
  35. this.msgContent = msgContent
  36. },
  37. UPDATE_TOKEN(token) {
  38. this.token = token
  39. Cache.set(TOKEN, token);
  40. },
  41. LOGOUT() {
  42. this.token = undefined;
  43. this.userInfo = undefined;
  44. Cache.clear(USER_INFO);
  45. Cache.clear(TOKEN);
  46. },
  47. UPDATE_USERINFO(userInfo) {
  48. this.userInfo = userInfo;
  49. Cache.set(USER_INFO, userInfo);
  50. uniLogin();
  51. },
  52. async USERINFO(force) {
  53. try {
  54. const res = await getUserInfo();
  55. this.UPDATE_USERINFO(res.data);
  56. return res.data;
  57. } catch (e) {
  58. // 可以处理异常
  59. }
  60. },
  61. UPDATE_statusBarHeight(statusBarHeight) {
  62. this.statusBarHeight = statusBarHeight;
  63. // 导航栏总高度 = 状态栏高度 + 自定义导航内容高度(通常 44px)
  64. this.navbarHeight = statusBarHeight + 44;
  65. },
  66. }
  67. });