78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
import Vue from 'vue'
|
|
|
|
import Cookies from 'js-cookie'
|
|
|
|
import 'normalize.css/normalize.css'
|
|
import VueClipboard from 'vue-clipboard2'
|
|
|
|
import ElementUI from 'element-ui'
|
|
import Element, { Table, TableColumn } from 'element-ui'
|
|
|
|
import VueI18n from 'vue-i18n'
|
|
import locale from 'element-ui/lib/locale'
|
|
import enLocale from './i18n/en'
|
|
import zhCNLocale from './i18n/zh-CN'
|
|
const TableProps = Element.Table.props
|
|
const TableColumnProps = Element.TableColumn.props
|
|
TableProps.border = { type: Boolean, default: true } // 边框
|
|
TableProps.align = { type: String, default: 'center' } // 居中
|
|
TableProps.stripe = { type: Boolean, default: false } // 斑马纹
|
|
TableColumnProps.showOverflowTooltip = { type: Boolean, default: true } // 文本溢出
|
|
TableColumnProps.sortable = { type: Boolean, default: true } // 置默认的排序列和排序顺序
|
|
Vue.use(Table)
|
|
Vue.use(TableColumn)
|
|
Vue.use(ElementUI, { locale })
|
|
// 数据字典
|
|
import dict from './components/Dict'
|
|
import FileSaver from 'file-saver'
|
|
import XLSX from 'xlsx'
|
|
// 权限指令
|
|
import checkPer from '@/utils/permission'
|
|
import permission from './components/Permission'
|
|
import './assets/styles/element-variables.scss'
|
|
|
|
// global css
|
|
import './assets/styles/index.scss'
|
|
|
|
import App from './App'
|
|
import store from './store'
|
|
import router from './router/routers'
|
|
|
|
import './assets/icons' // icon
|
|
import './router/index' // permission control
|
|
Vue.use(VueClipboard)
|
|
Vue.use(checkPer)
|
|
Vue.use(permission)
|
|
Vue.use(dict)
|
|
|
|
Vue.use(VueI18n)
|
|
|
|
const messages = {
|
|
en: enLocale,
|
|
'zh': zhCNLocale
|
|
}
|
|
const storedLanguage = localStorage.getItem('lang') || 'zh'
|
|
const i18n = new VueI18n({
|
|
locale: storedLanguage, // 设置默认语言
|
|
messages
|
|
})
|
|
|
|
Vue.use(Element, {
|
|
size: Cookies.get('size') || 'small' // set element-ui default size
|
|
})
|
|
|
|
locale.i18n((key, value) => i18n.t(key, value))
|
|
Vue.use(ElementUI, { i18n: (key, value) => i18n.t(key, value) })
|
|
|
|
Vue.prototype.$fileSaver = FileSaver
|
|
Vue.prototype.$xlsx = XLSX
|
|
Vue.config.productionTip = false
|
|
|
|
new Vue({
|
|
i18n,
|
|
el: '#app',
|
|
router,
|
|
store,
|
|
render: h => h(App)
|
|
})
|