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.
123 lines
2.6 KiB
123 lines
2.6 KiB
import Vue from 'vue'; |
|
import App from './App'; |
|
|
|
import store from './store' |
|
import schema from 'async-validator' |
|
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) |
|
} |
|
|
|
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 |
|
}, |
|
}) |
|
|
|
console.log(Vue.prototype) |
|
console.log(Object.getPrototypeOf(Vue)) |
|
|
|
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) |
|
|
|
Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL |
|
|
|
Vue.component('cu-custom', cuCustom) |
|
app.$mount();
|
|
|