import { createApp } from "vue"; import Cookies from "js-cookie"; import ElementPlus from "element-plus"; import locale from "element-plus/es/locale/lang/zh-cn"; import "element-plus/theme-chalk/index.css"; 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 plugins from "./plugins"; // plugins import { download } from "@/utils/request"; // svg图标 import "virtual:svg-icons-register"; import SvgIcon from "@/components/SvgIcon"; import elementIcons from "@/components/SvgIcon/svgicon"; import "./permission"; // permission control import { useDict } from "@/utils/dict"; import { parseTime, resetForm, addDateRange, formatDuraDate, formatDuraTime, handleTree, selectDictLabel, selectDictLabels, } from "@/utils/ruoyi"; import request from "@/utils/request"; // 分页组件 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 TreeSelect from "@/components/TreeSelect"; // 字典标签组件 import DictTag from "@/components/DictTag"; // Vue3表单组件 import VForm3 from "@/lib/vform/designer.umd.js"; import "@/lib/vform/designer.style.css"; import dayjs from "dayjs"; import { notification, message, Modal } from "ant-design-vue"; const app = createApp(App); notification.config({ placement: "topLeft", bottom: "50px", top: "50px", duration: 3, }); // 全局方法挂载 app.config.globalProperties.$confirm = Modal.confirm; app.config.globalProperties.$message = message; app.config.globalProperties.$notification = notification; app.config.globalProperties.$info = Modal.info; app.config.globalProperties.$success = Modal.success; app.config.globalProperties.$error = Modal.error; app.config.globalProperties.$warning = Modal.warning; app.config.globalProperties.useDict = useDict; 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.formatDuraDate = formatDuraDate; app.config.globalProperties.formatDuraTime = formatDuraTime; app.config.globalProperties.selectDictLabel = selectDictLabel; app.config.globalProperties.selectDictLabels = selectDictLabels; app.config.globalProperties.$tryToJson = (str, df) => { try { if (!str) { return df || {}; } return JSON.parse(str) || df || {}; } catch { return df || {}; } }; app.config.globalProperties.$dt = dayjs; app.config.globalProperties.$formatDate = dt=>{ return dt?dayjs(dt).format("YYYY-MM-DD"):"" ; }; app.config.globalProperties.$formatDateTime = dt=>{ return dt?dayjs(dt).format("YYYY-MM-DD HH:mm:ss"):"" ; }; app.config.globalProperties.$formatTime = dt=>{ return dt?dayjs(dt).format("HH:mm:ss"):"" ; }; app.config.globalProperties.$formatTime = dt=>{ return dt?dayjs(dt).format("HH:mm:ss"):"" ; }; app.config.globalProperties.$http = request; // 全局组件挂载 app.component("DictTag", DictTag); app.component("Pagination", Pagination); app.component("TreeSelect", TreeSelect); app.component("FileUpload", FileUpload); app.component("ImageUpload", ImageUpload); app.component("ImagePreview", ImagePreview); app.component("RightToolbar", RightToolbar); app.component("Editor", Editor); app.use(router); app.use(store); app.use(plugins); app.use(elementIcons); // 全局注册VForm3,同时注册了v-form-designer、v-form-render等组件 app.use(VForm3); app.component("svg-icon", SvgIcon); directive(app); // 使用element-plus 并且设置全局的大小 app.use(ElementPlus, { locale: locale, // 支持 large、default、small size: Cookies.get("size") || "default", }); app.mount("#app");