| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | import Vue from 'vue'import ElementUI from 'element-ui'import dayjs from 'dayjs'import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'import isBetween from 'dayjs/plugin/isBetween'import numeral from 'numeral'import lodash from 'lodash'import qs from 'qs'import { permission } from "@/utils/directivePage";dayjs.extend(isSameOrBefore)dayjs.extend(isSameOrAfter)dayjs.extend(isBetween)import * as constant from '@/constant'import 'normalize.css/normalize.css' // A modern alternative to CSS resetsimport 'default-passive-events'import 'babel-polyfill'import './theme/index.css'// import './global.scss'// import 'element-ui/lib/theme-chalk/index.css'import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18nimport '@/styles/index.scss' // global cssimport App from './App'import store from './store'import installComponents from '@/components/install'import router from './router'import './utils/vueFilter'import './utils/directive'// Vue.use(vueFilter)import '@/icons' // iconimport '@/permission' // permission controlimport { Message } from 'element-ui'const showMessage = Symbol('showMessage')class DonMessage {  success (options, single = true) {    this[showMessage]('success', options, single)  }  warning (options, single = true) {    this[showMessage]('warning', options, single)  }  info (options, single = true) {    this[showMessage]('info', options, single)  }  error (options, single = true) {    this[showMessage]('error', options, single)  }  [showMessage] (type, options, single) {    if (single) {      // 判断是否已存在Message      if (document.getElementsByClassName('el-message').length === 0) {        Message[type](options)      }    } else {      Message[type](options)    }  }}// 修改默认属性ElementUI.Dialog.props.closeOnClickModal.default = false;// ElementUI.Dialog.props.destroyOnClose.default = true;console.log(ElementUI.Input)// 全局修改选择如果value与label都为数字0则清空const SelectValueWatch = ElementUI.Select.watch.valueElementUI.Select.watch.value = function (newValue, oldValue) {  SelectValueWatch.call(this, newValue, oldValue)  if (this.selected && this.selected.value === 0 && this.selected.currentLabel === 0 && newValue !== oldValue) {    this.handleClearClick.call(this, {      stopPropagation: () => { }    })  }}Vue.use(ElementUI)Vue.use(installComponents)// 命名根据需要,DonMessage只是在文章中使用export const $message = new DonMessage()Vue.prototype.$message = $message// 全局移除数字滚动document.addEventListener('mousewheel', function () {  if (document.activeElement.type === 'number') {    document.activeElement.blur()  }})document.addEventListener('keydown', function (event) {  // console.log(document.activeElement,event.keyCode)  if(event.keyCode == 13){    setTimeout(res=>{      document.activeElement.blur()    },300)  }})/** * If you don't want to use mock-server * you want to use MockJs for mock api * you can execute: mockXHR() * * Currently MockJs will be used in the production environment, * please remove it before going online! ! ! */// import { mockXHR } from '../mock'// if (process.env.NODE_ENV === 'production') {//   mockXHR()// }// 高德地址import VueAMap from 'vue-amap'Vue.use(VueAMap)// 检测浏览器是否缩放// import '@/utils/zoom'// set ElementUI lang to ENVue.use(ElementUI, { locale })Vue.config.productionTip = false// 将selects全局混入当前vue实例中Vue.mixin({  computed: {    selects() {      return store.state.selects    },    $helpers() {      return {        dayjs,        numeral,        lodash,        qs,        permission,      }    },    $constant() {      return constant    }  },  methods: {    changeHash(value) {      const origin = window.location.origin      history.replaceState("", "", `${origin}/#${this.$route.path}?opt=${value}`)    },    getFullPermission(str){      let routeName = this.$route.path      return str+routeName    }  }})new Vue({  el: '#app',  router,  store,  render: h => h(App)})
 |