import { createApp } from 'vue';
|
import Cookies from 'js-cookie';
|
// element-plus
|
import ElementPlus from 'element-plus';
|
import locale from 'element-plus/lib/locale/lang/zh-cn';
|
|
// global css
|
import 'uno.css';
|
import '@/assets/styles/index.scss';
|
import 'element-plus/theme-chalk/dark/css-vars.css';
|
|
// App、router、store
|
import App from './App.vue';
|
import store from './store';
|
import router from './router';
|
|
// 自定义指令
|
import directive from './directive';
|
|
// 注册插件
|
import plugins from './plugins/index'; // plugins
|
import { download } from '@/utils/request';
|
|
// 预设动画
|
import animate from './animate';
|
|
// svg图标
|
import 'virtual:svg-icons-register';
|
import ElementIcons from '@/plugins/svgicon';
|
|
// permission control
|
import './permission';
|
|
import { useDict } from '@/utils/dict';
|
import { getConfigKey, updateConfigByKey } from '@/api/system/config';
|
import { parseTime, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi';
|
|
const app = createApp(App);
|
// 全局方法挂载
|
app.config.globalProperties.useDict = useDict;
|
app.config.globalProperties.getConfigKey = getConfigKey;
|
app.config.globalProperties.updateConfigByKey = updateConfigByKey;
|
app.config.globalProperties.download = download;
|
app.config.globalProperties.parseTime = parseTime;
|
app.config.globalProperties.handleTree = handleTree;
|
app.config.globalProperties.addDateRange = addDateRange;
|
app.config.globalProperties.selectDictLabel = selectDictLabel;
|
app.config.globalProperties.selectDictLabels = selectDictLabels;
|
app.config.globalProperties.animate = animate;
|
|
app.use(ElementIcons);
|
app.use(router);
|
app.use(store);
|
app.use(plugins);
|
// 自定义指令
|
directive(app);
|
|
// 使用element-plus 并且设置全局的大小
|
app.use(ElementPlus, {
|
locale: locale,
|
// 支持 large、default、small
|
size: Cookies.get('size') || 'default'
|
});
|
|
// 修改 el-dialog 默认点击遮照为不关闭
|
(app._context.components.ElDialog as any).props.closeOnClickModal.default = false;
|
|
app.mount('#app');
|