dataease-dm/frontend/src/main.js

149 lines
4.4 KiB
JavaScript
Raw Normal View History

2021-03-03 15:06:52 +08:00
import Vue from 'vue'
import Cookies from 'js-cookie'
import '@/styles/index.scss' // global css
import ElementUI from 'element-ui'
2022-05-31 14:31:57 +08:00
import Vuetify from 'vuetify'
2021-03-03 15:06:52 +08:00
import Fit2CloudUI from 'fit2cloud-ui'
2021-11-24 18:49:41 +08:00
import i18n from './lang' // internationalization
2021-03-03 15:06:52 +08:00
import App from './App'
import store from './store'
import router from './router'
2021-03-17 18:50:29 +08:00
import message from './utils/message'
2021-03-03 15:06:52 +08:00
import '@/icons' // icon
import '@/permission' // permission control
import api from '@/api/index.js'
import filter from '@/filter/filter'
2021-03-05 16:07:44 +08:00
import directives from './directive'
2021-03-25 19:19:21 +08:00
import VueClipboard from 'vue-clipboard2'
2021-03-29 21:24:33 +08:00
import widgets from '@/components/widget'
2021-05-31 14:07:12 +08:00
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
2021-05-07 11:04:50 +08:00
import './utils/dialog'
2022-11-07 14:38:37 +08:00
import DeComplexInput from '@/components/business/conditionTable/DeComplexInput'
import DeComplexSelect from '@/components/business/conditionTable/DeComplexSelect'
import DeViewSelect from '@/components/deViewSelect'
2022-11-07 17:28:54 +08:00
import RemarkEditor from '@/views/chart/components/componentStyle/dialog/RemarkEditor'
2022-07-25 17:47:33 +08:00
import TitleRemark from '@/views/chart/view/TitleRemark'
2022-11-07 14:38:37 +08:00
import '@/components/canvas/customComponent' // 注册自定义组件
2022-11-07 17:28:54 +08:00
import deBtn from '@/components/deCustomCm/DeBtn.vue'
2021-10-19 15:00:24 +08:00
import '@/utils/DateUtil'
2022-02-10 18:17:41 +08:00
import draggable from 'vuedraggable'
import deWebsocket from '@/websocket'
2022-05-10 17:08:00 +08:00
import { GaodeMap } from '@antv/l7-maps'
2022-11-07 14:38:37 +08:00
import * as echarts from 'echarts'
import UmyUi from 'umy-ui'
// 全屏插件
import fullscreen from 'vue-fullscreen'
import VueFriendlyIframe from 'vue-friendly-iframe'
import vueToPdf from 'vue-to-pdf'
import VueVideoPlayer from 'vue-video-player'
import 'video.js/dist/video-js.css'
// 控制标签宽高成比例的指令
import proportion from 'vue-proportion-directive'
2021-03-25 19:16:32 +08:00
Vue.config.productionTip = false
2021-03-25 19:19:21 +08:00
Vue.use(VueClipboard)
2021-03-29 21:24:33 +08:00
Vue.use(widgets)
2022-10-11 15:09:32 +08:00
Vue.component('Draggable', draggable)
2021-03-03 15:06:52 +08:00
Vue.prototype.$api = api
Vue.prototype.$echarts = echarts
2022-05-10 17:08:00 +08:00
Vue.prototype.$gaodeMap = GaodeMap
Vue.use(UmyUi)
Vue.use(fullscreen)
2022-03-27 19:06:37 +08:00
Vue.use(VueFriendlyIframe)
2022-05-31 14:31:57 +08:00
Vue.use(Vuetify)
2021-07-01 12:12:43 +08:00
// import TEditor from '@/components/Tinymce/index.vue'
// Vue.component('TEditor', TEditor)
2021-03-03 15:06:52 +08:00
/**
* 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') {
2021-06-10 10:53:19 +08:00
// const { mockXHR } = require('../mock')
// mockXHR()
2021-03-03 15:06:52 +08:00
}
// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui按如下方式声明
2022-06-26 16:26:23 +08:00
ElementUI.Dialog.props.closeOnClickModal.default = false
ElementUI.Dialog.props.closeOnPressEscape.default = false
2021-03-03 15:06:52 +08:00
Vue.use(ElementUI, {
size: Cookies.get('size') || 'medium', // set element-ui default size
i18n: (key, value) => i18n.t(key, value)
})
Vue.use(Fit2CloudUI, {
i18n: (key, value) => i18n.t(key, value)
})
2021-07-01 10:51:44 +08:00
// Vue.use(VueAxios, axios)
2021-03-03 15:06:52 +08:00
Vue.use(filter)
2021-03-05 16:07:44 +08:00
Vue.use(directives)
2021-03-17 18:50:29 +08:00
Vue.use(message)
2021-05-31 14:07:12 +08:00
Vue.component('Treeselect', Treeselect)
2021-06-16 18:03:59 +08:00
Vue.component('DeComplexInput', DeComplexInput)
Vue.component('DeComplexSelect', DeComplexSelect)
Vue.component('DeViewSelect', DeViewSelect)
2022-07-25 17:47:33 +08:00
Vue.component('RemarkEditor', RemarkEditor)
Vue.component('TitleRemark', TitleRemark)
2022-10-11 15:09:32 +08:00
Vue.component('DeBtn', deBtn)
2022-08-17 13:52:10 +08:00
2021-03-03 15:06:52 +08:00
Vue.config.productionTip = false
2021-03-05 16:07:44 +08:00
Vue.use(vueToPdf)
2021-11-08 19:03:09 +08:00
Vue.use(VueVideoPlayer)
Vue.use(proportion)
2021-05-18 16:07:19 +08:00
Vue.prototype.hasDataPermission = function(pTarget, pSource) {
if (this.$store.state.user.user.isAdmin) {
return true
}
2021-05-18 16:07:19 +08:00
if (pSource && pTarget) {
return pSource.indexOf(pTarget) > -1
}
return false
}
2021-05-31 14:07:12 +08:00
Vue.prototype.checkPermission = function(pers) {
const permissions = store.getters.permissions
const hasPermission = pers.every(needP => {
const result = permissions.includes(needP)
return result
})
return hasPermission
}
Vue.use(deWebsocket)
Vue.prototype.$currentHttpRequestList = new Map()
Vue.prototype.$cancelRequest = function(cancelkey) {
if (cancelkey) {
if (cancelkey.indexOf('/**') > -1) {
Vue.prototype.$currentHttpRequestList.forEach((item, key) => {
key.indexOf(cancelkey.split('/**')[0]) > -1 && item('Operation canceled by the user.')
})
} else {
Vue.prototype.$currentHttpRequestList.get(cancelkey) && Vue.prototype.$currentHttpRequestList.get(cancelkey)('Operation canceled by the user.')
}
}
}
2021-03-03 15:06:52 +08:00
new Vue({
2021-03-31 18:23:43 +08:00
2021-03-03 15:06:52 +08:00
router,
store,
i18n,
render: h => h(App)
2021-03-31 18:23:43 +08:00
}).$mount('#app')