main.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { createApp } from 'vue';
  2. import { createPinia } from 'pinia';
  3. import App from './App.vue';
  4. import router from './router';
  5. // 样式
  6. import '@/assets/main.css';
  7. // 动画
  8. import 'animate.css';
  9. // element
  10. import ElementPlus from 'element-plus';
  11. import 'element-plus/dist/index.css';
  12. import locale from 'element-plus/lib/locale/lang/zh-cn';
  13. import * as ElementPlusIconsVue from '@element-plus/icons-vue';
  14. // 图标
  15. import '@/assets/icon/iconfont.css';
  16. // moment
  17. import moment from 'moment';
  18. import { ProvideOnApp } from './util/provideApp';
  19. // lodash
  20. // import _ from 'lodash';
  21. // 组件
  22. import frameComponents from '@/components/index';
  23. const app = createApp(App);
  24. app.use(createPinia());
  25. app.use(router);
  26. app.use(ElementPlus, { locale });
  27. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  28. app.component(key, component);
  29. }
  30. app.config.globalProperties.$moment = moment;
  31. for (const componentItme in frameComponents) {
  32. app.component(componentItme, frameComponents[componentItme]);
  33. }
  34. app.config.globalProperties.$limit = parseInt(import.meta.env.VITE_APP_PAGE_SIZE) || 10;
  35. // 执行挂载
  36. ProvideOnApp(app);
  37. app.mount('#app');