app.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import appApi from '@/sheep/api/app';
  2. import { defineStore } from 'pinia';
  3. import $platform from '@/sheep/platform';
  4. import $router from '@/sheep/router';
  5. import user from './user';
  6. import sys from './sys';
  7. const app = defineStore({
  8. id: 'app',
  9. state: () => ({
  10. info: {
  11. // 应用信息
  12. name: '', // 商城名称
  13. logo: '', // logo
  14. version: '', // 版本号
  15. cdnurl: '', // 云存储域名
  16. filesystem: '', // 云存储平台
  17. user_protocol: {}, // 用户协议
  18. privacy_protocol: {}, // 隐私协议
  19. about_us: {}, // 关于我们
  20. copyright: '', // 版权信息 I
  21. copytime: '', // 版权信息 II
  22. },
  23. platform: {
  24. payment: [], // 支持的支付方式
  25. recharge_payment: [], // 支持的充值支付方式
  26. share: {
  27. methods: [], // 支持的分享方式
  28. forwardInfo: {}, // 默认转发信息
  29. posterInfo: {}, // 海报信息
  30. linkAddress: '', // 复制链接地址
  31. },
  32. auto_login: 0, // 自动登陆
  33. bind_mobile: 0, // 登陆后绑定手机号提醒 (弱提醒,可手动关闭)
  34. },
  35. chat: {},
  36. template: {
  37. // 店铺装修模板
  38. basic: {}, // 基本信息
  39. home: {
  40. // 首页模板
  41. style: {},
  42. data: [],
  43. },
  44. user: {
  45. // 个人中心模板
  46. style: {},
  47. data: [],
  48. },
  49. },
  50. shareInfo: {}, // 全局分享信息
  51. has_wechat_trade_managed: 0 // 小程序发货信息管理 0 没有 || 1 有
  52. }),
  53. actions: {
  54. // 获取Shopro应用配置和模板
  55. async init(templateId = null) {
  56. //检查网络
  57. const networkStatus = await $platform.checkNetwork();
  58. if (!networkStatus) {
  59. $router.error('NetworkError');
  60. }
  61. const res = await appApi.init(templateId);
  62. if (res.error === 0) {
  63. this.info = res.data.app;
  64. this.platform = res.data.platform;
  65. this.template = res.data.template;
  66. this.has_wechat_trade_managed = res.data.has_wechat_trade_managed;
  67. if (!res.data.template) {
  68. $router.error('TemplateError');
  69. }
  70. this.chat = res.data.chat;
  71. // 加载主题
  72. const sysStore = sys();
  73. sysStore.setTheme();
  74. // 模拟用户登录
  75. const userStore = user();
  76. if (userStore.isLogin) {
  77. userStore.loginAfter();
  78. }
  79. return Promise.resolve(true);
  80. } else {
  81. $router.error('InitError', res.msg || '加载失败');
  82. }
  83. },
  84. },
  85. persist: {
  86. enabled: true,
  87. strategies: [
  88. {
  89. key: 'app-store',
  90. },
  91. ],
  92. },
  93. });
  94. export default app;