Files
2026-07-03 11:45:16 +08:00

66 lines
1.3 KiB
JavaScript

import Vue from 'vue'
import App from './App'
import store from './store'
Vue.config.productionTip = false
// 注册全局方法
Vue.prototype.getSystemInfo = function() {
return new Promise((resolve, reject) => {
uni.getSystemInfo({
success: resolve,
fail: reject
})
})
}
Vue.prototype.navigateTo = function(url) {
uni.navigateTo({ url })
}
Vue.prototype.switchTab = function(url) {
uni.switchTab({ url })
}
Vue.prototype.reLaunch = function(url) {
uni.reLaunch({ url })
}
Vue.prototype.redirectTo = function(url) {
uni.redirectTo({ url })
}
Vue.prototype.goBack = function(delta = 1) {
uni.navigateBack({ delta })
}
Vue.prototype.$showLoading = function(text = '加载中') {
uni.showLoading({ title: text, mask: false })
}
Vue.prototype.$hideLoading = function() {
uni.hideLoading()
}
// 全局字体工具
Vue.prototype.$fontSize = require('./utils/fontSize').default
// 🔥 全局混入:每个页面显示时自动应用字体设置
Vue.mixin({
onShow() {
// 从 Vuex 读取字体设置并应用到 DOM
const scale = this.$store.state.font.fontScale
if (scale && scale !== 1.0) {
this.$store.dispatch('font/applyFontScale', scale)
}
}
})
App.mpType = 'app'
const app = new Vue({
store,
...App
})
app.$mount()