2026-08-17 11:32:40 +08:00
|
|
|
|
import App from './App'
|
|
|
|
|
|
import messages from './locale/index'
|
|
|
|
|
|
import uviewPlus from '@/uni_modules/uview-plus'
|
2026-08-31 15:06:55 +08:00
|
|
|
|
import { createSSRApp, h } from 'vue'
|
|
|
|
|
|
import { createI18n } from 'vue-i18n'
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
import VueClipboard from 'vue-clipboard2'
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
const i18nConfig = {
|
|
|
|
|
|
locale: uni.getLocale(),
|
|
|
|
|
|
messages
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const i18n = createI18n(i18nConfig)
|
|
|
|
|
|
|
2026-08-17 11:32:40 +08:00
|
|
|
|
export function createApp() {
|
|
|
|
|
|
const app = createSSRApp(App)
|
2026-08-31 15:06:55 +08:00
|
|
|
|
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
app.component('AsyncError', {
|
|
|
|
|
|
props: ['error'],
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
console.error('[AsyncPageError]', this.error)
|
|
|
|
|
|
},
|
|
|
|
|
|
render() {
|
|
|
|
|
|
const detail = import.meta.env.DEV && this.error
|
|
|
|
|
|
? `:${this.error.message || String(this.error)}`
|
|
|
|
|
|
: ''
|
|
|
|
|
|
return h('div', {
|
|
|
|
|
|
class: 'uni-async-error',
|
|
|
|
|
|
onClick: () => window.location.reload()
|
|
|
|
|
|
}, `页面加载失败${detail},点击屏幕重试`)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
app.use(VueClipboard);
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
app.use(i18n)
|
|
|
|
|
|
app.use(uviewPlus)
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
app
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|