| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- import Vue from 'vue';
- import './public-path';
- import initParentStore from '../qiankun_config/store';
- import App from './App.vue';
- import store from './store';
- import router from './router';
- import permission from './utils/permission';
- import { MAP_KEY, LICENSE_CODE } from '@/config/setting';
- import EleAdmin from 'ele-admin';
- import VueClipboard from 'vue-clipboard2';
- import VueFullscreen from 'vue-fullscreen';
- import i18n from './i18n';
- import './styles/index.scss';
- import DictSelection from '@/components/Dict/DictSelection';
- import HeaderTitle from '@/components/header-title';
- // import authSelection from '@/components/authSelection';
- import Vue2OrgTree from 'vue2-org-tree';
- import seekPage from '@/BIZComponents/seekPage';
- import clickOnce from './utils/clickOnce.js';
- import noChinese from './utils/noChinese.js';
- import { VirtualScroller } from 'vue-virtual-scroller';
- import 'vue-virtual-scroller/dist/vue-virtual-scroller.css';
- Vue.component('virtual-scroller', VirtualScroller);
- import dataV from '@jiaminghi/data-view'
- import { all, create } from 'mathjs'; // 引入mathjs工具并初始化
- // REM 适配大屏 - 基于设计稿 1920px
- (function() {
- function setRem() {
- const baseSize = 192; // 基础值,设计稿宽度 / 10
- const scale = document.documentElement.clientWidth / 1920;
- // 限制最大缩放比例为 2 倍
- const rem = baseSize * Math.min(scale, 2);
- document.documentElement.style.fontSize = rem + 'px';
- // 同时设置 data 属性,方便 CSS 中使用
- document.documentElement.setAttribute('data-scale', Math.min(scale, 2).toFixed(4));
- }
- // 初始化
- setRem();
- // 防抖处理
- let timer = null;
- window.addEventListener('resize', function() {
- if (timer) clearTimeout(timer);
- timer = setTimeout(setRem, 100);
- });
- // 确保 DOM 加载完成后执行
- if (document.readyState !== 'complete') {
- window.addEventListener('load', setRem);
- }
- })();
- // 注册全局自定义指令
- Vue.directive('click-once', clickOnce);
- Vue.directive('no-chinese', noChinese);
- Vue.component('HeaderTitle', HeaderTitle);
- // Vue.component('authSelection', authSelection);
- // // register globally
- import '@/icons';
- Vue.component('DictSelection', DictSelection);
- Vue.component('seekPage', seekPage);
- Vue.config.productionTip = false;
- Vue.prototype.$math = create(all, {
- number: 'BigNumber',
- precision: 64
- });
- Vue.use(Vue2OrgTree);
- Vue.use(dataV);
- Vue.use(EleAdmin, {
- response: {
- dataName: 'list'
- },
- mapKey: MAP_KEY,
- license: LICENSE_CODE,
- i18n: (key, value) => i18n.t(key, value)
- });
- Vue.use(permission);
- Vue.use(VueClipboard);
- Vue.use(VueFullscreen);
- let instance = null;
- // bpmnProcessDesigner 需要引入
- import MyPD from '@/components/bpmnProcessDesigner/package/index.js';
- Vue.use(MyPD);
- import paramsDataMixins from './mixins/paramsDataMixins';
- Vue.mixin(paramsDataMixins);
- import '@/components/bpmnProcessDesigner/package/theme/index.scss';
- import 'bpmn-js/dist/assets/diagram-js.css';
- import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css';
- import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css';
- import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
- import fileMain from '@/components/addDoc/index.vue';
- Vue.component('fileMain', fileMain);
- function render(props = {}) {
- const { container, routerBase } = props;
- // const router = new VueRouter({
- // base: window.__POWERED_BY_QIANKUN__ ? routerBase : process.env.BASE_URL,
- // mode: 'history',
- // routes
- // });
- instance = new Vue({
- router,
- store,
- i18n,
- render: (h) => h(App)
- }).$mount(container ? container.querySelector('#app') : '#app');
- }
- if (!window.__POWERED_BY_QIANKUN__) {
- // 这里是子应用独立运行的环境,实现子应用的登录逻辑
- render();
- }
- // window.location.reload()
- export async function bootstrap() {
- console.log('[vue] vue app bootstraped');
- }
- export async function mount(props) {
- console.log('[vue] props from main framework', props);
- Vue.prototype.$portalStore = props.store;
- initParentStore(props.store);
- props.onGlobalStateChange((state, prev) => {
- // state: 变更后的状态; prev 变更前的状态
- initParentStore(state);
- });
- render(props);
- }
- export async function unmount() {
- instance.$destroy();
- instance.$el.innerHTML = '';
- instance = null;
- }
|