import Vue from 'vue' import App from './App' // import router from "./router"; 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 "@/assets/iconfont/iconfont"; // import "@/assets/iconfont/iconfont.css"; // // import "@/assets/js/media_750"; // // import "vue-ydui/dist/ydui.base.css"; // import "@/assets/css/base.less"; // import "@/assets/css/reset.less"; // import "@/assets/css/style.less"; // // 引入微信jssdk // var jweixin = require('jweixin-module') // jweixin.ready(function(){ // // TODO // }); 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); }; Vue.config.productionTip = false App.mpType = 'app' Vue.prototype.$store = store const app = new Vue(App) Vue.mixin({ onLoad() { const { $mp } = this.$root this._route = parseRoute($mp) // this.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL; this._data.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL; }, onShow() { _router.app = this _router.currentRoute = this._route } }) Object.defineProperty(Vue.prototype, '$yrouter', { get() { return _router } }) Object.defineProperty(Vue.prototype, '$yroute', { get() { return this._route } }) Vue.prototype.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL Vue.component('cu-custom', cuCustom); // #ifdef APP-PLUS // App平台编译的代码 Vue.prototype.$deviceType = 'app' store.commit('updateDevicetype', 'app') Vue.prototype.$platform = uni.getSystemInfoSync().platform // #endif // #ifdef MP-WEIXIN // 微信小程序编译的代码 Vue.prototype.$deviceType = 'routine' store.commit('updateDevicetype', 'routine') // #endif // !!! ps 不建议在 template 中使用 $deviceType 去判断当前环境,很有可能出现 $deviceType 为 undefined 导致判断出错的问题,可以在 script 模块中正常使用 // 建议通过 store 去获取 $deviceType 可以保证 template 中取到的值有效 // import { mapState, mapMutations, mapActions } from 'vuex'; // computed: { // ...mapState(['$deviceType']) // }, // #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"]; cookie.set("spread", urlSpread || 0); // #endif async function init() { // #ifdef H5 // H5编译的代码 // 判断是否是微信浏览器 if (isWeixin()) { Vue.prototype.$deviceType = 'weixin' store.commit('updateDevicetype', 'weixin') let wechatInit = await wechat() console.log(wechatInit) if (wechatInit) { await oAuth() app.$mount() } } else { Vue.prototype.$deviceType = 'weixinh5' store.commit('updateDevicetype', 'weixinh5') app.$mount() } // #endif // #ifndef H5 app.$mount() // #endif } init()