| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | import appApi from '@/sheep/api/app';import diyTemplateApi from '@/sheep/api/promotion/diy/template';import { defineStore } from 'pinia';import $platform from '@/sheep/platform';import $router from '@/sheep/router';import user from './user';import sys from './sys';const app = defineStore({  id: 'app',  state: () => ({    info: {      // 应用信息      name: '', // 商城名称      logo: '', // logo      version: '', // 版本号      copyright: '', // 版权信息 I      copytime: '', // 版权信息 II      cdnurl: '', // 云存储域名      filesystem: '', // 云存储平台    },    platform: {      share: {        methods: [], // 支持的分享方式        forwardInfo: {}, // 默认转发信息        posterInfo: {}, // 海报信息        linkAddress: '', // 复制链接地址      },      bind_mobile: 0, // 登陆后绑定手机号提醒 (弱提醒,可手动关闭)    },    chat: {},    template: {      // 店铺装修模板      basic: {}, // 基本信息      home: {        // 首页模板        style: {},        data: [],      },      user: {        // 个人中心模板        style: {},        data: [],      },    },    shareInfo: {}, // 全局分享信息    has_wechat_trade_managed: 0 // 小程序发货信息管理  0 没有 || 1 有  }),  actions: {    // 获取Shopro应用配置和模板    async init(templateId = null) {      //检查网络      const networkStatus = await $platform.checkNetwork();      if (!networkStatus) {        $router.error('NetworkError');      }      // 加载装修配置      await adaptTemplate(this.template, templateId)      const res = await appApi.init(templateId);      if (res.error === 0) {        this.info = res.data.app;        this.platform = res.data.platform;        // TODO 芋艿:未接入        // this.template = res.data.template;        // this.has_wechat_trade_managed = res.data.has_wechat_trade_managed;        // if (!res.data.template) {        //   $router.error('TemplateError');        // }        // TODO 芋艿:未接入        // this.chat = res.data.chat;        // 加载主题        const sysStore = sys();        sysStore.setTheme();        // 模拟用户登录        const userStore = user();        if (userStore.isLogin) {          userStore.loginAfter();        }        return Promise.resolve(true);      } else {        $router.error('InitError', res.msg || '加载失败');      }    },  },  persist: {    enabled: true,    strategies: [      {        key: 'app-store',      },    ],  },});// todo: @owen 先做数据适配,后期重构const adaptTemplate = async (appTemplate, templateId) => {  const { data: diyTemplate } = templateId      // 查询指定模板,一般是预览时使用      ? await diyTemplateApi.getDiyTemplate(templateId)      : await diyTemplateApi.getUsedDiyTemplate();  // 模板不存在  if (!diyTemplate) {    $router.error('TemplateError');    return  }  const tabBar = diyTemplate?.property?.tabBar;  if (tabBar) {    appTemplate.basic.tabbar = tabBar    if (tabBar?.theme) {      appTemplate.basic.theme = tabBar?.theme;    }  }  appTemplate.home = diyTemplate?.home;  appTemplate.user = diyTemplate?.user;}export default app;
 |