<script>
import { mount, setBar, setLink } from "./utils/tool.js";

export default {
  onLaunch: function (options) {
    if (options.query) console.log("onLaunch", options.query);
    
    // 使用异步方式初始化，避免阻塞
    this.initApp();
    
    // 检查小程序更新
    this.checkForUpdate();
  },
  onShow: function () { },
  onHide: function () { },
  globalData: {
    systemInitIsComplete: null,
    HomePageStartRendering: [],
    systemclient: "mdyxb",
    _initTimer: null  // 初始化定时器引用
  },
  methods: {
    // 异步初始化应用
    async initApp() {
      try {
        // 设置系统信息
        setBar();
        setLink(this.globalData.systemclient);
        
        // 挂载工具函数
        mount();
        
        // 设置初始化超时保护（15秒后自动标记完成）
        this.globalData._initTimer = setTimeout(() => {
          if (!this.globalData.systemInitIsComplete) {
            console.warn('初始化超时，标记为完成状态');
            this.globalData.systemInitIsComplete = true;
            this.globalData.HomePageStartRendering.forEach(v => {
              try { v(); } catch (e) { console.error(e); }
            });
          }
        }, 15000);
        
      } catch (error) {
        console.error('应用初始化失败:', error);
        // 初始化失败时标记完成，避免一直等待
        this.globalData.systemInitIsComplete = true;
      }
    },
    
    // 检查小程序更新
    checkForUpdate() {
      // #ifdef MP-WEIXIN
      const updateManager = uni.getUpdateManager();
      
      updateManager.onCheckForUpdate((res) => {
        console.log('检查更新结果:', res);
      });
      
      updateManager.onUpdateReady(() => {
        uni.showModal({
          title: '更新完成',
          content: '新版本已下载完成，是否立即重启应用？',
          showCancel: true,
          cancelText: '稍后重启',
          confirmText: '立即重启',
          success: (modalRes) => {
            if (modalRes.confirm) {
              updateManager.applyUpdate();
            }
          },
          fail: () => {
            updateManager.applyUpdate();
          }
        });
      });
      
      updateManager.onUpdateFailed(() => {
        console.log('新版本下载失败');
        uni.showToast({
          title: '新版本下载失败，请稍后重试',
          icon: 'none'
        });
      });
      // #endif
    }
  }
};
</script>

<style lang="scss">
/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
@import "static/iconfont/iconfont.css";

body,
page {
  background: #f7f7f7;
  font-size: 14px;
}

/deep/.u-tabs {
  height: 44px;
  // background: #052E5D;
  background: #ffffff;

  .u-tabs__wrapper__nav {
    height: 44px;
    align-items: center;

    .u-tabs__wrapper__nav__item {
      height: 44px;
      flex-shrink: 0 !important;

      .u-tabs__wrapper__nav__item__text {
        font-size: 15px;
      }
    }
  }
}
</style>