import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' import { Button, Table, TableColumn, Form, FormItem, Input, Select, Option, Dialog, Pagination, Tag, Card, Col, Row, Icon, Descriptions, DescriptionsItem, Radio, RadioGroup, Switch, Checkbox, CheckboxGroup, Dropdown, DropdownMenu, DropdownItem, DatePicker, Upload, Tabs, TabPane, Menu, Submenu, MenuItem, Empty, Drawer, Timeline, TimelineItem, Progress, Container, Header, Aside, Main, Avatar, Scrollbar, Divider, Tab, Badge, Tree, ColorPicker, Tooltip, Popover, Slider, InputNumber, MessageBox } from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import { formatPrice, formatPriceWithSymbol, formatRate, formatScore } from './utils/format' Vue.use(Button) Vue.use(Table) Vue.use(TableColumn) Vue.use(Form) Vue.use(FormItem) Vue.use(Input) Vue.use(Select) Vue.use(Option) Vue.use(Dialog) Vue.use(Pagination) Vue.use(Tag) Vue.use(Card) Vue.use(Col) Vue.use(Row) Vue.use(Icon) Vue.use(Descriptions) Vue.use(DescriptionsItem) Vue.use(Radio) Vue.use(RadioGroup) Vue.use(Switch) Vue.use(Checkbox) Vue.use(CheckboxGroup) Vue.use(Dropdown) Vue.use(DropdownMenu) Vue.use(DropdownItem) Vue.use(DatePicker) Vue.use(Upload) Vue.use(Tabs) Vue.use(TabPane) Vue.use(Menu) Vue.use(Submenu) Vue.use(MenuItem) Vue.use(Empty) Vue.use(Drawer) Vue.use(Timeline) Vue.use(TimelineItem) Vue.use(Progress) Vue.use(Container) Vue.use(Header) Vue.use(Aside) Vue.use(Main) Vue.use(Avatar) Vue.use(Scrollbar) Vue.use(Divider) Vue.use(Badge) Vue.use(Tree) Vue.use(ColorPicker) Vue.use(Tooltip) Vue.use(Popover) Vue.use(Slider) Vue.use(InputNumber) // MessageBox 没有 install 方法,Vue.use(MessageBox) ——这是错误的,不会注册 $confirm // 需要手动挂载到 prototype 上 Vue.prototype.$confirm = MessageBox.confirm Vue.prototype.$alert = MessageBox.alert Vue.prototype.$prompt = MessageBox.prompt Vue.prototype.formatPrice = formatPrice Vue.prototype.formatPriceWithSymbol = formatPriceWithSymbol Vue.prototype.formatRate = formatRate Vue.prototype.formatScore = formatScore // Fix Element UI 2.15.x el-submenu removeTabindex null error // https://github.com/ElemeFE/element/issues/21965 // Also fixes: v-if 切换菜单项后 el-submenu 残留 DOM 遮罩导致无法点击的问题 const ElSubmenu = Vue.component('ElSubmenu') if (ElSubmenu && ElSubmenu.options && ElSubmenu.options.methods) { const origRemove = ElSubmenu.options.methods.removeTabindex if (origRemove) { ElSubmenu.options.methods.removeTabindex = function() { try { if (!this.$el || !this.$el.querySelector) return const tooltip = this.$el.querySelector('.el-tooltip') if (!tooltip) return return origRemove.call(this) } catch (e) { // v-if 切换导致 DOM 已销毁时的静默容错 } } } // el-submenu 展开/收起时也可能操作已销毁的 DOM const origOpen = ElSubmenu.options.methods.open if (origOpen) { ElSubmenu.options.methods.open = function() { try { return origOpen.call(this) } catch (e) { // 静默容错 } } } } Vue.config.productionTip = false new Vue({ router, store, render: h => h(App) }).$mount('#app')