index.js 2.72 KB
/* eslint-disable */
import dva from 'dva';
import copy from 'copy-to-clipboard';
// import createLoading from 'dva-loading';
import { message } from 'antd';
import 'antd/dist/antd.compact.less'; // 引入官方提供的 less 样式入口文件
// import 'antd/dist/antd.compact.less'; // 引入官方提供的 less 样式入口文件
// import 'antd/dist/antd.dark.less';
import { createBrowserHistory } from 'history';
import './assets/icons/index.js'
import './index.less';
import './default.less';
import './g2';
import './variable.less'; // 用于覆盖上面定义的变量
import './skinchange.less'; // 用于换肤的变量


const ERROR_MSG_DURATION = 5;/* 3 秒 */
// 1. Initialize
const app = dva({
  history: createBrowserHistory(),
  onError(e) {
    message.destroy();
    message.error(e.message, ERROR_MSG_DURATION);
  },
});


window.onload = function () {
  let el = '';
  window.addEventListener('mouseover', (e) => {
    el = e;
  });
  window.addEventListener('keydown', (keyE) => {
    if(!el.target) {
      return;
    }
    const { value, title } = el.target.attributes;
    if (keyE.ctrlKey && keyE.keyCode === 67) {
      // 可输入input时不用复制组件
      if (document.activeElement
        && document.activeElement.nodeName === 'INPUT'
        && document.activeElement.classList.contains('ant-input')
        && document.activeElement.disabled === false
        && document.activeElement.readOnly === false
      ) {
        return;
      }
      if (value) {
        (typeof value.value === 'string') && copy(value.value);
      } if (title) {
        (typeof title.value === 'string') && copy(title.value);
      } else {
        el.target.innerText && copy(el.target.innerText);
      }
    }
  });
};

const originWindowOpen = window.open;
window.open = (url = '', target, windowFeatures) => {
  if (url) {
    if (url.includes('fileType=.xlsx')) {
      const newWin = originWindowOpen();
      let formStr = '';
      formStr = `<form style="visibility:hidden;" method="POST" action="${url}">` +
        `<input type="hidden" name="masterData" value='' />` +
        '</form>';
      newWin.document.body.innerHTML = formStr;
      newWin.document.forms[0].submit();
    } else {
      originWindowOpen(url, target, windowFeatures);
    }
    return;
  } else if (target || windowFeatures) {
    return originWindowOpen(url = '', target, windowFeatures);
  }
  return originWindowOpen();
}

// 2. Plugins
// app.use({});
// app.use(createLoading());

// 3. Model
// app.model(require('./models/example'));
app.model(require('./models/app').default);
app.model(require('./models/content').default);
app.model(require('./models/menuPanel').default);
// 4. Router
app.router(require('./router').default);

// 5. Start
app.start('#root');