import Vue from "vue"; import App from "./App"; import router from "./router"; import Icon from "vue-svg-icon/Icon.vue"; import Mint from "mint-ui"; // import Resource from 'vue-resource' // 已卸载用axios代替 import store from "./store/index"; import axios from "./axios/index"; import ElementUI from "element-ui"; import VueClipboard from "vue-clipboard2"; // 复制 import state from "./event"; import Vant, { Swipe, SwipeItem, Skeleton, Switch, Notify, Tab, Tabs, Popup, DatetimePicker } from "vant"; import "vant/lib/index.css"; import moment from "moment"; import i18n from "@/locales"; import "./assets/css/style.css"; import "bootstrap/dist/css/bootstrap.min.css"; import "mint-ui/lib/style.css"; import "element-ui/lib/theme-chalk/index.css"; import "lib-flexible"; // import md5 from 'js-md5' import * as filters from "@/utils/utils"; import * as allocation from "@/utils/allocation"; import animated from "animate.css"; // npm install animate.css --save安装,在引入 import "../static/css/public2.css"; import locale from "element-ui/lib/locale/lang/en"; // lang i18n import echarts from "echarts"; Vue.prototype.$echarts = echarts; Vue.prototype.$moment = moment; // import VueTouch from 'vue-touch' Vue.use(Swipe); Vue.use(SwipeItem); Vue.use(Skeleton); Vue.use(animated); Vue.use(ElementUI); Vue.use(VueClipboard); Vue.use(ElementUI, { locale }); Vue.use(ElementUI, { size: "medium", // set element-ui default size i18n: (key, value) => i18n.t(key, value) }); // Vue.use(VueTouch, { name: 'v-touch' }) // // Vue.prototype.$md5 = md5 // VueTouch.config.swipe = { // threshold: 100 // 手指左右滑动距离 // } Vue.use(Vant); Vue.use(Mint); Vue.use(Tab); // Vue.prototype._i18n = i18n Vue.use(Tabs, Popup, DatetimePicker, Switch, Notify); Vue.component("icon", Icon); Vue.config.productionTip = false; Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]); }); Object.keys(allocation).forEach(key => { Vue.prototype[key] = allocation[key]; }); Vue.prototype.$state = state; Vue.prototype.$setgoindex = function() { if (window.history.length <= 1) { if (location.href.indexOf("?") === -1) { window.location.href = location.href + "?goindex=true"; } else if ( location.href.indexOf("?") !== -1 && location.href.indexOf("goindex") === -1 ) { window.location.href = location.href + "&goindex=true"; } } }; Vue.prototype.setCookie = function(name, value, day) { if (day !== 0) { // 当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除 var curDate = new Date(); var curTamp = curDate.getTime(); var curWeeHours = new Date(curDate.toLocaleDateString()).getTime() - 1; var passedTamp = curTamp - curWeeHours; var leftTamp = 24 * 60 * 60 * 1000 - passedTamp; var leftTime = new Date(); leftTime.setTime(leftTamp + curTamp); document.cookie = name + "=" + escape(value) + ";expires=" + leftTime.toGMTString(); } else { document.cookie = name + "=" + escape(value); } }; Vue.prototype.getCookie = function(name) { var arr; var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); arr = document.cookie.match(reg); if (arr) { return unescape(arr[2]); } else { return null; } // document.cookie = name + "=" + escape(value); }; Vue.prototype.clearCookie = function() { this.setCookie("USER_TOKEN", "", -1); }; Vue.prototype.checkCookie = function() { var user = this.getCookie("USER_TOKEN"); if (user !== "") { alert("Welcome again " + user); } else { user = prompt("Please enter your name:", ""); if (user !== "" && user != null) { this.setCookie("USER_TOKEN", user, 365); } } }; router.beforeEach((to, from, next) => { store.state.select = to.path; document.title = to.meta.title; console.log(store.state, "store.state", !!store.state.token); if (to.meta.requireAuth && !!!store.state.token) { next("/login"); } // if (!to.query.url && from.query.url) { // to.query.url = from.query.url // } next(); }); // // 设置title // router.beforeEach((to, from, next) => { // if (to.meta.title) {//如果设置标题,拦截后设置标题 // if(store.state && store.state.siteInfo && store.state.siteInfo.siteName){ // document.title = store.state.siteInfo.siteName + '-' + to.meta.title // }else{ // document.title = to.meta.title // } // } // next() // }) /* eslint-disable no-new */ new Vue({ el: "#app", // i18n, store, router, axios, render: h => h(App) }).$mount("#app");