You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
2.5 KiB

3 years ago
import Vue from 'vue';
import App from './App';
import store from './store'
import schema from 'async-validator'
3 years ago
import dialog from './utils/dialog'
import cookie from '@/utils/store/cookie'
import cuCustom from '@/components/colorui/components/cu-custom.vue'
import { parseRoute, _router, parseQuery } from '@/utils'
import { VUE_APP_RESOURCES_URL, VUE_APP_API_URL } from '@/config'
Vue.component('cu-custom', cuCustom)
Vue.config.productionTip = false
Vue.config.devtools = process.env.NODE_ENV !== 'production'
Vue.prototype.$validator = function(rule) {
return new schema(rule)
}
3 years ago
import uView from "uview-ui";
Vue.use(uView);
// 全局mixins,用于实现setData等功能';
import Mixin from './polyfill/mixins';
Vue.mixin(Mixin);
Vue.config.productionTip = false
App.mpType = 'app'
Vue.prototype.$store = store
const app = new Vue({
...App,
store,
});
Object.defineProperty(Vue.prototype, '$yrouter', {
get() {
return _router
},
})
Object.defineProperty(Vue.prototype, '$yroute', {
get() {
return this._route
},
})
3 years ago
let deviceType = ''
// #ifdef APP-PLUS
// App平台编译的代码
deviceType = 'app'
Vue.prototype.$platform = uni.getSystemInfoSync().platform
// #endif
// #ifdef MP-WEIXIN
// 微信小程序编译的代码
deviceType = 'routine'
// #endif
// #ifdef H5
// H5编译的代码
import { wechat, clearAuthStatus, oAuth, auth, toAuth, pay, openAddress, openShareAll, openShareAppMessage, openShareTimeline, wechatEvevt, ready, wxShowLocation } from '@/libs/wechat'
import { isWeixin } from '@/utils'
const CACHE_KEY = 'clear_0.0.1'
if (!cookie.has(CACHE_KEY)) {
cookie.clearAll()
cookie.set(CACHE_KEY, 1)
}
var urlSpread = parseQuery()['spread']
if (urlSpread) {
cookie.set('spread', urlSpread)
}
// #endif
// #ifdef H5
// H5编译的代码
// 判断是否是微信浏览器
async function init() {
if (isWeixin()) {
deviceType = 'weixin'
let wechatInit = wechat()
if (wechatInit) {
await oAuth()
}
} else {
deviceType = 'weixinh5'
}
}
init()
// #endif
Vue.prototype.$deviceType = deviceType
Vue.mixin({
onLoad() {
const { $mp } = this.$root
this._route = parseRoute($mp)
},
onShow() {
_router.app = this
_router.currentRoute = this._route
},
// 这里为了解决 .vue文件中 template 无法获取 VUE.prototype 绑定的变量
computed: {
$VUE_APP_RESOURCES_URL() {
return VUE_APP_RESOURCES_URL
},
},
})
store.commit('updateDevicetype', deviceType)
3 years ago
Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL
3 years ago
Vue.component('cu-custom', cuCustom)
app.$mount();