import Vue from 'vue' import App from './App' import store from './store' import router from './router' import { RouterMount } from './js_sdk/hhyang-uni-simple-router/index.js'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); import $mUtils from './common/utils.js'; import config from './config.js' Vue.prototype.$mUtils = $mUtils; Vue.prototype.config = config; Vue.config.productionTip = false App.mpType = 'app' Vue.prototype.$store = store const app = new Vue({ store, ...App }) //v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式 // #ifdef H5 RouterMount(app,'#app'); //使用router配置的路由 // #endif // #ifndef H5 app.$mount(); //为了兼容小程序及app端必须这样写才有效果 使用pages.json的path路由 // #endif Vue.prototype.websiteUrl = config.app_url; Vue.prototype.app_id = config.app_id; //h5发布路径 Vue.prototype.h5_addr = config.h5_addr; //#ifdef H5 app.$router.beforeResolve((to,from,next)=>{ let mode = uni.getSystemInfoSync().model; if(mode!='PC'){ // location.assign('/h5/#'+to.fullPath); next(); }else{ next(); } }) // app.$router.afterEach((to, from) => { // const u = navigator.userAgent.toLowerCase() // if (u.indexOf("like mac os x") < 0 || u.match(/MicroMessenger/i) != 'micromessenger') return // if (to.path !== global.location.pathname) { // location.assign(config.h5_addr + to.fullPath); // } // }) //#endif //get请求 Vue.prototype._get = function(path, data, success, fail, complete) { data = data || {}; data.token = uni.getStorageSync('token') || ''; data.app_id = this.getAppId(); uni.request({ url: this.websiteUrl + '/api/' + path, data: data, dataType: 'json', method: 'GET', success: (res) => { if (res.statusCode !== 200 || typeof res.data !== 'object') { return false; } if (res.data.code === -1) { // 登录态失效, 重新登录 console.log('登录态失效, 重新登录'); this.doLogin(); } else if (res.data.code === 0) { fail && fail(res); // this.showError(res.data.msg, function() { // fail && fail(res); // }); return false; } else { success && success(res.data); } }, fail: (res) => { fail && fail(res); }, complete: (res) => { uni.hideLoading(); complete && complete(res); }, }); }; //post请求 Vue.prototype._post = function(path, data, success, fail, complete) { data = data || {}; data.token = uni.getStorageSync('token') || ''; data.app_id = this.getAppId(); uni.request({ url: this.websiteUrl + '/api/' + path, data: data, dataType: 'json', method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded', }, success: (res) => { if (res.statusCode !== 200 || typeof res.data !== 'object') { return false; } if (res.data.code === -1) { // 登录态失效, 重新登录 console.log('登录态失效, 重新登录'); this.doLogin(); } else if (res.data.code === 0) { fail && fail(res); // this.showError(res.data.msg, function() { // fail && fail(res); // }); return false; } else { success && success(res.data); } }, fail: (res) => { console.log(res,333) fail && fail(res); }, complete: (res) => { uni.hideLoading(); complete && complete(res); }, }); }; Vue.prototype.doLogin = function() { uni.showToast({ icon:'none', title: '登录态失效,请重新登录', duration:1500 }) setTimeout(() => { uni.reLaunch({ url: '/pages/login' // 替换为你实际的首页路径 }); }, 1600); return ; }; /** * 获取应用ID */ Vue.prototype.getAppId = function() { return this.app_id || 10001; }; Vue.prototype.isWeixin = function(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } }; Vue.prototype.goPath = function(e){ if(/^http(s)?:.+/.test(e)){ let detail = { url: e } let str = JSON.stringify(detail); str = str.replace(/%/g, '%25'); uni.navigateTo({ url: "/pages/index/xiazai?detailData=" + encodeURIComponent(str) }); }else{ uni.navigateTo({ url: e }); } }; Vue.prototype.goBack = function(delta=1){ if(typeof delta == 'object'){ delta = 1; } uni.navigateBack({ delta: delta }); } Vue.prototype.router_push = (router)=>{ Vue.prototype.$Router.push(router); } Vue.prototype.router_replace = (router)=>{ Vue.prototype.$Router.replace(router); } Vue.prototype.router_replaceAll = (data)=>{ Vue.prototype.$Router.replaceAll(data); } Vue.prototype.router_pushTab = (router)=>{ Vue.prototype.$Router.pushTab(router); } Vue.prototype.router_back = (router,obj)=>{ Vue.prototype.$Router.back(router,obj); } if(process.env.NODE_ENV === 'development'){ Vue.prototype.directory = '/'; } if(process.env.NODE_ENV === 'production'){ Vue.prototype.directory = '/'; }