diff --git a/litemall-admin/package.json b/litemall-admin/package.json
index a3f4a1de..b3f08f36 100644
--- a/litemall-admin/package.json
+++ b/litemall-admin/package.json
@@ -38,7 +38,6 @@
"screenfull": "3.3.3",
"vue": "2.5.17",
"vue-count-to": "1.0.13",
- "vue-i18n": "7.3.2",
"vue-router": "3.0.1",
"vuex": "3.0.1",
"xlsx": "^0.11.16"
diff --git a/litemall-admin/src/components/Breadcrumb/index.vue b/litemall-admin/src/components/Breadcrumb/index.vue
index 32a8fb69..b3e59e56 100644
--- a/litemall-admin/src/components/Breadcrumb/index.vue
+++ b/litemall-admin/src/components/Breadcrumb/index.vue
@@ -2,15 +2,14 @@
- {{ generateTitle(item.meta.title) }}
- {{ generateTitle(item.meta.title) }}
+ {{ item.meta.title }}
+ {{ item.meta.title }}
-
-
-
diff --git a/litemall-admin/src/lang/en.js b/litemall-admin/src/lang/en.js
deleted file mode 100644
index 3f664194..00000000
--- a/litemall-admin/src/lang/en.js
+++ /dev/null
@@ -1,157 +0,0 @@
-export default {
- route: {
- dashboard: 'Dashboard',
- introduction: 'Introduction',
- documentation: 'Documentation',
- guide: 'Guide',
- permission: 'Permission',
- pagePermission: 'Page Permission',
- directivePermission: 'Directive Permission',
- icons: 'Icons',
- components: 'Components',
- componentIndex: 'Introduction',
- tinymce: 'Tinymce',
- markdown: 'Markdown',
- jsonEditor: 'JSON Editor',
- dndList: 'Dnd List',
- splitPane: 'SplitPane',
- avatarUpload: 'Avatar Upload',
- dropzone: 'Dropzone',
- sticky: 'Sticky',
- countTo: 'CountTo',
- componentMixin: 'Mixin',
- backToTop: 'BackToTop',
- dragDialog: 'Drag Dialog',
- dragSelect: 'Drag Select',
- dragKanban: 'Drag Kanban',
- charts: 'Charts',
- keyboardChart: 'Keyboard Chart',
- lineChart: 'Line Chart',
- mixChart: 'Mix Chart',
- example: 'Example',
- nested: 'Nested Routes',
- menu1: 'Menu 1',
- 'menu1-1': 'Menu 1-1',
- 'menu1-2': 'Menu 1-2',
- 'menu1-2-1': 'Menu 1-2-1',
- 'menu1-2-2': 'Menu 1-2-2',
- 'menu1-3': 'Menu 1-3',
- menu2: 'Menu 2',
- Table: 'Table',
- dynamicTable: 'Dynamic Table',
- dragTable: 'Drag Table',
- inlineEditTable: 'Inline Edit',
- complexTable: 'Complex Table',
- treeTable: 'Tree Table',
- customTreeTable: 'Custom TreeTable',
- tab: 'Tab',
- form: 'Form',
- createArticle: 'Create Article',
- editArticle: 'Edit Article',
- articleList: 'Article List',
- errorPages: 'Error Pages',
- page401: '401',
- page404: '404',
- errorLog: 'Error Log',
- excel: 'Excel',
- exportExcel: 'Export Excel',
- selectExcel: 'Export Selected',
- uploadExcel: 'Upload Excel',
- zip: 'Zip',
- exportZip: 'Export Zip',
- theme: 'Theme',
- clipboardDemo: 'Clipboard',
- i18n: 'I18n',
- externalLink: 'External Link'
- },
- navbar: {
- logOut: 'Log Out',
- dashboard: 'Dashboard',
- github: 'Github',
- screenfull: 'Screenfull',
- theme: 'Theme',
- size: 'Global Size'
- },
- login: {
- title: 'Login Form',
- logIn: 'Log in',
- username: 'Username',
- password: 'Password',
- any: 'any',
- thirdparty: 'Or connect with',
- thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'
- },
- documentation: {
- documentation: 'Documentation',
- github: 'Github Repository'
- },
- permission: {
- roles: 'Your roles',
- perms: 'Your permissions',
- switchRoles: 'Switch roles'
- },
- guide: {
- description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',
- button: 'Show Guide'
- },
- components: {
- documentation: 'Documentation',
- tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.',
- dropzoneTips: 'Because my business has special needs, and has to upload images to qiniu, so instead of a third party, I chose encapsulate it by myself. It is very simple, you can see the detail code in @/components/Dropzone.',
- stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',
- backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',
- backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',
- imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.'
- },
- table: {
- dynamicTips1: 'Fixed header, sorted by header order',
- dynamicTips2: 'Not fixed header, sorted by click order',
- dragTips1: 'The default order',
- dragTips2: 'The after dragging order',
- title: 'Title',
- importance: 'Imp',
- type: 'Type',
- remark: 'Remark',
- search: 'Search',
- add: 'Add',
- export: 'Export',
- reviewer: 'reviewer',
- id: 'ID',
- date: 'Date',
- author: 'Author',
- readings: 'Readings',
- status: 'Status',
- actions: 'Actions',
- edit: 'Edit',
- publish: 'Publish',
- draft: 'Draft',
- delete: 'Delete',
- cancel: 'Cancel',
- confirm: 'Confirm'
- },
- errorLog: {
- tips: 'Please click the bug icon in the upper right corner',
- description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',
- documentation: 'Document introduction'
- },
- excel: {
- export: 'Export',
- selectedExport: 'Export Selected Items',
- placeholder: 'Please enter the file name(default excel-list)'
- },
- zip: {
- export: 'Export',
- placeholder: 'Please enter the file name(default file)'
- },
- theme: {
- change: 'Change Theme',
- documentation: 'Theme documentation',
- tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'
- },
- tagsView: {
- refresh: 'Refresh',
- close: 'Close',
- closeOthers: 'Close Others',
- closeAll: 'Close All'
- }
-}
diff --git a/litemall-admin/src/lang/index.js b/litemall-admin/src/lang/index.js
deleted file mode 100644
index 07a4a01f..00000000
--- a/litemall-admin/src/lang/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-import Cookies from 'js-cookie'
-import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
-import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
-import enLocale from './en'
-import zhLocale from './zh'
-
-Vue.use(VueI18n)
-
-const messages = {
- en: {
- ...enLocale,
- ...elementEnLocale
- },
- zh: {
- ...zhLocale,
- ...elementZhLocale
- }
-}
-
-const i18n = new VueI18n({
- // set locale
- // options: en | zh
- locale: Cookies.get('language') || 'zh',
- // set locale messages
- messages
-})
-
-export default i18n
diff --git a/litemall-admin/src/lang/zh.js b/litemall-admin/src/lang/zh.js
deleted file mode 100644
index 6960274b..00000000
--- a/litemall-admin/src/lang/zh.js
+++ /dev/null
@@ -1,157 +0,0 @@
-export default {
- route: {
- dashboard: '首页',
- introduction: '简述',
- documentation: '文档',
- guide: '引导页',
- permission: '权限测试页',
- pagePermission: '页面权限',
- directivePermission: '指令权限',
- icons: '图标',
- components: '组件',
- componentIndex: '介绍',
- tinymce: '富文本编辑器',
- markdown: 'Markdown',
- jsonEditor: 'JSON编辑器',
- dndList: '列表拖拽',
- splitPane: 'Splitpane',
- avatarUpload: '头像上传',
- dropzone: 'Dropzone',
- sticky: 'Sticky',
- countTo: 'CountTo',
- componentMixin: '小组件',
- backToTop: '返回顶部',
- dragDialog: '拖拽 Dialog',
- dragSelect: '拖拽 Select',
- dragKanban: '可拖拽看板',
- charts: '图表',
- keyboardChart: '键盘图表',
- lineChart: '折线图',
- mixChart: '混合图表',
- example: '综合实例',
- nested: '路由嵌套',
- menu1: '菜单1',
- 'menu1-1': '菜单1-1',
- 'menu1-2': '菜单1-2',
- 'menu1-2-1': '菜单1-2-1',
- 'menu1-2-2': '菜单1-2-2',
- 'menu1-3': '菜单1-3',
- menu2: '菜单2',
- Table: 'Table',
- dynamicTable: '动态Table',
- dragTable: '拖拽Table',
- inlineEditTable: 'Table内编辑',
- complexTable: '综合Table',
- treeTable: '树形表格',
- customTreeTable: '自定义树表',
- tab: 'Tab',
- form: '表单',
- createArticle: '创建文章',
- editArticle: '编辑文章',
- articleList: '文章列表',
- errorPages: '错误页面',
- page401: '401',
- page404: '404',
- errorLog: '错误日志',
- excel: 'Excel',
- exportExcel: 'Export Excel',
- selectExcel: 'Export Selected',
- uploadExcel: 'Upload Excel',
- zip: 'Zip',
- exportZip: 'Export Zip',
- theme: '换肤',
- clipboardDemo: 'Clipboard',
- i18n: '国际化',
- externalLink: '外链'
- },
- navbar: {
- logOut: '退出登录',
- dashboard: '首页',
- github: '项目地址',
- screenfull: '全屏',
- theme: '换肤',
- size: '布局大小'
- },
- login: {
- title: '系统登录',
- logIn: '登录',
- username: '账号',
- password: '密码',
- any: '随便填',
- thirdparty: '第三方登录',
- thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!'
- },
- documentation: {
- documentation: '文档',
- github: 'Github 地址'
- },
- permission: {
- roles: '你的角色',
- perms: '你的权限',
- switchRoles: '切换角色'
- },
- guide: {
- description: '引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于',
- button: '打开引导'
- },
- components: {
- documentation: '文档',
- tinymceTips: '富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见',
- dropzoneTips: '由于我司业务有特殊需求,而且要传七牛 所以没用第三方,选择了自己封装。代码非常的简单,具体代码你可以在这里看到 @/components/Dropzone',
- stickyTips: '当页面滚动到预设的位置会吸附在顶部',
- backToTopTips1: '页面滚动到指定位置会在右下角出现返回顶部按钮',
- backToTopTips2: '可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素',
- imageUploadTips: '由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。'
- },
- table: {
- dynamicTips1: '固定表头, 按照表头顺序排序',
- dynamicTips2: '不固定表头, 按照点击顺序排序',
- dragTips1: '默认顺序',
- dragTips2: '拖拽后顺序',
- title: '标题',
- importance: '重要性',
- type: '类型',
- remark: '点评',
- search: '搜索',
- add: '添加',
- export: '导出',
- reviewer: '审核人',
- id: '序号',
- date: '时间',
- author: '作者',
- readings: '阅读数',
- status: '状态',
- actions: '操作',
- edit: '编辑',
- publish: '发布',
- draft: '草稿',
- delete: '删除',
- cancel: '取 消',
- confirm: '确 定'
- },
- errorLog: {
- tips: '请点击右上角bug小图标',
- description: '现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',
- documentation: '文档介绍'
- },
- excel: {
- export: '导出',
- selectedExport: '导出已选择项',
- placeholder: '请输入文件名(默认excel-list)'
- },
- zip: {
- export: '导出',
- placeholder: '请输入文件名(默认file)'
- },
- theme: {
- change: '换肤',
- documentation: '换肤文档',
- tips: 'Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。'
- },
- tagsView: {
- refresh: '刷新',
- close: '关闭',
- closeOthers: '关闭其它',
- closeAll: '关闭所有'
- }
-}
diff --git a/litemall-admin/src/main.js b/litemall-admin/src/main.js
index 0daf4677..de688815 100644
--- a/litemall-admin/src/main.js
+++ b/litemall-admin/src/main.js
@@ -13,7 +13,6 @@ import App from './App'
import router from './router'
import store from './store'
-import i18n from './lang' // Internationalization
import './icons' // icon
import './permission' // permission control
@@ -22,8 +21,7 @@ import * as filters from './filters' // global filters
import permission from '@/directive/permission/index.js' // 权限判断指令
Vue.use(Element, {
- size: Cookies.get('size') || 'medium', // set element-ui default size
- i18n: (key, value) => i18n.t(key, value)
+ size: Cookies.get('size') || 'medium' // set element-ui default size
})
Vue.directive('permission', permission)
@@ -39,6 +37,5 @@ new Vue({
el: '#app',
router,
store,
- i18n,
render: h => h(App)
})
diff --git a/litemall-admin/src/router/index.js b/litemall-admin/src/router/index.js
index 3223b917..e206e5e2 100644
--- a/litemall-admin/src/router/index.js
+++ b/litemall-admin/src/router/index.js
@@ -65,7 +65,7 @@ export const constantRouterMap = [
path: 'dashboard',
component: () => import('@/views/dashboard/index'),
name: 'Dashboard',
- meta: { title: 'dashboard', icon: 'dashboard', noCache: true }
+ meta: { title: '首页', icon: 'dashboard', noCache: true }
}
]
}
@@ -398,6 +398,60 @@ export const asyncRouterMap = [
]
},
+ {
+ path: '/config',
+ component: Layout,
+ redirect: 'noredirect',
+ alwaysShow: true,
+ name: 'sysManage',
+ meta: {
+ title: '配置管理',
+ icon: 'chart'
+ },
+ children: [
+ {
+ path: 'mall',
+ component: () => import('@/views/config/mall'),
+ name: 'configMall',
+ meta: {
+ perms: ['GET /admin/config/mall', 'POST /admin/config/mall'],
+ title: '商场配置',
+ noCache: true
+ }
+ },
+ {
+ path: 'express',
+ component: () => import('@/views/config/express'),
+ name: 'configExpress',
+ meta: {
+ perms: ['GET /admin/config/express', 'POST /admin/config/express'],
+ title: '运费配置',
+ noCache: true
+ }
+ },
+ {
+ path: 'order',
+ component: () => import('@/views/config/order'),
+ name: 'configOrder',
+ meta: {
+ perms: ['GET /admin/config/order', 'POST /admin/config/order'],
+ title: '订单配置',
+ noCache: true
+ }
+ },
+ {
+ path: 'wx',
+ component: () => import('@/views/config/wx'),
+ name: 'configWx',
+ meta: {
+ perms: ['GET /admin/config/wx', 'POST /admin/config/wx'],
+ title: '小程序配置',
+ noCache: true
+ }
+ }
+ ]
+ },
+
{
path: '/stat',
component: Layout,
diff --git a/litemall-admin/src/utils/i18n.js b/litemall-admin/src/utils/i18n.js
deleted file mode 100644
index 76be5a4e..00000000
--- a/litemall-admin/src/utils/i18n.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// translate router.meta.title, be used in breadcrumb sidebar tagsview
-export function generateTitle(title) {
- const hasKey = this.$te('route.' + title)
-
- if (hasKey) {
- // $t :this method from vue-i18n, inject in @/lang/index.js
- const translatedTitle = this.$t('route.' + title)
-
- return translatedTitle
- }
- return title
-}
diff --git a/litemall-admin/src/views/layout/components/Navbar.vue b/litemall-admin/src/views/layout/components/Navbar.vue
index 17c7354c..cad7e8de 100644
--- a/litemall-admin/src/views/layout/components/Navbar.vue
+++ b/litemall-admin/src/views/layout/components/Navbar.vue
@@ -7,16 +7,14 @@