main.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router'
  4. import { directive } from '/@/utils/directive'
  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 permission from '/@/plugin/permission/index'
  19. // @ts-ignore
  20. import eIconPicker, { iconList, analyzingIconForIconfont } from 'e-icon-picker'
  21. import 'e-icon-picker/icon/default-icon/symbol.js' //基本彩色图标库
  22. import 'e-icon-picker/index.css' // 基本样式,包含基本图标
  23. import 'font-awesome/css/font-awesome.min.css'
  24. import elementPlus from 'e-icon-picker/icon/ele/element-plus.js' //element-plus的图标
  25. import fontAwesome470 from 'e-icon-picker/icon/fontawesome/font-awesome.v4.7.0.js' //fontAwesome470的图标
  26. import eIconList from 'e-icon-picker/icon/default-icon/eIconList.js'
  27. import iconfont from '/@/assets/iconfont/iconfont.json' //引入json文件
  28. import '/@/assets/iconfont/iconfont.css' //引入css
  29. // 自动注册插件
  30. import { scanAndInstallPlugins } from '/@/views/plugins/index'
  31. import VXETable from 'vxe-table'
  32. import 'vxe-table/lib/style.css'
  33. import '/@/assets/style/reset.scss'
  34. import 'element-tree-line/dist/style.css'
  35. import dayjs from 'dayjs'
  36. import UTC from 'dayjs/plugin/utc'
  37. import Timezon from 'dayjs/plugin/timezone'
  38. import IsSameOrBefore from 'dayjs/plugin/isSameOrBefore'
  39. import 'dayjs/locale/zh-cn'
  40. // import { ElementPlus } from '@element-plus/icons-vue';
  41. dayjs.extend(UTC)
  42. dayjs.extend(Timezon)
  43. dayjs.extend(IsSameOrBefore)
  44. dayjs.locale('zh-cn')
  45. let forIconfont = analyzingIconForIconfont(iconfont) //解析class
  46. iconList.addIcon(forIconfont.list) // 添加iconfont dvadmin3的icon
  47. iconList.addIcon(elementPlus) // 添加element plus的图标
  48. iconList.addIcon(fontAwesome470) // 添加fontAwesome 470版本的图标
  49. let app = createApp(App)
  50. scanAndInstallPlugins(app)
  51. app.use(eIconPicker, {
  52. addIconList: eIconList, //全局添加图标
  53. removeIconList: [], //全局删除图标
  54. zIndex: 3100, //选择器弹层的最低层,全局配置
  55. })
  56. pinia.use(piniaPersist)
  57. directive(app)
  58. other.elSvg(app)
  59. app.use(VXETable)
  60. app.use(permission)
  61. // @ts-ignore
  62. app.use(pinia)
  63. .use(router)
  64. // @ts-ignore
  65. .use(ElementPlus, { i18n: i18n.global.t })
  66. .use(i18n).use(VueGridLayout).use(fastCrud).mount('#app')
  67. app.config.globalProperties.mittBus = mitt()