import "./assets/css/main.css"; import 'element-ui/lib/theme-chalk/index.css'; import ElementUI from 'element-ui'; import i18n from './components/common/i18n' import Vue from 'vue' import Vuex from 'vuex' import store from './store/index'; import App from './App' import router from './router' import axios from 'axios'; import {post, get, put, del} from './http.js' import Pagination from "./components/common/pagination"; //引入全局分页组件 import searchInput from "./components/common/searchInput"; //搜索框组件 import projectBox from './components/common/rightBox/projectBox'; //project弹框组件 import moduleBox from './components/common/rightBox/moduleBox'; //module弹框组件 import editEndpointBox from './components/common/rightBox/editEndpointBox'; //endpoint弹框组件 import addEndpointBox from './components/common/rightBox/addEndpointBox'; //endpoint弹框组件 import assetAddUnit from "./components/page/asset/assetAddUnit"; //资产添加组件 import assetEditUnit from "./components/page/asset/assetEditUnit"; //资产添加组件 Vue.component("Pagination", Pagination); Vue.component("searchInput", searchInput); Vue.component("project-box", projectBox); Vue.component("module-box", moduleBox); Vue.component("edit-endpoint-box", editEndpointBox); Vue.component("add-endpoint-box", addEndpointBox); Vue.component("assetAddUnit", assetAddUnit); Vue.component("assetEditUnit", assetEditUnit); Vue.prototype.$axios = axios; Vue.prototype.$post = post; Vue.prototype.$get = get; Vue.prototype.$put = put; Vue.prototype.$delete = del; Vue.config.productionTip = false; Vue.use(ElementUI); Vue.use(Vuex); const clickoutside = { // 初始化指令 bind(el, binding, vnode) { function documentHandler(e) { // 这里判断点击的元素是否是本身,是本身,则返回 if (el.contains(e.target)) { return false; } // 判断指令中是否绑定了函数 if (binding.expression) { // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法 if (binding.arg) { binding.value(e, binding.arg); } else { binding.value(e); } } } // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听 el.__vueClickOutside__ = documentHandler; document.addEventListener('click', documentHandler); }, unbind(el, binding) { // 解除事件监听 document.removeEventListener('click', el.__vueClickOutside__); delete el.__vueClickOutside__; }, }; Vue.directive('clickoutside', clickoutside ) /* eslint-disable no-new */ new Vue({ el: '#app', router, i18n, store, components: {App}, template: '' }) router.beforeEach((to, from, next) => { if (to.path === '/login') { next() } else { let token = sessionStorage.getItem('token'); if (token) { next() } else { next({ path: '/dashboard' }) } } })