/* * @Author: mk 2403457699@qq.com * @Date: 2022-12-16 09:05:10 * @LastEditors: mk 2403457699@qq.com * @LastEditTime: 2023-08-10 16:49:19 * @Description: 全局挂载提示信息,避免同时出现多条信息 * * */ import Vue from "vue"; import Element from "element-ui"; import App from "@/App"; import i18n from "@/i18n"; import router from "@/router"; import Moment from "moment"; import "@/icons"; import "@/element-ui/theme/index.css"; import "@/assets/scss/aui.scss"; import { message } from "@/utils/message.js"; import NodeWrap from "@/components/Tree/nodeWrap.vue"; import AddNode from "@/components/Tree/addNode.vue"; //按钮 Vue.component("nodeWrap", NodeWrap); Vue.component("addNode", AddNode); import http from "@/utils/request"; import cloneDeep from "lodash/cloneDeep"; // axios封装 import ajax from "@/js/ajax"; // service import service from "@/js/service"; // vuex处理多个组件共享状态 import store from "@/js/store"; //系统工具 import util from "@js/util"; // import Cookies from "js-cookie"; import getQueryPara from "dai-js/modules/getQueryPara"; // 兼容token传参登录 if (getQueryPara("token")) { console.log("token", getQueryPara("token")); localStorage.setItem("token", getQueryPara("token")); console.log("token222222", localStorage.getItem("token")); } window.app = Object.assign( {}, { util, ajax, service, } ); Vue.config.productionTip = false; Vue.use(Element, { size: "default", i18n: (key, value) => i18n.t(key, value), }); Moment.locale("zh-cn"); Vue.prototype.$moment = Moment; Vue.prototype.$message = message; // 弹窗底部滚动问题 弹窗需配合v-if使用 Vue.directive("fixed", { inserted() { let scrollTop = document.body.scrollTop || document.documentElement.scrollTop; document.body.style.cssText += "position:fixed;width:100%;top:-" + scrollTop + "px;"; }, unbind() { let body = document.body; body.style.position = ""; let top = body.style.top; document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top); body.style.top = ""; }, }); Vue.directive("drag", { bind(el, binding, vnode) { el.style.position = "absolute"; el.style.cursor = "grab"; el.onmousedown = (event) => { const offsetX = event.clientX - el.getBoundingClientRect().left; const offsetY = event.clientY - el.getBoundingClientRect().top; el.style.zIndex = 1000; // 确保拖拽的元素在最前面 document.onmousemove = (e) => { const x = e.clientX - offsetX; const y = e.clientY - offsetY; el.style.left = x + "px"; el.style.top = y + "px"; }; document.onmouseup = () => { document.onmousemove = null; document.onmouseup = null; el.style.zIndex = null; }; }; }, }); // 挂载全局 Vue.prototype.$http = http; // el-uploader的header配置 Vue.prototype.$getElUploadHeaders = () => ({ Authorization: localStorage.getItem("token") || "", }); // Vue.prototype.$getDictLabel = getDictLabel //事件总线 Vue.prototype.$EventBus = new Vue(); // 保存整站vuex本地储存初始状态 window.SITE_CONFIG["storeState"] = cloneDeep(store.state); Vue.prototype.tableHeaderStyle = { background: "linear-gradient(0deg, #005EB3 0%, #0083F0 100%)", color: "#FFFFFF", padding: "6px 0px" }; new Vue({ i18n, router, store, render: (h) => h(App), }).$mount("#app");