main.js 4.57 KB
import Vue from 'vue'

import Cookies from 'js-cookie'

import Element from 'element-ui'
import '@/utils/el-components.js'
import './assets/styles/element-variables.scss'
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import { download } from '@/utils/request'

import './assets/icons' // icon
import './permission' // permission control
import { getDicts } from '@/api/system/dict/data'
import { getConfigKey } from '@/api/system/config'

import {
  getDictData,
  parseTime,
  resetForm,
  addDateRange,
  selectDictLabel,
  selectDictLabels,
  handleTree
} from '@/utils/ruoyi'
// 分页组件
import Pagination from '@/components/Pagination'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
// 富文本组件
import Editor from '@/components/Editor'
// 文件上传组件
import FileUpload from '@/components/FileUpload'
// 图片上传组件
import ImageUpload from '@/components/ImageUpload'
// 图片预览组件
import ImagePreview from '@/components/ImagePreview'
// 页面模板
import PageStandard from '@/components/Page/standard'
// 标准库搜索模板
import PageStandardOption from '@/components/Page/standardOption'
// 标准按钮
import PageButton from '@/components/Page/PageButton'
// 任务模版
import TaskStandard from '@/components/Page/TaskStandard'
// 自定义按钮
import HeaderButton from '@/components/Page/HeaderButton'

import FooterButton from '@/components/Page/FooterButton'

//空数据显示
import Empty from '@/components/Empty/index'
// 字典标签组件
import DictTag from '@/components/DictTag'
// 头部标签组件
import VueMeta from 'vue-meta'
// 字典数据组件
import DictData from '@/components/DictData'

import TalkItem from '@/components/TalkItem'

import { IconPark } from '@icon-park/vue/es/all'
import columnData from '@/components/columnData/index'

// import { install } from '@icon-park/vue/es/all';
// import '@icon-park/vue/styles/index.css';
// Vue.use(install)
// 使用mock模拟接口调用
// const { mockXHR } = require('../mock')
// mockXHR()

// 全局方法挂载
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime
Vue.prototype.getDictData = getDictData
Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('IconPark', IconPark)
Vue.component('TaskStandard', TaskStandard)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('Editor', Editor)
Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('PageStandard', PageStandard)
Vue.component('PageStandardOption', PageStandardOption)
Vue.component('PageButton', PageButton)
Vue.component('TalkItem', TalkItem)
Vue.component('EmptyData', Empty)
Vue.component('HeaderButton', HeaderButton)
Vue.component('FooterButton', FooterButton)
Vue.component('columnData', columnData)
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
import ModelDataSource from './utils/ModelDataSource'
Vue.use(ModelDataSource)
DictData.install()

/**
 * 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! ! !
 */

Vue.use(Element, {
  size: Cookies.get('size') || 'mini' // set element-ui default size
})

Vue.config.productionTip = false

// 导入apollo-boost模块实例化ApolloClient
import ApolloClient from 'apollo-boost'
import VueApollo from 'vue-apollo'

// 全局使用
Vue.use(VueApollo)

// 全局导入Echarts
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts
import { Message } from 'element-ui'
// 请求graphql使用的apollo API
const apolloClient = new ApolloClient({
  // 服务端Url
  uri: process.env.VUE_APP_CLIENT_API + '/query', //
  onError(error) {
    Message({ message: '车联网接口异常', type: 'error' })
    // 处理错误
  }
})
//创建apollo实例对象
const apolloProvider = new VueApollo({
  defaultClient: apolloClient //默认查询
})
new Vue({
  el: '#app',
  router,
  store,
  apolloProvider,
  render: h => h(App)
})