YZProjectCloud/yanzhu-ui-vue3/src/main.js

139 lines
4.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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");