- 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 'dayjs/locale/zh-cn'; //实现Element plus设置日历每周第一天从周一开始
- import '@/assets/styles/index.scss'; // global css
- import vue3SeamlessScroll from 'vue3-seamless-scroll';
- import 'animate.css'; //引入animate
-
- import App from './App';
- import moment from 'moment';
- import store from './store';
- import router from './router';
- import directive from './directive'; // directive
- import * as echarts from 'echarts';
- // 日历天气组件
- import DateSelect from '@/components/DateSelect';
-
- // 注册指令
- 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 { fixDict } from '@/utils/fixDict';
-
- //权限控制
- import './permission'; // permission control
-
- import { useDict } from '@/utils/dict';
-
- import 'amfe-flexible'; // rem 布局适配
-
- import {
- parseTime,
- resetForm,
- addDateRange,
- formatAddDateRange,
- handleTree,
- selectDictLabel,
- selectDictLabels,
- getImageUrl,
- selectArrListLabel
- } from '@/utils/ruoyi';
-
- // 分页组件
- import Pagination from '@/components/Pagination';
- // 自定义表格工具组件
- import RightToolbar from '@/components/RightToolbar';
- // 图片预览组件
- import ImagePreview from '@/components/ImagePreview';
- // 自定义树选择组件
- import TreeSelect from '@/components/TreeSelect';
- // 字典标签组件
- import DictTag from '@/components/DictTag';
- //空数据组件
- import Empty from '@/components/Empty';
-
- const app = createApp(App);
-
- // 全局方法挂载
- app.config.globalProperties.useDict = useDict;
- app.config.globalProperties.download = download;
- app.config.globalProperties.parseTime = parseTime;
- app.config.globalProperties.getImageUrl = getImageUrl;
- app.config.globalProperties.resetForm = resetForm;
- app.config.globalProperties.handleTree = handleTree;
- app.config.globalProperties.addDateRange = addDateRange;
- app.config.globalProperties.formatAddDateRange = formatAddDateRange;
- app.config.globalProperties.selectDictLabel = selectDictLabel;
- app.config.globalProperties.selectDictLabels = selectDictLabels;
- app.config.globalProperties.selectArrListLabel = selectArrListLabel;
-
- app.config.globalProperties.fixDict = fixDict;
- app.config.globalProperties.echarts = echarts;
- app.config.globalProperties.moment = moment;
-
- //全局变量定义
- app.config.globalProperties.refresh = 1;
-
- // 全局组件挂载
- app.component('DictTag', DictTag);
- app.component('Pagination', Pagination);
- app.component('TreeSelect', TreeSelect);
- app.component('ImagePreview', ImagePreview);
- app.component('RightToolbar', RightToolbar);
- app.component('Empty', Empty);
- app.component('DateSelect', DateSelect);
-
- app.use(router);
- app.use(store);
- app.use(plugins);
- app.use(elementIcons);
- app.use(vue3SeamlessScroll);
-
- app.component('svg-icon', SvgIcon); //全局注册
-
- // 错误打印
- app.config.errorHandler = (err, instance, info) => {
- // 处理错误,例如:报告给一个服务
- console.log('全局异常--', err, instance, info);
- };
-
- directive(app);
-
- // 使用element-plus 并且设置全局的大小
- app.use(ElementPlus, {
- locale: locale,
- // 支持 large、default、small
- size: Cookies.get('size') || 'default',
- });
-
- app.mount('#app');