import App from './App.vue'; 
 | 
import { router } from './router'; 
 | 
import { setupStore } from '@/store'; 
 | 
import { createApp, Directive } from 'vue'; 
 | 
import { MotionPlugin } from '@vueuse/motion'; 
 | 
import * as ElementPlusIconsVue from '@element-plus/icons-vue'; 
 | 
import * as Components from '@/components'; 
 | 
import draggable from '@/../lib/vuedraggable/dist/vuedraggable.umd.js'; 
 | 
import { QueryFilterItem } from '@bole-core/components'; 
 | 
import { VueQueryPlugin, VueQueryPluginOptions } from '@tanstack/vue-query'; 
 | 
import dayjs from 'dayjs'; 
 | 
import localeData from 'dayjs/plugin/localeData.js'; 
 | 
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js'; 
 | 
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js'; 
 | 
import 'dayjs/locale/zh-cn'; 
 | 
import { myClient } from '@/constants/query'; 
 | 
  
 | 
import { initErrorHandler } from '@/utils/error-log'; 
 | 
import 'animate.css'; 
 | 
  
 | 
// 导入公共样式 
 | 
import './style/index.scss'; 
 | 
import 'video.js/dist/video-js.css'; 
 | 
  
 | 
// 导入字体图标 
 | 
// import './assets/iconfont/iconfont.js' 
 | 
// import './assets/iconfont/iconfont.css' 
 | 
  
 | 
import 'virtual:svg-icons-register'; 
 | 
import './permission'; 
 | 
  
 | 
import { ThemeColors } from '@/constants'; 
 | 
import { ThemeManager } from '@/utils'; 
 | 
  
 | 
ThemeManager.init(ThemeColors); 
 | 
  
 | 
dayjs.extend(localeData); 
 | 
dayjs.extend(isSameOrAfter); 
 | 
dayjs.extend(isSameOrBefore); 
 | 
dayjs.locale('zh-cn'); 
 | 
  
 | 
const app = createApp(App); 
 | 
  
 | 
// // // 自定义指令 
 | 
import * as directives from '@/directives'; 
 | 
  
 | 
Object.keys(directives).forEach((key) => { 
 | 
  app.directive(key, (directives as { [key: string]: Directive })[key]); 
 | 
}); 
 | 
  
 | 
// 全局注册`@iconify/vue`图标库 
 | 
import { IconifyIconOffline, IconifyIconOnline, FontIcon, SvgIcon } from './components/ReIcon'; 
 | 
app.component('IconifyIconOffline', IconifyIconOffline); 
 | 
app.component('IconifyIconOnline', IconifyIconOnline); 
 | 
app.component('FontIcon', FontIcon); 
 | 
app.component('SvgIcon', SvgIcon); 
 | 
  
 | 
for (const [key, component] of Object.entries({ 
 | 
  ...ElementPlusIconsVue, 
 | 
  ...Components, 
 | 
  draggable, 
 | 
  QueryFilterItem, 
 | 
})) { 
 | 
  app.component(key, component); 
 | 
} 
 | 
  
 | 
const vueQueryPluginOptions: VueQueryPluginOptions = { 
 | 
  queryClient: myClient, 
 | 
}; 
 | 
  
 | 
setupStore(app); 
 | 
app.use(router).use(MotionPlugin); 
 | 
initErrorHandler(app); 
 | 
app.use(VueQueryPlugin, vueQueryPluginOptions); 
 | 
app.mount('#app'); 
 |