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 @@