| | |
| | | // src/main.js |
| | | import Vue from "vue"; |
| | | |
| | | import Cookies from "js-cookie"; |
| | | import "babel-polyfill"; |
| | | 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 "@/assets/styles/index.scss"; |
| | | import "@/assets/styles/ruoyi.scss"; |
| | | import App from "./App"; |
| | | import store from "./store"; |
| | | import router from "./router"; |
| | | import directive from "./directive"; // directive |
| | | import plugins from "./plugins"; // plugins |
| | | import directive from "./directive"; |
| | | import plugins from "./plugins"; |
| | | import { download } from "@/utils/request"; |
| | | import Print from "vue-print-nb"; |
| | | |
| | | import JsonExcel from "vue-json-excel"; |
| | | |
| | | Vue.component("downloadExcel", JsonExcel); |
| | | |
| | | import "./assets/icons"; // icon |
| | | import "./permission"; // permission control |
| | | import "./assets/icons"; |
| | | import "./permission"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import { getConfigKey } from "@/api/system/config"; |
| | | import { |
| | |
| | | selectDictLabels, |
| | | handleTree, |
| | | } from "@/utils/ruoyi"; |
| | | // 分页组件 |
| | | import Pagination from "@/components/Pagination"; |
| | | // 分页组件 |
| | | |
| | | import { monitorZoom } from "@/utils/devicePixelRatio.js"; |
| | | const m = monitorZoom(); |
| | | if (window.screen.width * window.devicePixelRatio >= 3840) { |
| | | document.body.style.zoom = 100 / (Number(m) / 2); // 屏幕为 4k 时 |
| | | } else { |
| | | document.body.style.zoom = 100 / Number(m); |
| | | } |
| | | |
| | | // 自定义表格工具组件 |
| | | 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 VueMeta from "vue-meta"; |
| | | // 字典数据组件 |
| | | import DictData from "@/components/DictData"; |
| | | |
| | | import * as echarts from "echarts"; |
| | | import VueBarcode from "vue-barcode"; |
| | | |
| | | // 全局方法挂载 |
| | | Vue.component("downloadExcel", JsonExcel); |
| | | Vue.component("barcode", VueBarcode); |
| | | Vue.component("DictTag", DictTag); |
| | | Vue.component("Pagination", Pagination); |
| | | Vue.component("Editor", Editor); |
| | | Vue.component("FileUpload", FileUpload); |
| | | Vue.component("ImageUpload", ImageUpload); |
| | | Vue.component("ImagePreview", ImagePreview); |
| | | |
| | | Vue.prototype.getDicts = getDicts; |
| | | Vue.prototype.getConfigKey = getConfigKey; |
| | | Vue.prototype.parseTime = parseTime; |
| | |
| | | Vue.prototype.download = download; |
| | | Vue.prototype.handleTree = handleTree; |
| | | Vue.prototype.$echarts = echarts; |
| | | import VueBarcode from "vue-barcode"; |
| | | Vue.component("barcode", VueBarcode); |
| | | // 全局组件挂载 |
| | | 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); |
| | | // 保留 $showNotification,支持手动触发通知 |
| | | Vue.prototype.$showNotification = function (type, title, message, onClick) { |
| | | console.log('触发通知:', { type, title, message }, new Date().toLocaleString()); |
| | | Vue.prototype.$notify({ |
| | | title, |
| | | message, |
| | | type, |
| | | duration: 5000, |
| | | position: 'top-right', |
| | | offset: 50, |
| | | onClick, |
| | | customClass: 'global-notification', |
| | | appendTo: document.body |
| | | }); |
| | | }; |
| | | |
| | | // 监听路由变化 |
| | | router.afterEach(() => { |
| | | console.log('路由切换完成,当前路径:', router.currentRoute.path); |
| | | }); |
| | | |
| | | const app = new Vue({ |
| | | el: "#app", |
| | | router, |
| | | store, |
| | | render: (h) => h(App) |
| | | }); |
| | | |
| | | Vue.use(directive); |
| | | Vue.use(plugins); |
| | | Vue.use(VueMeta); |
| | | Vue.use(Print); |
| | | Vue.use(Element, { |
| | | size: Cookies.get("size") || "medium", |
| | | }); |
| | | 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; |
| | | |
| | | new Vue({ |
| | | el: "#app", |
| | | router, |
| | | store, |
| | | render: (h) => h(App), |
| | | }); |
| | | Vue.config.productionTip = false; |