main.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { createApp } from 'vue';
  2. import App from './App.vue';
  3. import router from './router';
  4. import { directive } from '/@/directive/index';
  5. import { i18n } from '/@/i18n';
  6. import other from '/@/utils/other';
  7. import '/@/assets/style/tailwind.css'; // 先引入tailwind css, 以免element-plus冲突
  8. import ElementPlus from 'element-plus';
  9. import 'element-plus/dist/index.css';
  10. // import 'element-plus/es/components/menu/style/css' // element-plus按需导入会导致菜单样式出现问题 单独导入
  11. import '/@/theme/index.scss';
  12. import mitt from 'mitt';
  13. import VueGridLayout from 'vue-grid-layout';
  14. import piniaPersist from 'pinia-plugin-persist';
  15. // @ts-ignore
  16. import fastCrud from './settings.ts';
  17. import pinia from './stores';
  18. import dayjs from 'dayjs'
  19. import UTC from 'dayjs/plugin/utc'
  20. import Timezon from 'dayjs/plugin/timezone'
  21. import IsSameOrBefore from 'dayjs/plugin/isSameOrBefore'
  22. import 'dayjs/locale/zh-cn'
  23. import {RegisterPermission} from '/@/plugin/permission/index';
  24. // @ts-ignore
  25. import eIconPicker, { iconList, analyzingIconForIconfont } from 'e-icon-picker';
  26. import 'e-icon-picker/icon/default-icon/symbol.js'; //基本彩色图标库
  27. import 'e-icon-picker/index.css'; // 基本样式,包含基本图标
  28. import 'font-awesome/css/font-awesome.min.css';
  29. import elementPlus from 'e-icon-picker/icon/ele/element-plus.js'; //element-plus的图标
  30. import fontAwesome470 from 'e-icon-picker/icon/fontawesome/font-awesome.v4.7.0.js'; //fontAwesome470的图标
  31. import eIconList from 'e-icon-picker/icon/default-icon/eIconList.js';
  32. import iconfont from '/@/assets/iconfont/iconfont.json'; //引入json文件
  33. import '/@/assets/iconfont/iconfont.css'; //引入css
  34. // 自动注册插件
  35. import { scanAndInstallPlugins } from '/@/views/plugins/index';
  36. import VXETable from 'vxe-table'
  37. import 'vxe-table/lib/style.css'
  38. import VxeUI from 'vxe-pc-ui'
  39. import 'vxe-pc-ui/lib/style.css'
  40. import '/@/assets/style/reset.scss';
  41. // import 'element-tree-line/dist/style.css'
  42. let forIconfont = analyzingIconForIconfont(iconfont); //解析class
  43. iconList.addIcon(forIconfont.list); // 添加iconfont dvadmin3的icon
  44. iconList.addIcon(elementPlus); // 添加element plus的图标
  45. iconList.addIcon(fontAwesome470); // 添加fontAwesome 470版本的图标
  46. let app = createApp(App);
  47. scanAndInstallPlugins(app);
  48. app.use(eIconPicker, {
  49. addIconList: eIconList, //全局添加图标
  50. removeIconList: [], //全局删除图标
  51. zIndex: 3100, //选择器弹层的最低层,全局配置
  52. });
  53. pinia.use(piniaPersist);
  54. directive(app);
  55. other.elSvg(app);
  56. dayjs.extend(UTC)
  57. dayjs.extend(Timezon)
  58. dayjs.extend(IsSameOrBefore)
  59. dayjs.locale('zh-cn')
  60. app.use(VXETable).use(VxeUI)
  61. app.use(pinia)
  62. .use(router)
  63. // @ts-ignore
  64. .use(ElementPlus, { i18n: i18n.global.t })
  65. .use(i18n)
  66. .use(VueGridLayout)
  67. // @ts-ignore
  68. .use(fastCrud)
  69. .mount('#app');
  70. app.config.globalProperties.mittBus = mitt();