import '@babel/polyfill' import Vue from 'vue' import Element from 'element-ui' import App from './App' import './assets/css/custom.css' import './assets/css/resetui.css' import './assets/icon/iconfont.css' import './assets/icons/iconfont.css' import './assets/bz-icon/iconfont.css' import '../packages/icons' import '../packages/element-ui/theme/index.css' import '../packages/assets/scss/aui.scss' import './assets/css/theme-light.css' import './assets/css/qccommon.css' import VueRouter from 'vue-router' import './assets/css/theme-high.css' // import '@/assets/less/common.less' import i18n from '../packages/i18n' import store from '../packages/store' import router from './router' import cloneDeep from 'lodash/cloneDeep' import ztAdmin from '../packages/index' // import 'bpmn-js/dist/assets/diagram-js.css'; // import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css'; import ProductTree from './components/product-tree' import ProductSelector from './components/product-selector' import ConfigUploader from './components/config-uploader' import SysFileManagement from './components/file-management' import experimentUploader from './components/file-experiment' import RepairerSelector from './components/repairer-selector' import TingteamSelector from './components/tingteam-selector' import TeamGroupSelector from './components/team-group-selector' import TeamMajorSelector from './components/team-major-selector' import LocalShipSelector from './components/local-ship-selector' import ProductSelectorCascade from './components/product-selector-cascade' import ProjectListSelectDialog from './components/project-list-select-dialog' import MenuTreeSelector from './components/menu-tree-selector' import SelectTree from './components/select-tree' import MajorSelector from './components/major-selector' import ZtBoatTree from './components/zt-boat-tree' import ColumnSelect from './components/column-select' import ZtEquipmentConfig from './components/zt-equipment-config' import ZtEquipmentSelect from './components/zt-equipment-select' import TableUploader from './components/table-uploader' import scroll from 'vue-seamless-scroll' import adaptive from './directive/el-table' import './directive/dialogDrag' import Cookies from 'js-cookie' import allDirective from './plugins/commonDirective' const routerPush = VueRouter.prototype.push VueRouter.prototype.push = function push(location) { return routerPush.call(this, location) } Object.keys(allDirective).forEach(f => { Vue.directive(f, allDirective[f]) }) // Vue.use(icon) Vue.use(adaptive) Vue.use(VueRouter) Vue.use(scroll) Vue.use(ztAdmin) Vue.use(SysFileManagement) Vue.use(experimentUploader) Vue.use(ProductTree) Vue.use(ProductSelector) Vue.use(ConfigUploader) Vue.use(RepairerSelector) Vue.use(TeamGroupSelector) Vue.use(TeamMajorSelector) Vue.use(TingteamSelector) Vue.use(LocalShipSelector) Vue.use(ProductSelectorCascade) Vue.use(ProjectListSelectDialog) Vue.use(MenuTreeSelector) Vue.use(SelectTree) Vue.use(MajorSelector) Vue.use(ZtBoatTree) Vue.use(ColumnSelect) Vue.use(ZtEquipmentConfig) Vue.use(ZtEquipmentSelect) Vue.use(TableUploader) Vue.config.productionTip = false Vue.directive('loadmore', { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body-wrapper') selectWrap.addEventListener('scroll', function () { let sign = 0 const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight if (scrollDistance <= sign) { binding.value() } }) } }) Vue.filter('filterTime', function (data, format) { let year = ' ' let months = ' ' let days = ' ' let hours = ' ' let minutes = ' ' let seconds = ' ' if (data != null) { const dateObject = new Date(data); year = dateObject.getFullYear() months = (dateObject.getMonth() + 1).toString().padStart(2, '0') days = dateObject.getDate() hours = (dateObject.getHours() + 1).toString().padStart(2, '0') minutes = (dateObject.getMinutes() + 1).toString().padStart(2, '0') seconds = (dateObject.getSeconds() + 1).toString().padStart(2, '0') } return format.replace('YYYY', year).replace('MM', months).replace('DD', days).replace('hh', hours).replace('mm', minutes).replace('ss', seconds); }) // 默认主题 浅版light 深版hight store.state.theme = Cookies.get('systemTheme') || 'light' // 保存整站vuex本地储存初始状态 window.SITE_CONFIG['storeState'] = cloneDeep(store.state) // 表格默认展示条数 store.state.config.tablePageSize = 20 store.state.config.tablePageSizes = [10, 20, 50, 100, 1000] Vue.use(Element, { size: 'mini', i18n: (key, value) => i18n.t(key, value) }) Vue.config.warnHandler = function (msg) { if (!msg.includes('Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders.')) { return } } // 拦截request.js里面重新登录 // Vue.prototype.$EventBus.$on('reLogin', () => router.replace({name: 'login'}, onComplete => { // }, onAbort => { // })) new Vue({ i18n, router, store, render: h => h(App) }).$mount('#app')