/* * @Description: In User Settings Edit * @Author: your name * @Date: 2019-09-24 12:34:06 * @LastEditTime: 2019-09-24 12:34:06 * @LastEditors: your name */ // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import FastClick from 'fastclick' import router from './router' import App from './App' import Vuex from 'vuex' import vuexI18n from 'vuex-i18n' import flexible from './common/ydui.flexible' import components from './components/component' import {componentInstall, appStyle} from 'hls-easy-ui' /** * 指令 */ import directives from './scripts/directives' import filter from './scripts/filter' import './scripts/prototype' /** * 组件 */ // import component from './components/component.js' import { Tabbar, TabbarItem, } from 'vux' /** * 弹框组件 */ import hlsPopup from './scripts/hlsPopup' /** * http */ import {post, get} from './scripts/hlsHttp' /** 全局函数hlsUtil**/ import hlsUtil from './scripts/hlsUtil' /** end**/ /** * jpush jmessage */ import Jpush from './scripts/jpushService' import Jmessage from './scripts/jmessageService' if (process.env.CONFIG_ENV === 'uat') { const VConsole = require('vconsole') new VConsole() // eslint-disable-line } Vue.use(componentInstall) Vue.use(components) Vue.use(appStyle) Vue.use(flexible) Vue.use(directives) Vue.use(filter) // Vue.use(component) Vue.use(Vuex) Vue.component('tabbar', Tabbar) Vue.component('tabbar-item', TabbarItem) /** i18n **/ let store = new Vuex.Store({ modules: { i18n: vuexI18n.store, }, }) Vue.use(vuexI18n.plugin, store) Vue.prototype.hlsPopup = window.hlsPopup = hlsPopup Vue.prototype.$devicePixelRatio = 2 Vue.prototype.$post = post Vue.prototype.$get = get let hlsHttp = { get: get, post: post, } Vue.prototype.hlsHttp = window.hlsHttp = hlsHttp Vue.prototype.hlsUtil = window.hlsUtil = hlsUtil Vue.prototype.Jpush = window.Jpush = Jpush Vue.prototype.Jmessage = window.Jmessage = Jmessage /** * 全局返回上一页面 * @param index */ let routeGo = function (index) { if (!index) { index = -1 } this.$router.go(index) } Vue.prototype.$routeGo = routeGo FastClick.attach(document.body) Vue.config.productionTip = false let backButtonPressedOnceToExit vum.$vumPlatform.ready(function () { if ((vum.Platform.isAndroid()) || (vum.Platform.isIOS())) { /* window.getRegistrationID = function (callback){ callback('') } */ try { setTimeout(function () { navigator.splashscreen.hide() if (window.plugins.jPushPlugin) { Jpush._init() } if (window.JMessagePlugin) { Jmessage._init({'isOpenMessageRoaming': true}) } }, 40) } catch (e) { } if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true) cordova.plugins.Keyboard.disableScroll(true) } if (window.StatusBar) { window.StatusBar.styleDefault() window.StatusBar.backgroundColorByName('white') } const winSize = vum.$vumPlatform.getWinSize() if (winSize.width) { window.localStorage.setItem('width', winSize.width) } if (winSize.height) { window.localStorage.setItem('height', winSize.height) } } }) vum.$vumPlatform.registerBackButtonAction(function (e) { // let vm = this let time let path = router.currentRoute.path if (path === '/tab/home' || path === '/tab/message' || path === '/tab/my-info') { // 进入主界面清除缓存 if (backButtonPressedOnceToExit === true) { vum.Platform.exitApp() } else { backButtonPressedOnceToExit = true hlsPopup.showLongBottom('再次点击返回键退出应用') clearTimeout(time) time = setTimeout(function () { backButtonPressedOnceToExit = false }, 1500) } } else if (path === '/login' || path === '/finger-login' || path === '/gesture') { vum.Platform.exitApp() } else { router.go(-1) } e.preventDefault() return false }, 101) /* eslint-disable no-new */ new Vue({ data () { return { pathList: [], transitionName: null, } }, router, watch: { // 监听路由变化 $route (to, from) { document.body.scrollTop = 0 document.documentElement.scrollTop = 0 }, }, render: h => h(App), }).$mount('#app-box')