| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <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>
|