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.

142 lines
3.4 KiB

3 years ago
/* 公共引入,勿随意修改,修改时需经过确认 */
import Vue from 'vue'
import Cookies from 'js-cookie'
import 'normalize.css/normalize.css' // a modern alternative to CSS resets
import Element from 'element-ui'
import './styles/element-variables.scss'
import '@/styles/index.scss' // global css
import elTableTransfer from 'el-table-transfer'
Vue.use(elTableTransfer)
import App from './App'
import store from './store'
import router from './router'
import i18n from './lang' // internationalization
import './icons' // icon
import './permission' // permission control
import './utils/error-log' // error log
import axios from './axios'
import * as filters from './filters' // global filters全局过滤器
import 'babel-polyfill'
/** 常用flex组件 */
import Flexbox from "@/components/flexbox/flexbox";
import FlexboxItem from "@/components/flexbox/flexbox-item";
import './directives'
Vue.component('flexbox', Flexbox)
Vue.component('flexbox-item', FlexboxItem)
/** 事件传递 */
import VueBus from 'vue-bus'
Vue.use(VueBus)
Vue.prototype.$host = 'http://114.116.225.148:8000' // 服务器路径常量--用于存图片路径
//Vue.prototype.$host = 'http://localhost:9527' // 服务器路径常量
import infiniteScroll from 'vue-infinite-scroll'
Vue.use(infiniteScroll)
// 引入css
import 'vue-happy-scroll/docs/happy-scroll.css'
/**
* 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 ! ! !
*/
if (process.env.NODE_ENV === 'production') {
const { mockXHR } = require('../mock')
mockXHR()
}
Vue.use(Element, {
size: Cookies.get('size') || 'medium', // set element-ui default size
i18n: (key, value) => i18n.t(key, value)
})
// register global utility filters
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
Vue.prototype.$axios = axios
Vue.config.productionTip = false
/*使用icon*/
import './assets/iconfont/iconfont.css'
import './assets/iconfont/iconfont'
import IconSvg from '@/components/iconfontV/iconfont.vue'
//全局注册icon-svg
Vue.component('icon-svg', IconSvg)
/** 懒加载图片 */
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload, {
preLoad: 1.3,
error: require('@/assets/img/send_img.png'),
loading: require('@/assets/img/loading.gif'),
attempt: 1
})
import moment from 'moment'
moment.locale('zh_cn')
// 自定义全局点击空白处组件
import clickoutside from './directive'
Vue.directive('clickoutside', clickoutside)
// 注册一个全局自定义指令 `v-focus`
Vue.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus()
el.querySelector('input').focus()
}
})
//自定义指令
import empty from './directive/empty'
Vue.use(empty)
import photo from './directive/photo'
Vue.use(photo)
import cache from '@/utils/cache'
cache.loadingCache()
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
// 全局监听错误信息
Vue.config.errorHandler = function (err, vm, info) {
console.log('错误信息:::', err)
console.log('vue 实例', vm)
console.log('错误信息', info)
// handle error
// `info` 是 Vue 特定的错误信息,比如错误所在的生命周期钩子
// 只在 2.2.0+ 可用
}
new Vue({
el: '#app',
router,
store,
i18n,
render: h => h(App)
})