You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.9 KiB
136 lines
3.9 KiB
|
|
import { createApp } from 'vue' |
|
|
|
import Cookies from 'js-cookie' |
|
|
|
import ElementPlus from 'element-plus' |
|
import 'element-plus/dist/index.css' |
|
|
|
import VxeUIAll from 'vxe-pc-ui' |
|
import 'vxe-pc-ui/es/style.css' |
|
|
|
import VxeUITable from 'vxe-table' |
|
import 'vxe-table/es/style.css' |
|
import SPLITPANES_CONFIG from '@/utils/splitpanes.js' |
|
import locale from 'element-plus/es/locale/lang/zh-cn' |
|
|
|
import '@/assets/styles/index.scss' // global css |
|
|
|
import App from './App' |
|
import store from './store' |
|
import FirstCardHeightMixin from './mixins/firstCardHeight' |
|
import router from './router' |
|
import directive from './directive' // directive |
|
|
|
// 注册指令 |
|
import plugins from './plugins' // plugins |
|
import { download } from '@/utils/request' |
|
import { exportExcel } 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, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi' |
|
|
|
// 分页组件 |
|
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' |
|
|
|
// axios请求方法组件 |
|
import { |
|
axiosGet, |
|
axiosPost, |
|
axiosPost2, |
|
axiosDelete, |
|
axiosDeleteOne, |
|
axiosPut |
|
} from "@/utils/axiosService.js" |
|
|
|
const app = createApp(App) |
|
// 初始化表格字体大小 |
|
function initTableFontSize() { |
|
const size = localStorage.getItem('size') || 'default'; |
|
let fontSizeVar; |
|
switch (size) { |
|
case 'large': |
|
fontSizeVar = 'var(--table-font-size-large)'; |
|
break; |
|
case 'small': |
|
fontSizeVar = 'var(--table-font-size-small)'; |
|
break; |
|
case 'default': |
|
default: |
|
fontSizeVar = 'var(--table-font-size-default)'; |
|
break; |
|
} |
|
document.documentElement.style.setProperty('--table-font-size', fontSizeVar); |
|
} |
|
|
|
|
|
// 在应用挂载前初始化 |
|
initTableFontSize(); |
|
// 全局方法挂载 |
|
app.config.globalProperties.useDict = useDict |
|
app.config.globalProperties.download = download |
|
app.config.globalProperties.exportExcel = exportExcel |
|
app.config.globalProperties.parseTime = parseTime |
|
app.config.globalProperties.resetForm = resetForm |
|
app.config.globalProperties.handleTree = handleTree |
|
app.config.globalProperties.addDateRange = addDateRange |
|
app.config.globalProperties.selectDictLabel = selectDictLabel |
|
app.config.globalProperties.selectDictLabels = selectDictLabels |
|
app.config.globalProperties.axiosGet = axiosGet |
|
app.config.globalProperties.axiosPost = axiosPost |
|
app.config.globalProperties.axiosPost2 = axiosPost2 |
|
app.config.globalProperties.axiosDelete = axiosDelete |
|
app.config.globalProperties.axiosDeleteOne = axiosDeleteOne |
|
app.config.globalProperties.axiosPut = axiosPut |
|
app.config.globalProperties.SPLITPANES_CONFIG = SPLITPANES_CONFIG |
|
|
|
// 全局组件挂载 |
|
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) |
|
app.use(VxeUIAll) |
|
app.use(VxeUITable) |
|
app.component('svg-icon', SvgIcon) |
|
|
|
directive(app) |
|
|
|
// 使用element-plus 并且设置全局的大小 |
|
app.use(ElementPlus, { |
|
locale: locale, |
|
// 支持 large、default、small |
|
size: Cookies.get('size') || 'default' |
|
}) |
|
// 全局注册混入 |
|
app.mixin(FirstCardHeightMixin) |
|
app.mount('#app')
|
|
|