import Vue from "vue" import Cookies from "js-cookie" import Element from "element-ui" 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 Print from "vue-print-nb" import "./assets/icons" // icon import "./permission" // permission control import "./tongji" // 百度统计 import { getDicts } from "@/api/system/dict/data" import { getConfigKey } from "@/api/infra/config" import { parseTime, resetForm, addDateRange, addBeginAndEndTime, addBeginAndEndTimeNew, handleTree } from "@/utils/ruoyi" import { removeEmpty } from "@/utils/index" import Pagination from "@/components/Pagination" // 自定义表格工具扩展 import RightToolbar from "@/components/RightToolbar" import DictSelector from "@/components/DictSelector" // 代码高亮插件 // import hljs from 'highlight.js' // import 'highlight.js/styles/github-gist.css' import { DICT_TYPE, getDictDataLabel, getDictDatas, getDictDatas2 } from "@/utils/dict" import i18n from "./i18n" // 全局方法挂载 Vue.prototype.getDicts = getDicts Vue.prototype.getConfigKey = getConfigKey Vue.prototype.parseTime = parseTime Vue.prototype.resetForm = resetForm Vue.prototype.addDateRange = addDateRange Vue.prototype.addBeginAndEndTime = addBeginAndEndTime Vue.prototype.addBeginAndEndTimeNew = addBeginAndEndTimeNew Vue.prototype.getDictDatas = getDictDatas Vue.prototype.getDictDatas2 = getDictDatas2 Vue.prototype.getDictDataLabel = getDictDataLabel Vue.prototype.DICT_TYPE = DICT_TYPE Vue.prototype.handleTree = handleTree Vue.prototype.removeEmpty = removeEmpty Date.prototype.format = function (format) { var date = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), "m+": this.getMinutes(), "s+": this.getSeconds(), "q+": Math.floor((this.getMonth() + 3) / 3), "S+": this.getMilliseconds() } if (/(y+)/i.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)) } for (var k in date) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length)) } } return format } // 全局组件挂载 Vue.component("DictTag", DictTag) Vue.component("DocAlert", DocAlert) Vue.component("Pagination", Pagination) Vue.component("RightToolbar", RightToolbar) Vue.component("DictSelector", DictSelector) // 字典标签组件 import DictTag from "@/components/DictTag" import DocAlert from "@/components/DocAlert" // 头部标签插件 import VueMeta from "vue-meta" Vue.use(directive) Vue.use(plugins) Vue.use(VueMeta) Vue.use(Print) // Vue.use(hljs.vuePlugin); // bpmnProcessDesigner 需要引入 import MyPD from "@/components/bpmnProcessDesigner/package/index.js" Vue.use(MyPD) import "@/components/bpmnProcessDesigner/package/theme/index.scss" import "bpmn-js/dist/assets/diagram-js.css" import "bpmn-js/dist/assets/bpmn-font/css/bpmn.css" import "bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css" import "bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css" // Form Generator 组件需要使用到 tinymce import Tinymce from "@/components/tinymce/index.vue" Vue.component("tinymce", Tinymce) import "@/icons" import axios from "axios" Vue.prototype.$axios = axios import "@/styles/index.scss" import "@/styles/custom.scss" /** * 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 i18n: (key, value) => i18n.t(key, value) }) // 重定向路由(关闭当前标签) Vue.prototype.$redirect = (path) => { let currentView = router.history.current router.replace(path) store.dispatch("tagsView/delView", currentView) } window.ElementUI = Element // 显示表单错误信息 Vue.prototype.$showFormValidateErrors = (errors) => { let vm = new Vue() let createElement = vm.$createElement let fieldList = Object.values(errors) Element.Notification({ title: i18n.$t("表单错误"), type: "warning", duration: 3000, message: createElement( "div", fieldList.map(function (errorList) { return createElement( "div", errorList.map((item) => { return createElement("div", item.message) }) ) }) ) }) } Vue.config.productionTip = false new Vue({ el: "#app", router, store, i18n, render: (h) => h(App) })