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 "@/assets/styles/index.scss"; // global css import App from "./App"; import store from "./store"; import router from "./router"; import directive from "./directive"; // directive import useUserStore from "@/store/modules/user"; // 注册指令 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 "./permission"; // permission control import { useDict } from "@/utils/dict"; import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from "@/utils/ruoyi"; import { createPinia } from 'pinia'//引入pinia import piniaPluginPersist from 'pinia-plugin-persist'//引入pinia数据持久化插件 import { dictKeyValue, dictValueLabel, moneyFormat, calculationWeek, getDict, getDictOne, getPdf, getPdfTransverseA4, translateIntoEnglish, random, deepClone, timeInterval, compareTime, } from "@/utils/util"; // 分页组件 import Pagination from "@/components/Pagination"; // 自定义树选择组件 import TreeSelect from "@/components/TreeSelect"; // 多语言 import i18n from "@/lang/index"; // 打印 import print from "vue3-print-nb"; const app = createApp(App); // 全局方法挂载 app.config.globalProperties.useDict = useDict; app.config.globalProperties.get = get; app.config.globalProperties.post = post; 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.useUserStore = useUserStore; // 全局组件挂载 app.component("Pagination", Pagination); app.component("TreeSelect", TreeSelect); app.use(router); app.use(store); app.use(plugins); app.use(i18n); app.use(elementIcons); app.use(print); app.component("svg-icon", SvgIcon); app.use(createPinia().use(piniaPluginPersist))//安装插件 directive(app); // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: locale, // 支持 large、default、small size: Cookies.get("size") || "default", }); app.mount("#app");