app.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. }),
  52. actions: {
  53. // 获取Shopro应用配置和模板
  54. async init(templateId = null) {
  55. //检查网络
  56. const networkStatus = await $platform.checkNetwork();
  57. if (!networkStatus) {
  58. $router.error('NetworkError');
  59. }
  60. const res = await appApi.init(templateId);
  61. if (res.error === 0) {
  62. this.info = res.data.app;
  63. this.platform = res.data.platform;
  64. this.template = res.data.template;
  65. if (!res.data.template) {
  66. $router.error('TemplateError');
  67. }
  68. this.chat = res.data.chat;
  69. // 加载主题
  70. const sysStore = sys();
  71. sysStore.setTheme();
  72. // 模拟用户登录
  73. const userStore = user();
  74. if (userStore.isLogin) {
  75. userStore.loginAfter();
  76. }
  77. return Promise.resolve(true);
  78. } else {
  79. $router.error('InitError', res.msg || '加载失败');
  80. }
  81. },
  82. },
  83. persist: {
  84. enabled: true,
  85. strategies: [
  86. {
  87. key: 'app-store',
  88. },
  89. ],
  90. },
  91. });
  92. export default app;