83 lines
1.8 KiB
JavaScript
83 lines
1.8 KiB
JavaScript
import App from './App'
|
|
import {
|
|
nextTick
|
|
} from "vue"
|
|
// 全局注册layout组件
|
|
import Layout from '@/components/layout.vue'
|
|
// 引入pinia
|
|
import pinia from "@/store/store.js"
|
|
// 引入uvie-plus
|
|
import uviewPlus from 'uview-plus'
|
|
// 引入封装好的request
|
|
import {
|
|
request
|
|
} from '@/utils/request.js';
|
|
// 引入vue-i18n多语言翻译
|
|
import i18n from '@/lang/index.js'
|
|
// 引入animate.css 具体查看 https://www.dowebok.com/demo/2014/98/
|
|
import 'animate.css';
|
|
/* 非app断网提示 */
|
|
// #ifndef APP-PLUS
|
|
uni.onNetworkStatusChange((res) => {
|
|
if (res.networkType === null || res.networkType === "unknown" || (!res.isConnected)) {
|
|
uni.showModal({
|
|
cancelText: i18n.global.t('modal.reStart'),
|
|
confirmText: i18n.global.t('modal.reLoad'),
|
|
content: i18n.global.t('modal.offNet'),
|
|
title: i18n.global.t('modal.title'),
|
|
success(res) {
|
|
if (res.confirm) {
|
|
uni.navigateBack(0)
|
|
} else {
|
|
uni.reLaunch({
|
|
url: '/pages/index/index'
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
// #endif
|
|
|
|
// Vue2
|
|
// #ifndef VUE3
|
|
import Vue from 'vue'
|
|
import './uni.promisify.adaptor'
|
|
Vue.config.productionTip = false
|
|
App.mpType = 'app'
|
|
const app = new Vue({
|
|
...App
|
|
})
|
|
app.$mount()
|
|
// #endif
|
|
|
|
|
|
// Vue3
|
|
// #ifdef VUE3
|
|
import {
|
|
createSSRApp
|
|
} from 'vue'
|
|
|
|
export function createApp() {
|
|
const app = createSSRApp(App)
|
|
app.component('Layout', Layout).use(uviewPlus).use(i18n).use(pinia)
|
|
// 必须使用 nextTick,不然会有加载顺序问题,导致绑定失败
|
|
nextTick(() => {
|
|
// 代替 Vue.prototype.$xxx 绑定
|
|
app.config.globalProperties.$request = request; // 自定义添加request
|
|
// 全局异常拦截
|
|
app.config.errorHandler = (err, instance, info) => {
|
|
console.log(err, instance, info);
|
|
uni.hideLoading()
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '❌ ' + err.message,
|
|
duration: 3000
|
|
})
|
|
}
|
|
})
|
|
return {
|
|
app
|
|
}
|
|
}
|
|
// #endif
|