diff --git a/package.json b/package.json
index 27c16e0..60d7a25 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"vue-count-to": "^1.0.13",
"vue-cropper": "0.4.9",
"vue-echarts": "^5.0.0-beta.0",
+ "vue-i18n": "^8.28.2",
"vue-image-crop-upload": "^2.5.0",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index 2d49dd8..f09bc10 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -3,14 +3,14 @@
-
+
-
+
- {{ tag.title }}
+ {{$t(tag.title )}}
diff --git a/src/main.js b/src/main.js
index db43ceb..011a5eb 100644
--- a/src/main.js
+++ b/src/main.js
@@ -4,7 +4,14 @@ 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 } // 边框
@@ -14,10 +21,11 @@ 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 FileSaver from 'file-saver'
+import XLSX from 'xlsx'
// 权限指令
import checkPer from '@/utils/permission'
import permission from './components/Permission'
@@ -36,16 +44,32 @@ Vue.use(VueClipboard)
Vue.use(checkPer)
Vue.use(permission)
Vue.use(dict)
+
+Vue.use(VueI18n)
+
+const messages = {
+ en: enLocale,
+ 'zh': zhCNLocale
+}
+
+const i18n = new VueI18n({
+ locale: 'en', // 设置默认语言
+ 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,
diff --git a/src/router/index.js b/src/router/index.js
index 6c3aa27..5dfb0b1 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission'
NProgress.configure({ showSpinner: false })// NProgress Configuration
-const whiteList = ['/login', '/401', '404', '/system2/report']// no redirect whitelist
+const whiteList = ['/login', '/login_en', '/401', '404', '/system2/report']// no redirect whitelist
router.beforeEach((to, from, next) => {
if (to.meta.title) {
diff --git a/src/router/routers.js b/src/router/routers.js
index c575ab9..9f05650 100644
--- a/src/router/routers.js
+++ b/src/router/routers.js
@@ -9,6 +9,10 @@ export const constantRouterMap = [
meta: { title: '登录', noCache: false ,keepAlive:true},
component: (resolve) => require(['@/views/login'], resolve),
hidden: true
+ },{ path: '/login_en',
+ meta: { title: 'Login', noCache: false ,keepAlive:true},
+ component: (resolve) => require(['@/views/login_en'], resolve),
+ hidden: true
},{ path: '/home',
meta: { title: '登录', noCache: false ,keepAlive:true},
component: (resolve) => require(['@/views/home'], resolve),
diff --git a/src/views/login.vue b/src/views/login.vue
index 1ae52bc..d8f2ff8 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,38 +1,66 @@
-
+
-
-
- WMS 管理系统
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
- 记住我
-
-
-
- 登 录
- 登 录 中...
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 欢迎来到 YouChain Plus! 👋
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+ 记住我
+
+
+
+ 语言切换
+
+
+ 中文
+ 英文
+
+
+
+
+
+ 登 录
+ 登 录 中...
+
+
+
+ 如您还没有账号?请联系管理员
+
+
+
+
+