main.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {createApp} from 'vue';
  2. import {createPinia} from 'pinia';
  3. import App from './App.vue';
  4. import router from './router';
  5. import Antd from 'ant-design-vue';
  6. import directive from './directive';
  7. import VueHighlightJS from 'vue3-highlightjs';
  8. import 'vue3-highlightjs/styles/solarized-light.css';
  9. import 'ant-design-vue/dist/reset.css';
  10. import ErrorHandler from './plugins/errorHandler';
  11. import tablePlugin from '@/plugins/table';
  12. import FcDesigner from '@form-create/antd-designer'
  13. import 'ant-design-vue/dist/reset.css';
  14. // 导入 dayjs 配置
  15. import './plugins/dayjs';
  16. // 导入全局样式 (包含所有主题样式)
  17. import './style/global.less';
  18. // 导入主题服务
  19. import { themeService } from '@/utils/theme';
  20. // 应用挂载后初始化配置
  21. import {initAllConfigs, watchConfigChanges} from '@/utils/configInit';
  22. // 注册全局组件
  23. import GlobalLoading from './components/common/GlobalLoading.vue';
  24. import DictTag from './components/DictTag/index.vue';
  25. // 导入工具函数
  26. // 导入字典管理函数
  27. import {useDict} from '@/composables/useDict.js';
  28. const app = createApp(App);
  29. const pinia = createPinia();
  30. app.use(pinia)
  31. .use(router)
  32. .use(Antd)
  33. .use(directive)
  34. .use(VueHighlightJS)
  35. .use(ErrorHandler)
  36. .use(tablePlugin)
  37. .use(FcDesigner)
  38. .use(FcDesigner.formCreate);
  39. // 挂载应用
  40. app.mount('#app');
  41. // 初始化主题服务和其他配置
  42. setTimeout(async () => {
  43. // 先初始化主题服务
  44. await themeService.init({
  45. followSystem: true // 是否跟随系统主题
  46. });
  47. // 再初始化其他配置
  48. initAllConfigs();
  49. watchConfigChanges();
  50. }, 100);
  51. app.component('GlobalLoading', GlobalLoading);
  52. app.component('DictTag', DictTag);
  53. // 添加全局属性
  54. app.config.globalProperties.useDict = useDict;