import Vue from "vue"; import Cookies from "js-cookie"; import Element from "element-ui"; import ElementLocale from "element-ui/lib/locale"; import elementZhCN from "element-ui/lib/locale/lang/zh-CN"; import elementEn from "element-ui/lib/locale/lang/en"; import elementFr from "element-ui/lib/locale/lang/fr"; import elementEs from "element-ui/lib/locale/lang/es"; import elementPtBr from "element-ui/lib/locale/lang/pt-br"; import "./assets/styles/element-variables.scss"; import "@/assets/styles/index.scss"; // global css import "@/assets/styles/ruoyi.scss"; // ruoyi 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 } from "@/utils/ruoyi"; import { math } from "@/utils/math.js"; import I18nPlugin, { t as i18nT } from "@/lang"; import { getLanguage } from "@/utils/language"; const ELEMENT_LOCALE_MAP = { "zh-CN": elementZhCN, "en-US": elementEn, "fr-FR": elementFr, "es-ES": elementEs, "pt-BR": elementPtBr, }; const currentLanguage = getLanguage(); ElementLocale.use(ELEMENT_LOCALE_MAP[currentLanguage] || elementZhCN); Vue.prototype.$math = math; Vue.prototype.msgSuccess = function (msg) { this.$message({ showClose: true, message: msg, type: "success" }); }; Vue.prototype.msgWarning = function (msg) { this.$message({ showClose: true, message: msg, type: "warning" }); }; Vue.prototype.msgError = function (msg) { this.$message({ showClose: true, message: msg, type: "error" }); }; Vue.prototype.msgInfo = function (msg) { this.$message.info(msg); }; import "./assets/icons"; // icon import "./permission"; // permission control import { getDicts } from "@/api/system/dict/data"; import { getConfigKey } from "@/api/system/config"; import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree, addSESDateRange, handleCopy, formatAddress, } from "@/utils/ruoyi"; // 分页组件 import Pagination from "@/components/Pagination"; // 自定义表格工具组件 import RightToolbar from "@/components/RightToolbar"; // 富文本组件 import Editor from "@/components/Editor"; // 文件上传组件 import FileUpload from "@/components/FileUpload"; // 图片上传组件 import ImageUpload from "@/components/ImageUpload"; // 图片预览组件 import ImagePreview from "@/components/ImagePreview"; // 字典标签组件 import DictTag from "@/components/DictTag"; // 字典数据组件 import DictData from "@/components/DictData"; // 全局方法挂载 Vue.prototype.getDicts = getDicts; Vue.prototype.getConfigKey = getConfigKey; Vue.prototype.parseTime = parseTime; Vue.prototype.resetForm = resetForm; Vue.prototype.addDateRange = addDateRange; Vue.prototype.selectDictLabel = selectDictLabel; Vue.prototype.selectDictLabels = selectDictLabels; Vue.prototype.download = download; Vue.prototype.handleTree = handleTree; Vue.prototype.addSESDateRange = addSESDateRange; Vue.prototype.handleCopy = handleCopy; Vue.prototype.formatAddress = formatAddress; // 全局组件挂载 Vue.component("DictTag", DictTag); Vue.component("Pagination", Pagination); Vue.component("RightToolbar", RightToolbar); Vue.component("Editor", Editor); Vue.component("FileUpload", FileUpload); Vue.component("ImageUpload", ImageUpload); Vue.component("ImagePreview", ImagePreview); Vue.use(directive); Vue.use(plugins); Vue.use(I18nPlugin); DictData.install(); /** * If you don't want to use mock-server * you want to use MockJs for mock api * you can execute: mockXHR() * * Currently MockJs will be used in the production environment, * please remove it before going online! ! ! */ Vue.use(Element, { size: Cookies.get("size") || "medium", // set element-ui default size }); Vue.config.productionTip = false; if (typeof document !== "undefined") { document.documentElement.setAttribute("lang", currentLanguage); const appTitle = i18nT("app.sidebarTitle"); document.title = appTitle && appTitle !== "app.sidebarTitle" ? appTitle : process.env.VUE_APP_TITLE; } new Vue({ el: "#app", router, store, render: (h) => h(App), });