import { createApp } from 'vue' import Cookies from 'js-cookie' import ElementPlus from 'element-plus' import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言 import VxeTable from 'vxe-table' import 'vxe-table/lib/style.css' import VxeUI from 'vxe-pc-ui' import 'vxe-pc-ui/lib/style.css' import moment from 'moment' // import emitter from './eventBus'; moment.locale('zh-cn') import './assets/font-awesome-4.7.0/css/font-awesome.min.css' import '@/assets/styles/index.scss' // global css import '@/assets/styles/ezhizao/list.css' import '@/assets/styles/ezhizao/form.css' import '@/assets/styles/ezhizao/dialog.css' import App from './App' import store from './store' import router from './router' import directive from './directive' // directive // import Notification from './views/dialog/notification.vue' // 注册指令 import plugins from './plugins' // plugins import { download } from '@/utils/request' // svg图标 import 'virtual:svg-icons-register' import SvgIcon from '@/components/SvgIcon' import elementIcons from '@/components/SvgIcon/svgicon' import './permission' // permission control import { useDict } from '@/utils/dict' import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi' import { deepClone } from '@/utils/index' // 分页组件 import Pagination from '@/components/Pagination' // 分页组件 import PaginationMax from '@/components/PaginationMax' // 自定义表格工具组件 import RightToolbar from '@/components/RightToolbar' // 文件上传组件 import FileUpload from '@/components/FileUpload' // 图片上传组件 import ImageUpload from '@/components/ImageUpload' // 图片预览组件 import ImagePreview from '@/components/ImagePreview' // 自定义树选择组件 import TreeSelect from '@/components/TreeSelect' // 字典标签组件 import DictTag from '@/components/DictTag' // 富文本编辑器 import Editor from './components/Editor' // vueCountTo import CountTo from './components/VueCountTo' // echart import * as echarts from 'echarts' const app = createApp(App) // 全局方法挂载 app.config.globalProperties.useDict = useDict app.config.globalProperties.download = download app.config.globalProperties.parseTime = parseTime app.config.globalProperties.resetForm = resetForm app.config.globalProperties.handleTree = handleTree app.config.globalProperties.addDateRange = addDateRange app.config.globalProperties.selectDictLabel = selectDictLabel app.config.globalProperties.selectDictLabels = selectDictLabels app.config.globalProperties.deepClone = deepClone app.config.globalProperties.moment = moment app.config.globalProperties.echarts = echarts // 全局组件挂载 app.component('DictTag', DictTag) app.component('Pagination', Pagination) app.component('PaginationMax', PaginationMax) app.component('TreeSelect', TreeSelect) app.component('FileUpload', FileUpload) app.component('ImageUpload', ImageUpload) app.component('ImagePreview', ImagePreview) app.component('RightToolbar', RightToolbar) app.component('Editor', Editor) app.component('CountTo', CountTo) // app.component('Notification', Notification) // app.config.globalProperties.$emitter = emitter; // app.config.globalProperties.$showDialog = function (message) { // emitter.emit('show-dialog', message); // }; // const globalDialogInstance = app._context.components.Notification; // app.config.globalProperties.$showDialog = function (data) { // const instance = globalDialogInstance.setup(); // console.log(data) // // instance.$el.innerHTML = data; // document.body.appendChild(instance.$el); // instance.open(); // }; // app.mixin({ // onBeforeMount() { // globalVueInstance = this; // }, // onUnmounted() { // globalVueInstance = null; // } // }); app.use(router) app.use(store) app.use(plugins) app.use(elementIcons) app.use(VxeTable) app.use(VxeUI) app.component('svg-icon', SvgIcon) directive(app) // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: locale, // 支持 large、default、small size: Cookies.get('size') || 'default' }) app.mount('#app')