Newer
Older
Nanping_sponge_SJJC / src / main.js
@liyingjing liyingjing on 3 Nov 2023 3 KB 2
import { createApp } from 'vue';
import Cookies from 'js-cookie';
import 'globalthis/auto'
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 "@/assets/styles/index.scss"; // global css

import "@/assets/styles/media.scss"; // wel样式
// import "@/assets/styles/top.scss";
// 注册指令
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,
    getTongJiImageUrl,
} from '@/utils/ruoyi';

// 分页组件
import Pagination from '@/components/Pagination';
// 自定义表格工具组件
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 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.getTongJiImageUrl = getTongJiImageUrl;
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.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('FileUpload', FileUpload);
app.component('ImageUpload', ImageUpload);
app.component('ImagePreview', ImagePreview);
app.component('RightToolbar', RightToolbar);
app.component('Empty', Empty);

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) => {
};

directive(app);

// 使用element-plus 并且设置全局的大小
app.use(ElementPlus, {
    locale: locale,
    // 支持 large、default、small
    size: Cookies.get('size') || 'default',
});

app.mount('#app');