import { createApp } from 'vue'; import pinia from '/@/stores/index'; import App from '/@/App.vue'; import router from '/@/router'; import { directive } from '/@/directive/index'; import { i18n } from '/@/i18n/index'; import other from '/@/utils/other'; import ElementPlus from 'element-plus'; import '/@/theme/index.scss'; // 动画库 import 'animate.css'; // 栅格布局 import VueGridLayout from 'vue-grid-layout'; // 电子签名 import VueSignaturePad from 'vue-signature-pad'; // 组织架构图 import vue3TreeOrg from 'vue3-tree-org'; import 'vue3-tree-org/lib/vue3-tree-org.css'; // VForm3 表单设计 import VForm3 from 'vform3-builds'; import 'vform3-builds/dist/designer.style.css'; // Vxe-Table import { setupVXETable } from '/@/hooks/setupVXETableHook'; // IM聊天框 import JwChat from 'jwchat'; import 'jwchat/lib/style.css'; // 关闭自动打印 import { disAutoConnect } from 'vue-plugin-hiprint'; import { loadSysInfo } from '/@/utils/sysInfo'; disAutoConnect(); //加载系统信息放在app.vue会和挂载router产生异步冲突 //由于挂载的机制是异步的,导致还没有获取到数据库的系统信息的时候,【密码加解密公匙】则一直为空(特别是在网络不好的情况下) //由于获取验证码需要【密码加解密公匙】信息,如果没有则会一直刷新页面,导致登录页面会一直刷新 async function initApp() { // 加载系统信息 await loadSysInfo(); const app = createApp(App); directive(app); other.elSvg(app); app.use(pinia).use(router).use(ElementPlus).use(setupVXETable).use(i18n).use(VueGridLayout).use(VForm3).use(VueSignaturePad).use(vue3TreeOrg).use(JwChat).mount('#app'); } initApp();