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 '@/utils/table2excel' import '@/assets/styles/index.scss' // global css import App from './App' import store from './store' import router from './router' import directive from './directive' // directive // 注册指令 import plugins from './plugins' // plugins import { download, post, postTwo, get } from '@/utils/request' // svg图标 import 'virtual:svg-icons-register' import SvgIcon from '@/components/SvgIcon' import elementIcons from '@/components/SvgIcon/svgicon' // 标题组件 import TitleInfo from "@/components/TitleInfo/index.vue"; // 路由权限 import './permission' // permission control // userStore import useUserStore from "@/store/modules/user"; import { useDict } from '@/utils/dict' import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi' import { dictKeyValue, dictValueLabel, moneyFormat, calculationWeek, getDict, getDictOne, getPdf, getPdfTransverseA4, translateIntoEnglish, random, deepClone, timeInterval, compareTime, getImgBase64, msgTip, msgConfirm, getFile } from '@/utils/util' // 分页组件 import Pagination from '@/components/Pagination' // 自定义表格工具组件 import RightToolbar from '@/components/RightToolbar' // 图片上传组件 import ImageUpload from "@/components/ImageUpload" // 图片预览组件 import ImagePreview from "@/components/ImagePreview" // 自定义树选择组件 import TreeSelect from '@/components/TreeSelect' // 字典标签组件 import DictTag from '@/components/DictTag' // 多语言 import i18n from "@/lang/index"; // 打印 import print from "vue3-print-nb" // import * as echarts from "echarts"; // import 'echarts-gl' // import './world.js' const app = createApp(App) console.log(i18n.global.t('login.welcomeToLogin')) // 全局方法挂载 app.config.globalProperties.useDict = useDict app.config.globalProperties.get = get app.config.globalProperties.post = post app.config.globalProperties.msgTip = msgTip app.config.globalProperties.msgConfirm = msgConfirm app.config.globalProperties.getFile = getFile app.config.globalProperties.postTwo = postTwo 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.t = i18n.global.t //字典回显 app.config.globalProperties.dictKeyValue = dictKeyValue app.config.globalProperties.dictValueLabel = dictValueLabel app.config.globalProperties.moneyFormat = moneyFormat app.config.globalProperties.calculationWeek = calculationWeek app.config.globalProperties.getDict = getDict app.config.globalProperties.getDictOne = getDictOne app.config.globalProperties.getPdf = getPdf app.config.globalProperties.getPdfTransverseA4 = getPdfTransverseA4 app.config.globalProperties.translateIntoEnglish = translateIntoEnglish app.config.globalProperties.random = random app.config.globalProperties.deepClone = deepClone app.config.globalProperties.timeInterval = timeInterval app.config.globalProperties.compareTime = compareTime app.config.globalProperties.getImgBase64 = getImgBase64 // user app.config.globalProperties.useUserStore = useUserStore // 全局组件挂载 app.component('DictTag', DictTag) app.component('Pagination', Pagination) app.component('TreeSelect', TreeSelect) app.component('ImageUpload', ImageUpload) app.component('ImagePreview', ImagePreview) app.component('RightToolbar', RightToolbar) app.component('svg-icon', SvgIcon) app.component('TitleInfo', TitleInfo) // use app.use(router) app.use(store) app.use(plugins) app.use(i18n) app.use(elementIcons) app.use(print) directive(app) // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: locale, // 支持 large、default、small size: Cookies.get('size') || 'default' }) // 是否可以通过点击 modal 关闭 Dialog app._context.components.ElDialog.props.closeOnClickModal.default = false; // 当关闭 Dialog 时,销毁其中的元素 app._context.components.ElDialog.props.destroyOnClose.default = true; app.mount('#app')