139 lines
4.1 KiB
JavaScript
139 lines
4.1 KiB
JavaScript
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");
|