main.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import Vue from "vue";
  2. /**
  3. * umy-ui 组件内引用 element-ui,会与 yuwp-ui 样式冲突
  4. * 为保证后者样式正常
  5. * 根据选择器排序原理,需要优先引入该组件样式
  6. */
  7. import "umy-ui/lib/theme-chalk/index.css";
  8. import YuwpUI from "yuwp-ui";
  9. import App from "./App";
  10. import store from "./store";
  11. import router from "./router";
  12. import "./utils"; // 初始化xy-utils
  13. import "@/config/other/components"; // 导入全局使用自定义组件
  14. import "@/config/other/css"; // 导入全局使用自定义组件
  15. import "@/config/other/other"; // 导入全局其他配置信息
  16. import i18n from "@/locale"; // Internationalization
  17. import YuwpUIConfig from "@/config/components"; //导入全局修改的组件参数
  18. import { vueMixinButton } from "@/utils/mixin";
  19. import "./utils/yufp";
  20. import { create, all } from "mathjs";
  21. import * as monaco from "monaco-editor";
  22. import sql from "@/utils/monaco/monaco-languages/sql.js";
  23. import { placeholderTooltip } from './directives/tooltip';
  24. import { autoFormTooltip } from './directives/auto-form-tooltip.js';
  25. import VTitleDirective from './directives/vtitle';
  26. import './assets/global.css'; // 引入全局CSS文件
  27. // 注册全局指令
  28. Vue.directive('placeholder-tooltip', placeholderTooltip)//针对单个表单项设置tooltip(手动)
  29. Vue.directive('auto-form-tooltip', autoFormTooltip)//针对所有页面表单项设置tooltip(自动),动态的表单如dialog中的表单需要手动添加v-auto-form-tooltip
  30. Vue.directive('title', VTitleDirective);
  31. // 自定义 monaco-editor 编辑器 sql 语言高亮器
  32. // Register a new language
  33. monaco.languages.register({ id: "xSql" });
  34. // Register a tokens provider for the language
  35. monaco.languages.setMonarchTokensProvider("xSql", sql.language);
  36. // mathjs 配置
  37. const config = {
  38. number: "BigNumber",
  39. };
  40. window.bigmath = create(all, config);
  41. // console.log('Vue版本:', Vue.version)
  42. const defaultSettings = require("./config");
  43. Vue.use(YuwpUI, YuwpUIConfig);
  44. Vue.prototype.$rowNumber = yufp.util.rowNumber;
  45. Vue.config.productionTip = false;
  46. Vue.mixin(vueMixinButton);
  47. new Vue({
  48. el: defaultSettings.defaultRootId,
  49. router,
  50. store,
  51. i18n,
  52. beforeCreate() {
  53. Vue.prototype.$bus = this;
  54. },
  55. render: (h) => h(App),
  56. });
  57. try {
  58. let info = sessionStorage.getItem("tenantInfo");
  59. if (info) {
  60. const tenantInfo = JSON.parse(info);
  61. console.log("当前租户信息:", tenantInfo);
  62. document.title = tenantInfo.systemName;
  63. }
  64. } catch (error) {
  65. console.log(error);
  66. }
  67. // 全局对象,标注当前状态
  68. window.__XYWEB__ = true;
  69. console.log(
  70. `${defaultSettings.title} ${defaultSettings.version} ${new Date()}`
  71. );