import Vue from 'vue' import App from '@/App' import router from '@/router' // api: https://github.com/vuejs/vue-router import store from '@/store' // api: https://github.com/vuejs/vuex import VueCookie from 'vue-cookie' // api: https://github.com/alfhen/vue-cookie // 时间处理 import dayjs from 'dayjs'; import '@/element-ui' // api: https://github.com/ElemeFE/element import '@/icons' // api: http://www.iconfont.cn/ import '@/element-ui-theme' import '@/assets/scss/index.scss' import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios import { isAuth } from '@/utils' import cloneDeep from 'lodash/cloneDeep' //import JsonExcel from 'vue-json-excel' import i18n from '@/i18n/i18n' import './utils/directives' import decimalUtil from '@/utils/decimalUtil.js' //import getLodop from '@/utils/LodopFuncs.js' //import pdf from 'vue-pdf' import { debounce,throttle} from '@/utils/common.js' import Vant from 'vant' import 'vant/lib/index.css' //Vue.component('downloadExcel', JsonExcel) //Vue.component('pdf', pdf) Vue.use(Vant) Vue.use(VueCookie) Vue.config.productionTip = false // 非生产环境, 适配mockjs模拟数据 // api: https://github.com/nuysoft/Mock if (process.env.NODE_ENV !== 'production') { require('@/mock') } // 挂载全局 Vue.prototype.$http = httpRequest // ajax请求方法 Vue.prototype.isAuth = isAuth // 权限方法 //Vue.prototype.getLodop = getLodop // 打印 Vue.prototype.decimalUtil = decimalUtil // 计算 Vue.prototype.dayjs = dayjs //时间格式化插件 2021-11-02 Vue.prototype.debounce = debounce // 防抖 Vue.prototype.throttle = throttle // 限流 // 组件预加载 router.beforeResolve((to, from, next) => { const matched = router.getMatchedComponents(to) Promise.all(matched.map(c => { if (typeof c === 'function') return c() return Promise.resolve() })).then(next) }) // 保存整站vuex本地储存初始状态 window.SITE_CONFIG['storeState'] = cloneDeep(store.state) /* eslint-disable no-new */ new Vue({ el: '#app', router, i18n, store, template: '', components: { App } }) // 防止按钮连续点击,则在el-button加上v-prevent-re-click // 例如: {{'查询'}} Vue.directive('prevent-re-click', { inserted (el, binding) { el.addEventListener('click', () => { if (!el.disabled) { el.disabled = true; // 禁用按钮 setTimeout(() => { el.disabled = false; // 恢复按钮 }, binding.value || 1000); // 默认1秒,可自定义 } }); } });