import { createApp } from 'vue' import router from '@/router' import store from '@/store' import App from '@/App.vue' import { hasPermission } from '@/permission' import commonMixin from '@/mixins/common' import { cancelWithChange, clickOutside, noData } from '@/utils/tools' import { ClickOutside } from 'element-plus/lib/directives' import i18n from '@/i18n' import hljsVuePlugin from '@highlightjs/vue-plugin' import 'highlight.js/styles/color-brewer.css' import '@/assets/css/main.scss' // 样式入口 // import VueGridLayout from 'vue-grid-layout' import ElementPlus from 'element-plus' import dayjs from 'dayjs' import utc from 'dayjs/plugin/utc' // dependent on utc plugin import timezone from 'dayjs/plugin/timezone' import advancedFormat from 'dayjs/plugin/advancedFormat' import weekday from 'dayjs/plugin/weekday' const _ = require('lodash') // lodash工具 dayjs.extend(utc) dayjs.extend(timezone) dayjs.extend(advancedFormat) dayjs.extend(weekday) window.$dayJs = dayjs const app = createApp(App) app.use(router) app.use(store) app.use(ElementPlus) app.use(i18n) app.use(hljsVuePlugin) // app.use(VueGridLayout) app.directive('has', hasPermission) // 注册指令 app.directive('click-outside', clickOutside) app.directive('ele-click-outside', ClickOutside) app.directive('cancel', cancelWithChange) app.directive('no-data', noData) app.config.globalProperties.$_ = _ app.mixin(commonMixin) app.mount('#app') export default app