You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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: '<App/>', components: { App }})
// 防止按钮连续点击,则在el-button加上v-prevent-re-click
// 例如: <el-button v-prevent-re-click @click="searchTable()" type="primary">{{'查询'}}</el-button>
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秒,可自定义
} }); }});
|