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 'element-ui/lib/theme-chalk/icon.css';import '@/assets/scss/index.scss'import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
import { isAuth } from '@/utils'import { accessField } 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 selectDiv from '@/views/common/selectDiv.vue'import {resetForm} from "./utils/system";import echarts from "echarts";import highlightContainer from './utils/highlight';import field from './utils/field';import 'element-ui/lib/theme-chalk/divider.css'import 'element-ui/lib/theme-chalk/drawer.css'// import 'element-ui/lib/theme-chalk/dialog.css'
import 'element-ui/lib/popover'Vue.prototype.$echarts = echarts;
Vue.component('downloadExcel', JsonExcel)Vue.component('pdf', pdf)Vue.use(VueCookie)Vue.config.productionTip = falseVue.component('selectDiv', selectDiv);Vue.directive('highlight-container', highlightContainer);Vue.directive('field', field);// 非生产环境, 适配mockjs模拟数据 // api: https://github.com/nuysoft/Mock
if (process.env.NODE_ENV !== 'production') { require('@/mock')}
// 挂载全局
Vue.prototype.resetForm = resetFormVue.prototype.$http = httpRequest // ajax请求方法
Vue.prototype.isAuth = isAuth // 权限方法
Vue.prototype.accessField = accessField // 权限方法
Vue.prototype.getLodop = getLodop // 打印
Vue.prototype.decimalUtil = decimalUtil // 计算
Vue.prototype.dayjs = dayjs //时间格式化插件 2021-11-02
Vue.prototype.debounce = debounce // 防抖
Vue.prototype.throttle = throttle // 限流
// 保存整站vuex本地储存初始状态
window.SITE_CONFIG['storeState'] = cloneDeep(store.state)
/* eslint-disable no-new */new Vue({ el: '#app', router, i18n, store, template: '<App/>', components: { App }, mounted() { Vue.nextTick(() => { // 在这里调用自定义指令的绑定逻辑
this.$el.querySelectorAll('[v-highlight-container]').forEach(el => { highlightContainer.bind.call({ el, bind: {} }, el); }); }); }})
// 在Vue实例初始化之前添加全局事件监听器 type为number的输入库禁用上下箭头
document.addEventListener('keydown', function(event) { // 获取触发事件的元素
const targetElement = event.target;
// 如果触发事件的元素是<input type="number">,并且按下的是上下箭头键
if (targetElement.tagName === 'INPUT' && targetElement.type === 'number' && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) { // 阻止默认行为,取消按上下箭头键改变值的行为
event.preventDefault(); }});
Vue.prototype.$clearHighLight = function () {
// 查找所有带有 highlight 类的元素
const highlightedElements = this.$el.querySelectorAll('.highlight');
// 移除 highlight 类
highlightedElements.forEach(el => { el.classList.remove('highlight'); });};
Vue.prototype.$triggerInputEvent = function (inputRef) {
const inputElement = inputRef.$el.querySelector('.el-input__inner'); if (inputElement) { inputElement.dispatchEvent(new Event('input')); }};
|