app.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. share: {
  26. methods: [], // 支持的分享方式
  27. forwardInfo: {}, // 默认转发信息
  28. posterInfo: {}, // 海报信息
  29. linkAddress: '', // 复制链接地址
  30. },
  31. auto_login: 0, // 自动登陆
  32. bind_mobile: 0, // 登陆后绑定手机号提醒 (弱提醒,可手动关闭)
  33. },
  34. chat: {},
  35. template: {
  36. // 店铺装修模板
  37. basic: {}, // 基本信息
  38. home: {
  39. // 首页模板
  40. style: {},
  41. data: [],
  42. },
  43. user: {
  44. // 个人中心模板
  45. style: {},
  46. data: [],
  47. },
  48. },
  49. shareInfo: {}, // 全局分享信息
  50. }),
  51. actions: {
  52. // 获取Shopro应用配置和模板
  53. async init(templateId = null) {
  54. //检查网络
  55. const networkStatus = await $platform.checkNetwork();
  56. if (!networkStatus) {
  57. $router.error('NetworkError');
  58. }
  59. const res = await appApi.init(templateId);
  60. if (res.code === 1) {
  61. this.info = res.data.app;
  62. this.platform = res.data.platform;
  63. this.template = res.data.template;
  64. if (!res.data.template) {
  65. $router.error('TemplateError');
  66. }
  67. this.chat = res.data.chat;
  68. // 加载主题
  69. const sysStore = sys();
  70. sysStore.setTheme();
  71. // 模拟用户登录
  72. const userStore = user();
  73. if (userStore.isLogin) {
  74. userStore.loginAfter();
  75. }
  76. return Promise.resolve(true);
  77. } else {
  78. $router.error('InitError', res.msg || uni.getLocale() == 'en' ? 'Loading failed' : '加载失败');
  79. }
  80. },
  81. },
  82. persist: {
  83. enabled: true,
  84. strategies: [
  85. {
  86. key: 'app-store',
  87. },
  88. ],
  89. },
  90. });
  91. export default app;