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 "/src/store/modules/user"; // 注册指令 import plugins from "./plugins"; // plugins import { download, post, postFile, get, getFile, postUploadFile, postUploadAndDownloadFile } from "/src/utils/request"; // svg图标 import "virtual:svg-icons-register"; import SvgIcon from "/src/components/SvgIcon"; import elementIcons from "/src/components/SvgIcon/svgicon"; import "./permission"; // permission control import { useDict } from "/src/utils/dict"; import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from "/src/utils/ruoyi"; import { createPinia } from "pinia"; //引入pinia import piniaPluginPersist from "pinia-plugin-persist"; //引入pinia数据持久化插件 import VueLazyLoad from "vue-lazyload"; // 按钮防抖 import preReClick from "./directive/preReClick.js"; import { dictKeyValue, dictValueLabel, moneyFormat, calculationWeek, getDict, getDictOne, getPdf, getPdfTransverseA4, translateIntoEnglish, random, deepClone, timeInterval, compareTime, downloadFile, NumberToChinese, } from "/src/utils/util"; import "@/utils/table2excel"; // 分页组件 import Pagination from "/src/components/Pagination"; // 自定义树选择组件 import TreeSelect from "/src/components/TreeSelect"; // 多语言 import i18n from "/src/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.postFile = postFile; app.config.globalProperties.postUploadFile = postUploadFile; app.config.globalProperties.postUploadAndDownloadFile = postUploadAndDownloadFile; app.config.globalProperties.getFile = getFile; 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.downloadFile = downloadFile; app.config.globalProperties.NumberToChinese = NumberToChinese; 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)); //安装插件 app.use(VueLazyLoad, { preLoad: 1.3, error: "./assets/images/empty.png", attempt: 1, listenEvents: ["scroll"], }); directive(app); // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: locale, // 支持 large、default、small size: Cookies.get("size") || "default", }); app._context.components.ElDialog.props.closeOnClickModal.default = false; app.use(preReClick); app.mount("#app");