diff --git a/mock/article.js b/mock/article.js index 45b75296..bc236eb9 100644 --- a/mock/article.js +++ b/mock/article.js @@ -3,7 +3,7 @@ import Mock from 'mockjs' const List = [] const count = 100 -const baseContent = '<p>我是测试数据我是测试数据</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>' +const baseContent = '<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>' const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3' for (let i = 0; i < count; i++) { diff --git a/mock/index.js b/mock/index.js index 08cdc471..6907e861 100644 --- a/mock/index.js +++ b/mock/index.js @@ -4,7 +4,7 @@ import { param2Obj } from '../src/utils' import user from './user' import role from './role' import article from './article' -import search from './remoteSearch' +import search from './remote-search' const mocks = [ ...user, diff --git a/mock/remoteSearch.js b/mock/remote-search.js similarity index 100% rename from mock/remoteSearch.js rename to mock/remote-search.js diff --git a/mock/role/routes.js b/mock/role/routes.js index 14413d48..2d3613e7 100644 --- a/mock/role/routes.js +++ b/mock/role/routes.js @@ -19,17 +19,17 @@ export const constantRoutes = [ }, { path: '/auth-redirect', - component: 'views/login/authRedirect', + component: 'views/login/auth-redirect', hidden: true }, { path: '/404', - component: 'views/errorPage/404', + component: 'views/error-page/404', hidden: true }, { path: '/401', - component: 'views/errorPage/401', + component: 'views/error-page/401', hidden: true }, { @@ -119,7 +119,7 @@ export const asyncRoutes = [ children: [ { path: 'index', - component: 'views/svg-icons/index', + component: 'views/icons/index', name: 'Icons', meta: { title: 'icons', icon: 'icon', noCache: true } } @@ -129,7 +129,7 @@ export const asyncRoutes = [ { path: '/components', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', name: 'ComponentDemo', meta: { title: 'components', @@ -150,19 +150,19 @@ export const asyncRoutes = [ }, { path: 'json-editor', - component: 'views/components-demo/jsonEditor', + component: 'views/components-demo/json-editor', name: 'JsonEditorDemo', meta: { title: 'jsonEditor' } }, { - path: 'splitpane', - component: 'views/components-demo/splitpane', + path: 'split-pane', + component: 'views/components-demo/split-pane', name: 'SplitpaneDemo', meta: { title: 'splitPane' } }, { path: 'avatar-upload', - component: 'views/components-demo/avatarUpload', + component: 'views/components-demo/avatar-upload', name: 'AvatarUploadDemo', meta: { title: 'avatarUpload' } }, @@ -180,7 +180,7 @@ export const asyncRoutes = [ }, { path: 'count-to', - component: 'views/components-demo/countTo', + component: 'views/components-demo/count-to', name: 'CountToDemo', meta: { title: 'countTo' } }, @@ -192,31 +192,31 @@ export const asyncRoutes = [ }, { path: 'back-to-top', - component: 'views/components-demo/backToTop', + component: 'views/components-demo/back-to-top', name: 'BackToTopDemo', meta: { title: 'backToTop' } }, { path: 'drag-dialog', - component: 'views/components-demo/dragDialog', + component: 'views/components-demo/drag-dialog', name: 'DragDialogDemo', meta: { title: 'dragDialog' } }, { path: 'drag-select', - component: 'views/components-demo/dragSelect', + component: 'views/components-demo/drag-select', name: 'DragSelectDemo', meta: { title: 'dragSelect' } }, { path: 'dnd-list', - component: 'views/components-demo/dndList', + component: 'views/components-demo/dnd-list', name: 'DndListDemo', meta: { title: 'dndList' } }, { path: 'drag-kanban', - component: 'views/components-demo/dragKanban', + component: 'views/components-demo/drag-kanban', name: 'DragKanbanDemo', meta: { title: 'dragKanban' } } @@ -225,7 +225,7 @@ export const asyncRoutes = [ { path: '/charts', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', name: 'Charts', meta: { title: 'charts', @@ -361,7 +361,7 @@ export const asyncRoutes = [ { path: '/error', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', name: 'ErrorPages', meta: { title: 'errorPages', @@ -370,13 +370,13 @@ export const asyncRoutes = [ children: [ { path: '401', - component: 'views/errorPage/401', + component: 'views/error-page/401', name: 'Page401', meta: { title: 'page401', noCache: true } }, { path: '404', - component: 'views/errorPage/404', + component: 'views/error-page/404', name: 'Page404', meta: { title: 'page404', noCache: true } } @@ -386,11 +386,11 @@ export const asyncRoutes = [ { path: '/error-log', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', children: [ { path: 'log', - component: 'views/errorLog/index', + component: 'views/error-log/index', name: 'ErrorLog', meta: { title: 'errorLog', icon: 'bug' } } @@ -409,25 +409,25 @@ export const asyncRoutes = [ children: [ { path: 'export-excel', - component: 'views/excel/exportExcel', + component: 'views/excel/export-excel', name: 'ExportExcel', meta: { title: 'exportExcel' } }, { path: 'export-selected-excel', - component: 'views/excel/selectExcel', + component: 'views/excel/select-excel', name: 'SelectExcel', meta: { title: 'selectExcel' } }, { path: 'export-merge-header', - component: 'views/excel/mergeHeader', + component: 'views/excel/merge-header', name: 'MergeHeader', meta: { title: 'mergeHeader' } }, { path: 'upload-excel', - component: 'views/excel/uploadExcel', + component: 'views/excel/upload-excel', name: 'UploadExcel', meta: { title: 'uploadExcel' } } @@ -472,7 +472,7 @@ export const asyncRoutes = [ { path: '/theme', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', children: [ { path: 'index', @@ -486,7 +486,7 @@ export const asyncRoutes = [ { path: '/clipboard', component: 'layout/Layout', - redirect: 'noredirect', + redirect: 'noRedirect', children: [ { path: 'index', diff --git a/src/api/remoteSearch.js b/src/api/remote-search.js similarity index 100% rename from src/api/remoteSearch.js rename to src/api/remote-search.js diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue index c094037f..36522f4a 100644 --- a/src/components/BackToTop/index.vue +++ b/src/components/BackToTop/index.vue @@ -1,12 +1,7 @@ <template> <transition :name="transitionName"> <div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop"> - <svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="Icon Icon--backToTopArrow" aria-hidden="true" style="height: 16px; width: 16px;"> - <title>回到顶部</title> - <g> - <path d="M12.036 15.59c0 .55-.453.995-.997.995H5.032c-.55 0-.997-.445-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29c.39-.39 1.026-.385 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" fill-rule="evenodd" /> - </g> - </svg> + <svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="Icon Icon--backToTopArrow" aria-hidden="true" style="height:16px;width:16px"><path d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" /></svg> </div> </transition> </template> diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index ff93ff45..b89d8da6 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -2,7 +2,7 @@ <el-breadcrumb class="app-breadcrumb" separator="/"> <transition-group name="breadcrumb"> <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> - <span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{ + <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ generateTitle(item.meta.title) }}</span> <a v-else @click.prevent="handleLink(item)">{{ generateTitle(item.meta.title) }}</a> </el-breadcrumb-item> @@ -31,15 +31,23 @@ export default { methods: { generateTitle, getBreadcrumb() { - let matched = this.$route.matched.filter(item => item.name) - + // only show routes with meta.title + let matched = this.$route.matched.filter(item => item.meta && item.meta.title) const first = matched[0] - if (first && first.name.trim().toLocaleLowerCase() !== 'Dashboard'.toLocaleLowerCase()) { + + if (!this.isDashboard(first)) { matched = [{ path: '/dashboard', meta: { title: 'dashboard' }}].concat(matched) } this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) }, + isDashboard(route) { + const name = route && route.name + if (!name) { + return false + } + return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase() + }, pathCompile(path) { // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 const { params } = this.$route diff --git a/src/components/Charts/keyboard.vue b/src/components/Charts/Keyboard.vue similarity index 100% rename from src/components/Charts/keyboard.vue rename to src/components/Charts/Keyboard.vue diff --git a/src/components/Charts/lineMarker.vue b/src/components/Charts/LineMarker.vue similarity index 100% rename from src/components/Charts/lineMarker.vue rename to src/components/Charts/LineMarker.vue diff --git a/src/components/Charts/mixChart.vue b/src/components/Charts/MixChart.vue similarity index 100% rename from src/components/Charts/mixChart.vue rename to src/components/Charts/MixChart.vue diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue index 6668ad5c..90eea067 100644 --- a/src/components/HeaderSearch/index.vue +++ b/src/components/HeaderSearch/index.vue @@ -121,7 +121,7 @@ export default { data.title = [...data.title, i18ntitle] - if (router.redirect !== 'noredirect') { + if (router.redirect !== 'noRedirect') { // only push the routes with title // special case: need to exclude parent router without redirect res.push(data) diff --git a/src/components/JsonEditor/index.vue b/src/components/JsonEditor/index.vue index 81715f5d..07b282e4 100644 --- a/src/components/JsonEditor/index.vue +++ b/src/components/JsonEditor/index.vue @@ -25,8 +25,8 @@ export default { }, watch: { value(value) { - const editor_value = this.jsonEditor.getValue() - if (value !== editor_value) { + const editorValue = this.jsonEditor.getValue() + if (value !== editorValue) { this.jsonEditor.setValue(JSON.stringify(this.value, null, 2)) } } diff --git a/src/components/Kanban/index.vue b/src/components/Kanban/index.vue index c2cb4691..82f7dd7e 100644 --- a/src/components/Kanban/index.vue +++ b/src/components/Kanban/index.vue @@ -15,6 +15,7 @@ </draggable> </div> </template> + <script> import draggable from 'vuedraggable' diff --git a/src/components/MarkdownEditor/defaultOptions.js b/src/components/MarkdownEditor/default-options.js similarity index 100% rename from src/components/MarkdownEditor/defaultOptions.js rename to src/components/MarkdownEditor/default-options.js diff --git a/src/components/MarkdownEditor/index.vue b/src/components/MarkdownEditor/index.vue index 9ed7a584..3d6794b5 100644 --- a/src/components/MarkdownEditor/index.vue +++ b/src/components/MarkdownEditor/index.vue @@ -9,7 +9,7 @@ import 'tui-editor/dist/tui-editor.css' // editor ui import 'tui-editor/dist/tui-editor-contents.css' // editor content import Editor from 'tui-editor' -import defaultOptions from './defaultOptions' +import defaultOptions from './default-options' export default { name: 'MarddownEditor', diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue index a4962964..c815e132 100644 --- a/src/components/Pagination/index.vue +++ b/src/components/Pagination/index.vue @@ -15,7 +15,7 @@ </template> <script> -import { scrollTo } from '@/utils/scrollTo' +import { scrollTo } from '@/utils/scroll-to' export default { name: 'Pagination', diff --git a/src/components/Share/dropdownMenu.vue b/src/components/Share/DropdownMenu.vue similarity index 100% rename from src/components/Share/dropdownMenu.vue rename to src/components/Share/DropdownMenu.vue diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue index 0a556248..3879c5ad 100644 --- a/src/components/ThemePicker/index.vue +++ b/src/components/ThemePicker/index.vue @@ -8,19 +8,28 @@ </template> <script> - const version = require('element-ui/package.json').version // element-ui version from node_modules const ORIGINAL_THEME = '#409EFF' // default color -import defaultSettings from '@/settings' export default { data() { return { chalk: '', // content of theme-chalk css - theme: defaultSettings.theme + theme: '' + } + }, + computed: { + defaultTheme() { + return this.$store.state.settings.theme } }, watch: { + defaultTheme: { + handler: function(val, oldVal) { + this.theme = val + }, + immediate: true + }, async theme(val) { const oldVal = this.chalk ? this.theme : ORIGINAL_THEME if (typeof val !== 'string') return diff --git a/src/components/Tinymce/components/editorImage.vue b/src/components/Tinymce/components/EditorImage.vue similarity index 92% rename from src/components/Tinymce/components/editorImage.vue rename to src/components/Tinymce/components/EditorImage.vue index b3a4a2be..d4a98e84 100644 --- a/src/components/Tinymce/components/editorImage.vue +++ b/src/components/Tinymce/components/EditorImage.vue @@ -1,7 +1,7 @@ <template> <div class="upload-container"> <el-button :style="{background:color,borderColor:color}" icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true"> - 上传图片 + upload </el-button> <el-dialog :visible.sync="dialogVisible"> <el-upload @@ -16,14 +16,14 @@ list-type="picture-card" > <el-button size="small" type="primary"> - 点击上传 + Click upload </el-button> </el-upload> <el-button @click="dialogVisible = false"> - 取 消 + Cancel </el-button> <el-button type="primary" @click="handleSubmit"> - 确 定 + Confirm </el-button> </el-dialog> </div> @@ -54,7 +54,7 @@ export default { handleSubmit() { const arr = Object.keys(this.listObj).map(v => this.listObj[v]) if (!this.checkAllSuccess()) { - this.$message('请等待所有图片上传成功 或 出现了网络问题,请刷新页面重新上传!') + this.$message('Please wait for all images to be uploaded successfully. If there is a network problem, please refresh the page and upload again!') return } this.$emit('successCBK', arr) diff --git a/src/components/Tinymce/index.vue b/src/components/Tinymce/index.vue index 3d6dba2b..a05c3b9c 100644 --- a/src/components/Tinymce/index.vue +++ b/src/components/Tinymce/index.vue @@ -8,7 +8,7 @@ </template> <script> -import editorImage from './components/editorImage' +import editorImage from './components/EditorImage' import plugins from './plugins' import toolbar from './toolbar' diff --git a/src/components/Upload/singleImage.vue b/src/components/Upload/SingleImage.vue similarity index 99% rename from src/components/Upload/singleImage.vue rename to src/components/Upload/SingleImage.vue index ecec20a9..d16bbf37 100644 --- a/src/components/Upload/singleImage.vue +++ b/src/components/Upload/SingleImage.vue @@ -26,7 +26,6 @@ </template> <script> -// 预览效果见付费文章 import { getToken } from '@/api/qiniu' export default { diff --git a/src/components/Upload/singleImage2.vue b/src/components/Upload/SingleImage2.vue similarity index 100% rename from src/components/Upload/singleImage2.vue rename to src/components/Upload/SingleImage2.vue diff --git a/src/components/Upload/singleImage3.vue b/src/components/Upload/SingleImage3.vue similarity index 100% rename from src/components/Upload/singleImage3.vue rename to src/components/Upload/SingleImage3.vue diff --git a/src/directive/el-dragDialog/drag.js b/src/directive/el-drag-dialog/drag.js similarity index 100% rename from src/directive/el-dragDialog/drag.js rename to src/directive/el-drag-dialog/drag.js diff --git a/src/directive/el-dragDialog/index.js b/src/directive/el-drag-dialog/index.js similarity index 100% rename from src/directive/el-dragDialog/index.js rename to src/directive/el-drag-dialog/index.js diff --git a/src/directive/el-table/adaptive.js b/src/directive/el-table/adaptive.js index 3fa29c91..d229e9fd 100644 --- a/src/directive/el-table/adaptive.js +++ b/src/directive/el-table/adaptive.js @@ -1,11 +1,10 @@ - import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event' /** * How to use * <el-table height="100px" v-el-height-adaptive-table="{bottomOffset: 30}">...</el-table> * el-table height is must be set - * bottomOffset: 30(default) // The height of the table from the bottom of the page. + * bottomOffset: 30(default) // The height of the table from the bottom of the page. */ const doResize = (el, binding, vnode) => { @@ -30,13 +29,13 @@ export default { el.resizeListener = () => { doResize(el, binding, vnode) } - - addResizeListener(el, el.resizeListener) + // parameter 1 is must be "Element" type + addResizeListener(window.document.body, el.resizeListener) }, inserted(el, binding, vnode) { doResize(el, binding, vnode) }, unbind(el) { - removeResizeListener(el, el.resizeListener) + removeResizeListener(window.document.body, el.resizeListener) } } diff --git a/src/directive/el-table/index.js b/src/directive/el-table/index.js index d4cf406d..d3d45150 100644 --- a/src/directive/el-table/index.js +++ b/src/directive/el-table/index.js @@ -1,4 +1,3 @@ - import adaptive from './adaptive' const install = function(Vue) { diff --git a/src/directive/permission/permission.js b/src/directive/permission/permission.js index 1fc8f136..b27f24da 100644 --- a/src/directive/permission/permission.js +++ b/src/directive/permission/permission.js @@ -1,4 +1,3 @@ - import store from '@/store' export default { diff --git a/src/filters/index.js b/src/filters/index.js index 86e768d8..051000c1 100644 --- a/src/filters/index.js +++ b/src/filters/index.js @@ -1,4 +1,4 @@ -// set function parseTime,formatTime to filter +// import parseTime, formatTime and set to filter export { parseTime, formatTime } from '@/utils' /** diff --git a/src/lang/en.js b/src/lang/en.js index 490ac206..426d3d26 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -132,6 +132,9 @@ export default { cancel: 'Cancel', confirm: 'Confirm' }, + example: { + warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details' + }, 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.', diff --git a/src/lang/es.js b/src/lang/es.js index a8f69831..50b96037 100755 --- a/src/lang/es.js +++ b/src/lang/es.js @@ -132,6 +132,9 @@ export default { cancel: 'Cancelar', confirm: 'Confirmar' }, + example: { + warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details' + }, 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.', diff --git a/src/lang/zh.js b/src/lang/zh.js index 4394cc70..2055c5ab 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -132,6 +132,9 @@ export default { cancel: '取 消', confirm: '确 定' }, + example: { + warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见' + }, errorLog: { tips: '请点击右上角bug小图标', description: '现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。', diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index 773cd5c8..fb014a23 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -7,6 +7,7 @@ :collapse="isCollapse" :background-color="variables.menuBg" :text-color="variables.menuText" + :unique-opened="false" :active-text-color="variables.menuActiveText" :collapse-transition="false" mode="vertical" diff --git a/src/main.js b/src/main.js index 375a6b6e..41298d0c 100644 --- a/src/main.js +++ b/src/main.js @@ -2,7 +2,7 @@ import Vue from 'vue' import Cookies from 'js-cookie' -import 'normalize.css/normalize.css' // A modern alternative to CSS resets +import 'normalize.css/normalize.css' // a modern alternative to CSS resets import Element from 'element-ui' import './styles/element-variables.scss' @@ -13,24 +13,28 @@ import App from './App' import store from './store' import router from './router' -import i18n from './lang' // Internationalization +import i18n from './lang' // internationalization import './icons' // icon import './permission' // permission control -import './utils/errorLog' // error log +import './utils/error-log' // error log import * as filters from './filters' // global filters -import { mockXHR } from '../mock' // simulation data - -// mock api in github pages site build -if (process.env.NODE_ENV === 'production') { mockXHR() } +/** + * If you don't want to use mock-server + * you want to use mockjs for request interception + * you can execute: + * + * import { mockXHR } from '../mock' + * mockXHR() + */ Vue.use(Element, { size: Cookies.get('size') || 'medium', // set element-ui default size i18n: (key, value) => i18n.t(key, value) }) -// register global utility filters. +// register global utility filters Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) }) diff --git a/src/permission.js b/src/permission.js index 7cc2a5cf..750aeab6 100644 --- a/src/permission.js +++ b/src/permission.js @@ -4,6 +4,7 @@ import { Message } from 'element-ui' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style import { getToken } from '@/utils/auth' // get token from cookie +import getPageTitle from '@/utils/get-page-title' NProgress.configure({ showSpinner: false }) // NProgress Configuration @@ -13,6 +14,9 @@ router.beforeEach(async(to, from, next) => { // start progress bar NProgress.start() + // set page title + document.title = getPageTitle(to.meta.title) + // determine whether the user has logged in const hasToken = getToken() diff --git a/src/router/index.js b/src/router/index.js index c9117e5b..34afd5c5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -20,7 +20,7 @@ import nestedRouter from './modules/nested' * alwaysShow: true if set true, will always show the root menu * if not set alwaysShow, when item has more than one children route, * it will becomes nested mode, otherwise not show the root menu - * redirect: noredirect if `redirect:noredirect` will no redirect in the breadcrumb + * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb * name:'router-name' the name is used by <keep-alive> (must set!!!) * meta : { roles: ['admin','editor'] control the page roles (you can set multiple roles) @@ -57,17 +57,17 @@ export const constantRoutes = [ }, { path: '/auth-redirect', - component: () => import('@/views/login/authRedirect'), + component: () => import('@/views/login/auth-redirect'), hidden: true }, { path: '/404', - component: () => import('@/views/errorPage/404'), + component: () => import('@/views/error-page/404'), hidden: true }, { path: '/401', - component: () => import('@/views/errorPage/401'), + component: () => import('@/views/error-page/401'), hidden: true }, { @@ -118,8 +118,9 @@ export const asyncRoutes = [ { path: '/permission', component: Layout, - redirect: '/permission/index', + redirect: '/permission/page', alwaysShow: true, // will always show the root menu + name: 'Permission', meta: { title: 'permission', icon: 'lock', @@ -162,7 +163,7 @@ export const asyncRoutes = [ children: [ { path: 'index', - component: () => import('@/views/svg-icons/index'), + component: () => import('@/views/icons/index'), name: 'Icons', meta: { title: 'icons', icon: 'icon', noCache: true } } @@ -223,7 +224,7 @@ export const asyncRoutes = [ { path: '/error', component: Layout, - redirect: 'noredirect', + redirect: 'noRedirect', name: 'ErrorPages', meta: { title: 'errorPages', @@ -232,13 +233,13 @@ export const asyncRoutes = [ children: [ { path: '401', - component: () => import('@/views/errorPage/401'), + component: () => import('@/views/error-page/401'), name: 'Page401', meta: { title: 'page401', noCache: true } }, { path: '404', - component: () => import('@/views/errorPage/404'), + component: () => import('@/views/error-page/404'), name: 'Page404', meta: { title: 'page404', noCache: true } } @@ -248,11 +249,10 @@ export const asyncRoutes = [ { path: '/error-log', component: Layout, - redirect: 'noredirect', children: [ { path: 'log', - component: () => import('@/views/errorLog/index'), + component: () => import('@/views/error-log/index'), name: 'ErrorLog', meta: { title: 'errorLog', icon: 'bug' } } @@ -271,25 +271,25 @@ export const asyncRoutes = [ children: [ { path: 'export-excel', - component: () => import('@/views/excel/exportExcel'), + component: () => import('@/views/excel/export-excel'), name: 'ExportExcel', meta: { title: 'exportExcel' } }, { path: 'export-selected-excel', - component: () => import('@/views/excel/selectExcel'), + component: () => import('@/views/excel/select-excel'), name: 'SelectExcel', meta: { title: 'selectExcel' } }, { path: 'export-merge-header', - component: () => import('@/views/excel/mergeHeader'), + component: () => import('@/views/excel/merge-header'), name: 'MergeHeader', meta: { title: 'mergeHeader' } }, { path: 'upload-excel', - component: () => import('@/views/excel/uploadExcel'), + component: () => import('@/views/excel/upload-excel'), name: 'UploadExcel', meta: { title: 'uploadExcel' } } @@ -301,6 +301,7 @@ export const asyncRoutes = [ component: Layout, redirect: '/zip/download', alwaysShow: true, + name: 'Zip', meta: { title: 'zip', icon: 'zip' }, children: [ { @@ -334,7 +335,6 @@ export const asyncRoutes = [ { path: '/theme', component: Layout, - redirect: 'noredirect', children: [ { path: 'index', @@ -348,7 +348,6 @@ export const asyncRoutes = [ { path: '/clipboard', component: Layout, - redirect: 'noredirect', children: [ { path: 'index', diff --git a/src/router/modules/charts.js b/src/router/modules/charts.js index 7293490e..59ebf188 100644 --- a/src/router/modules/charts.js +++ b/src/router/modules/charts.js @@ -5,7 +5,7 @@ import Layout from '@/layout' const chartsRouter = { path: '/charts', component: Layout, - redirect: 'noredirect', + redirect: 'noRedirect', name: 'Charts', meta: { title: 'charts', @@ -25,8 +25,8 @@ const chartsRouter = { meta: { title: 'lineChart', noCache: true } }, { - path: 'mixchart', - component: () => import('@/views/charts/mixChart'), + path: 'mix-chart', + component: () => import('@/views/charts/mix-chart'), name: 'MixChart', meta: { title: 'mixChart', noCache: true } } diff --git a/src/router/modules/components.js b/src/router/modules/components.js index 889c371d..b7407e25 100644 --- a/src/router/modules/components.js +++ b/src/router/modules/components.js @@ -1,11 +1,11 @@ -/** When your routing table is too long, you can split it into small modules**/ +/** When your routing table is too long, you can split it into small modules **/ import Layout from '@/layout' const componentsRouter = { path: '/components', component: Layout, - redirect: 'noredirect', + redirect: 'noRedirect', name: 'ComponentDemo', meta: { title: 'components', @@ -26,19 +26,19 @@ const componentsRouter = { }, { path: 'json-editor', - component: () => import('@/views/components-demo/jsonEditor'), + component: () => import('@/views/components-demo/json-editor'), name: 'JsonEditorDemo', meta: { title: 'jsonEditor' } }, { - path: 'splitpane', - component: () => import('@/views/components-demo/splitpane'), + path: 'split-pane', + component: () => import('@/views/components-demo/split-pane'), name: 'SplitpaneDemo', meta: { title: 'splitPane' } }, { path: 'avatar-upload', - component: () => import('@/views/components-demo/avatarUpload'), + component: () => import('@/views/components-demo/avatar-upload'), name: 'AvatarUploadDemo', meta: { title: 'avatarUpload' } }, @@ -56,7 +56,7 @@ const componentsRouter = { }, { path: 'count-to', - component: () => import('@/views/components-demo/countTo'), + component: () => import('@/views/components-demo/count-to'), name: 'CountToDemo', meta: { title: 'countTo' } }, @@ -68,31 +68,31 @@ const componentsRouter = { }, { path: 'back-to-top', - component: () => import('@/views/components-demo/backToTop'), + component: () => import('@/views/components-demo/back-to-top'), name: 'BackToTopDemo', meta: { title: 'backToTop' } }, { path: 'drag-dialog', - component: () => import('@/views/components-demo/dragDialog'), + component: () => import('@/views/components-demo/drag-dialog'), name: 'DragDialogDemo', meta: { title: 'dragDialog' } }, { path: 'drag-select', - component: () => import('@/views/components-demo/dragSelect'), + component: () => import('@/views/components-demo/drag-select'), name: 'DragSelectDemo', meta: { title: 'dragSelect' } }, { path: 'dnd-list', - component: () => import('@/views/components-demo/dndList'), + component: () => import('@/views/components-demo/dnd-list'), name: 'DndListDemo', meta: { title: 'dndList' } }, { path: 'drag-kanban', - component: () => import('@/views/components-demo/dragKanban'), + component: () => import('@/views/components-demo/drag-kanban'), name: 'DragKanbanDemo', meta: { title: 'dragKanban' } } diff --git a/src/router/modules/nested.js b/src/router/modules/nested.js index ee165c8c..c52664c9 100644 --- a/src/router/modules/nested.js +++ b/src/router/modules/nested.js @@ -1,4 +1,4 @@ -/** When your routing table is too long, you can split it into small modules**/ +/** When your routing table is too long, you can split it into small modules **/ import Layout from '@/layout' diff --git a/src/router/modules/table.js b/src/router/modules/table.js index b54fb42d..d8e50302 100644 --- a/src/router/modules/table.js +++ b/src/router/modules/table.js @@ -1,4 +1,4 @@ -/** When your routing table is too long, you can split it into small modules**/ +/** When your routing table is too long, you can split it into small modules **/ import Layout from '@/layout' @@ -14,25 +14,25 @@ const tableRouter = { children: [ { path: 'dynamic-table', - component: () => import('@/views/table/dynamicTable/index'), + component: () => import('@/views/table/dynamic-table/index'), name: 'DynamicTable', meta: { title: 'dynamicTable' } }, { path: 'drag-table', - component: () => import('@/views/table/dragTable'), + component: () => import('@/views/table/drag-table'), name: 'DragTable', meta: { title: 'dragTable' } }, { path: 'inline-edit-table', - component: () => import('@/views/table/inlineEditTable'), + component: () => import('@/views/table/inline-edit-table'), name: 'InlineEditTable', meta: { title: 'inlineEditTable' } }, { path: 'complex-table', - component: () => import('@/views/table/complexTable'), + component: () => import('@/views/table/complex-table'), name: 'ComplexTable', meta: { title: 'complexTable' } } diff --git a/src/settings.js b/src/settings.js index e7ad4e1d..1ebc7f29 100644 --- a/src/settings.js +++ b/src/settings.js @@ -1,7 +1,5 @@ -import variables from '@/styles/element-variables.scss' - -export default { - theme: variables.theme, +module.exports = { + title: 'Vue Element Admin', /** * @type {boolean} true | false diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 820ca46b..bd35252c 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -1,7 +1,7 @@ import { asyncRoutes, constantRoutes } from '@/router' /** - * 通过meta.role判断是否与当前用户权限匹配 + * Use meta.role to determine if the current user has permission * @param roles * @param route */ @@ -14,7 +14,7 @@ function hasPermission(roles, route) { } /** - * 递归过滤异步路由表,返回符合用户角色权限的路由表 + * Filter asynchronous routing tables by recursion * @param routes asyncRoutes * @param roles */ diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js index 8522a5aa..e389af79 100644 --- a/src/store/modules/settings.js +++ b/src/store/modules/settings.js @@ -1,8 +1,10 @@ +import variables from '@/styles/element-variables.scss' import defaultSettings from '@/settings' -const { showSettings, tagsView, fixedHeader, sidebarLogo, theme } = defaultSettings + +const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings const state = { - theme: theme, + theme: variables.theme, showSettings: showSettings, tagsView: tagsView, fixedHeader: fixedHeader, diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 494dcfa4..9581d56a 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -1,4 +1,4 @@ -//覆盖一些element-ui样式 +// cover some element-ui styles .el-breadcrumb__inner, .el-breadcrumb__inner a { @@ -46,7 +46,7 @@ } } -//暂时性解决dialog 问题 https://github.com/ElemeFE/element/issues/2461 +// to fixed https://github.com/ElemeFE/element/issues/2461 .el-dialog { transform: none; left: 0; @@ -54,18 +54,7 @@ margin: 0 auto; } -//文章页textarea修改样式 -.article-textarea { - textarea { - padding-right: 40px; - resize: none; - border: none; - border-radius: 0px; - border-bottom: 1px solid #bfcbd9; - } -} - -//element ui upload +// refine element ui upload .upload-container { .el-upload { width: 100%; @@ -77,9 +66,14 @@ } } -//dropdown +// dropdown .el-dropdown-menu { a { display: block } } + +// fix date-picker ui bug in filter-item +.el-range-editor.el-input__inner { + display: inline-flex !important; +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 93f2157e..96095ef6 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -96,14 +96,18 @@ div:focus { } } -code { +aside { background: #eef1f6; - padding: 15px 16px; + padding: 8px 24px; margin-bottom: 20px; + border-radius: 2px; display: block; - line-height: 36px; - font-size: 15px; - font-family: "Source Sans Pro", "Helvetica Neue", Arial, sans-serif; + line-height: 32px; + font-size: 16px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + color: #2c3e50; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; a { color: #337ab7; @@ -115,20 +119,6 @@ code { } } -.warn-content { - background: rgba(66, 185, 131, .1); - border-radius: 2px; - padding: 16px; - padding: 1rem; - line-height: 1.6rem; - word-spacing: .05rem; - - a { - color: #42b983; - font-weight: 600; - } -} - //main-container全局样式 .app-container { padding: 20px; diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss index 525a65b9..e55f8656 100644 --- a/src/styles/sidebar.scss +++ b/src/styles/sidebar.scss @@ -1,6 +1,5 @@ #app { - // 主体区域 Main container .main-container { min-height: 100%; transition: margin-left .28s; @@ -8,7 +7,6 @@ position: relative; } - // 侧边栏 Sidebar container .sidebar-container { transition: width 0.28s; width: $sideBarWidth !important; @@ -22,7 +20,7 @@ z-index: 1001; overflow: hidden; - //reset element-ui css + // reset element-ui css .horizontal-collapse-transition { transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; } @@ -149,7 +147,7 @@ min-width: $sideBarWidth !important; } - // 适配移动端, Mobile responsive + // mobile responsive .mobile { .main-container { margin-left: 0px; diff --git a/src/styles/transition.scss b/src/styles/transition.scss index 7b5e4bfd..4cb27cc8 100644 --- a/src/styles/transition.scss +++ b/src/styles/transition.scss @@ -1,6 +1,6 @@ -//global transition css +// global transition css -/*fade*/ +/* fade */ .fade-enter-active, .fade-leave-active { transition: opacity 0.28s; @@ -11,7 +11,7 @@ opacity: 0; } -/*fade-transform*/ +/* fade-transform */ .fade-transform-leave-active, .fade-transform-enter-active { transition: all .5s; @@ -27,7 +27,7 @@ transform: translateX(30px); } -/*breadcrumb transition*/ +/* breadcrumb transition */ .breadcrumb-enter-active, .breadcrumb-leave-active { transition: all .5s; diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 98d7b672..a19c27c1 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -8,10 +8,10 @@ $tiffany: #4AB7BD; $yellow:#FEC171; $panGreen: #30B08F; -//sidebar +// sidebar $menuText:#bfcbd9; $menuActiveText:#409EFF; -$subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951 +$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 $menuBg:#304156; $menuHover:#263445; diff --git a/src/utils/errorLog.js b/src/utils/error-log.js similarity index 91% rename from src/utils/errorLog.js rename to src/utils/error-log.js index c508c789..a7f5b55f 100644 --- a/src/utils/errorLog.js +++ b/src/utils/error-log.js @@ -4,10 +4,10 @@ import { isString, isArray } from '@/utils/validate' import settings from '@/settings' // you can set in settings.js -// errorLog:'production' | ['production','development'] +// errorLog:'production' | ['production', 'development'] const { errorLog: needErrorLog } = settings -function checkNeed(arg) { +function checkNeed() { const env = process.env.NODE_ENV if (isString(needErrorLog)) { return env === needErrorLog diff --git a/src/utils/get-page-title.js b/src/utils/get-page-title.js new file mode 100644 index 00000000..4b6604cd --- /dev/null +++ b/src/utils/get-page-title.js @@ -0,0 +1,13 @@ +import defaultSettings from '@/settings' +import i18n from '@/lang' + +const title = defaultSettings.title || 'Vue Element Admin' + +export default function getPageTitle(key) { + const hasKey = i18n.te(`route.${key}`) + if (hasKey) { + const pageName = i18n.t(`route.${key}`) + return `${pageName} - ${title}` + } + return `${title}` +} diff --git a/src/utils/openWindow.js b/src/utils/open-window.js similarity index 100% rename from src/utils/openWindow.js rename to src/utils/open-window.js diff --git a/src/utils/request.js b/src/utils/request.js index d2422c46..d3c25c00 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -5,23 +5,25 @@ import { getToken } from '@/utils/auth' // create an axios instance const service = axios.create({ - baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url - withCredentials: true, // 跨域请求时发送 cookies + baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url + withCredentials: true, // send cookies when cross-domain requests timeout: 5000 // request timeout }) // request interceptor service.interceptors.request.use( config => { - // Do something before request is sent + // do something before request is sent + if (store.getters.token) { - // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改 + // let each request carry token --['X-Token'] as a custom key. + // please modify it according to the actual situation. config.headers['X-Token'] = getToken() } return config }, error => { - // Do something with request error + // do something with request error console.log(error) // for debug return Promise.reject(error) } @@ -33,31 +35,33 @@ service.interceptors.response.use( * If you want to get information such as headers or status * Please return response => response */ + /** - * 下面的注释为通过在response里,自定义code来标示请求状态 - * 当code返回如下情况则说明权限有问题,登出并返回到登录页 - * 如想通过 XMLHttpRequest 来状态码标识 逻辑可写在下面error中 - * 以下代码均为样例,请结合自生需求加以修改,若不需要,则可删除 + * Determine the request status by custom code + * Here is just an example + * You can also judge the status by HTTP Status Code. */ response => { const res = response.data + + // if the custom code is not 20000, it is judged as an error. if (res.code !== 20000) { Message({ message: res.message || 'error', type: 'error', duration: 5 * 1000 }) - // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了; + + // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; if (res.code === 50008 || res.code === 50012 || res.code === 50014) { - // 请自行在引入 MessageBox - // import { Message, MessageBox } from 'element-ui' - MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', { - confirmButtonText: '重新登录', - cancelButtonText: '取消', + // to re-login + MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { + confirmButtonText: 'Re-Login', + cancelButtonText: 'Cancel', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { - location.reload() // 为了重新实例化vue-router对象 避免bug + location.reload() }) }) } diff --git a/src/utils/scrollTo.js b/src/utils/scroll-to.js similarity index 100% rename from src/utils/scrollTo.js rename to src/utils/scroll-to.js diff --git a/src/views/charts/keyboard.vue b/src/views/charts/keyboard.vue index 3c158fcc..917f8eeb 100644 --- a/src/views/charts/keyboard.vue +++ b/src/views/charts/keyboard.vue @@ -5,7 +5,7 @@ </template> <script> -import Chart from '@/components/Charts/keyboard' +import Chart from '@/components/Charts/Keyboard' export default { name: 'KeyboardChart', diff --git a/src/views/charts/line.vue b/src/views/charts/line.vue index daa181fa..fea1497e 100644 --- a/src/views/charts/line.vue +++ b/src/views/charts/line.vue @@ -5,7 +5,7 @@ </template> <script> -import Chart from '@/components/Charts/lineMarker' +import Chart from '@/components/Charts/LineMarker' export default { name: 'LineChart', diff --git a/src/views/charts/mixChart.vue b/src/views/charts/mix-chart.vue similarity index 86% rename from src/views/charts/mixChart.vue rename to src/views/charts/mix-chart.vue index d41e655b..c57db75a 100644 --- a/src/views/charts/mixChart.vue +++ b/src/views/charts/mix-chart.vue @@ -5,7 +5,7 @@ </template> <script> -import Chart from '@/components/Charts/mixChart' +import Chart from '@/components/Charts/MixChart' export default { name: 'MixChart', diff --git a/src/views/components-demo/avatarUpload.vue b/src/views/components-demo/avatar-upload.vue similarity index 97% rename from src/views/components-demo/avatarUpload.vue rename to src/views/components-demo/avatar-upload.vue index c40ef4a4..fae36ad8 100644 --- a/src/views/components-demo/avatarUpload.vue +++ b/src/views/components-demo/avatar-upload.vue @@ -1,9 +1,9 @@ <template> <div class="components-container"> - <code>This is based on + <aside>This is based on <a class="link-type" href="//github.com/dai-siki/vue-image-crop-upload"> vue-image-crop-upload</a>. {{ $t('components.imageUploadTips') }} - </code> + </aside> <pan-thumb :image="image" /> diff --git a/src/views/components-demo/backToTop.vue b/src/views/components-demo/back-to-top.vue similarity index 93% rename from src/views/components-demo/backToTop.vue rename to src/views/components-demo/back-to-top.vue index 1404f574..58d9d75c 100644 --- a/src/views/components-demo/backToTop.vue +++ b/src/views/components-demo/back-to-top.vue @@ -1,7 +1,7 @@ <template> <div class="components-container"> - <code>{{ $t('components.backToTopTips1') }}</code> - <code>{{ $t('components.backToTopTips2') }}</code> + <aside>{{ $t('components.backToTopTips1') }}</aside> + <aside>{{ $t('components.backToTopTips2') }}</aside> <div class="placeholder-container"> <div>placeholder</div> <div>placeholder</div> @@ -113,8 +113,7 @@ <div>placeholder</div> <div>placeholder</div> </div> - <!--可自定义按钮的样式、show/hide临界点、返回的位置 --> - <!--如需文字提示,可在外部添加element的<el-tooltip></el-tooltip>元素 --> + <!-- you can add element-ui's tooltip --> <el-tooltip placement="top" content="tooltip"> <back-to-top :custom-style="myBackToTopStyle" :visibility-height="300" :back-position="50" transition-name="fade" /> </el-tooltip> @@ -129,6 +128,7 @@ export default { components: { BackToTop }, data() { return { + // customizable button style, show/hide critical point, return position myBackToTopStyle: { right: '50px', bottom: '50px', diff --git a/src/views/components-demo/countTo.vue b/src/views/components-demo/count-to.vue similarity index 95% rename from src/views/components-demo/countTo.vue rename to src/views/components-demo/count-to.vue index 9fae2694..70681df6 100644 --- a/src/views/components-demo/countTo.vue +++ b/src/views/components-demo/count-to.vue @@ -1,8 +1,8 @@ <template> <div class="components-container"> - <p class="warn-content"> + <aside> <a href="https://github.com/PanJiaChen/vue-countTo" target="_blank">countTo-component</a> - </p> + </aside> <count-to ref="example" :start-val="_startVal" @@ -45,9 +45,9 @@ <input v-model="setSuffix" name="suffixInput"> </label> </div> - <code><count-to :start-val='{{ _startVal }}' :end-val='{{ _endVal }}' :duration='{{ _duration }}' + <aside><count-to :start-val='{{ _startVal }}' :end-val='{{ _endVal }}' :duration='{{ _duration }}' :decimals='{{ _decimals }}' :separator='{{ _separator }}' :prefix='{{ _prefix }}' :suffix='{{ _suffix }}' - :autoplay=false></code> + :autoplay=false></aside> </div> </template> diff --git a/src/views/components-demo/dndList.vue b/src/views/components-demo/dnd-list.vue similarity index 94% rename from src/views/components-demo/dndList.vue rename to src/views/components-demo/dnd-list.vue index 0e4c215a..e299fa68 100644 --- a/src/views/components-demo/dndList.vue +++ b/src/views/components-demo/dnd-list.vue @@ -1,8 +1,8 @@ <template> <div class="components-container"> - <code>drag-list base on + <aside>drag-list base on <a href="https://github.com/SortableJS/Vue.Draggable" target="_blank">Vue.Draggable</a> - </code> + </aside> <div class="editor-container"> <dnd-list :list1="list1" :list2="list2" list1-title="List" list2-title="Article pool" /> </div> diff --git a/src/views/components-demo/dragDialog.vue b/src/views/components-demo/drag-dialog.vue similarity index 95% rename from src/views/components-demo/dragDialog.vue rename to src/views/components-demo/drag-dialog.vue index 3c985552..c815b282 100644 --- a/src/views/components-demo/dragDialog.vue +++ b/src/views/components-demo/drag-dialog.vue @@ -17,7 +17,7 @@ </template> <script> -import elDragDialog from '@/directive/el-dragDialog' // base on element-ui +import elDragDialog from '@/directive/el-drag-dialog' // base on element-ui export default { name: 'DragDialogDemo', diff --git a/src/views/components-demo/dragKanban.vue b/src/views/components-demo/drag-kanban.vue similarity index 100% rename from src/views/components-demo/dragKanban.vue rename to src/views/components-demo/drag-kanban.vue diff --git a/src/views/components-demo/dragSelect.vue b/src/views/components-demo/drag-select.vue similarity index 100% rename from src/views/components-demo/dragSelect.vue rename to src/views/components-demo/drag-select.vue diff --git a/src/views/components-demo/dropzone.vue b/src/views/components-demo/dropzone.vue index 62e9fdad..cdfc71b1 100644 --- a/src/views/components-demo/dropzone.vue +++ b/src/views/components-demo/dropzone.vue @@ -1,9 +1,9 @@ <template> <div class="components-container"> - <code> + <aside> Based on <a class="link-type" href="https://github.com/rowanwins/vue-dropzone"> dropzone </a>. {{ $t('components.dropzoneTips') }} - </code> + </aside> <div class="editor-container"> <dropzone id="myVueDropzone" url="https://httpbin.org/post" @dropzone-removedFile="dropzoneR" @dropzone-success="dropzoneS" /> </div> diff --git a/src/views/components-demo/jsonEditor.vue b/src/views/components-demo/json-editor.vue similarity index 89% rename from src/views/components-demo/jsonEditor.vue rename to src/views/components-demo/json-editor.vue index 01fed710..85bf3834 100644 --- a/src/views/components-demo/jsonEditor.vue +++ b/src/views/components-demo/json-editor.vue @@ -1,10 +1,10 @@ <template> <div class="components-container"> - <code>Json-Editor is base on <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirrorr</a>. Lint + <aside>Json-Editor is base on <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirrorr</a>. Lint base on <a href="https://github.com/codemirror/CodeMirror/blob/master/addon/lint/json-lint.js" target="_blank" - >json-lint</a>.</code> + >json-lint</a>.</aside> <div class="editor-container"> <json-editor ref="jsonEditor" v-model="value" /> </div> diff --git a/src/views/components-demo/markdown.vue b/src/views/components-demo/markdown.vue index 8483a470..876db002 100644 --- a/src/views/components-demo/markdown.vue +++ b/src/views/components-demo/markdown.vue @@ -1,13 +1,13 @@ <template> <div class="components-container"> - <code>Markdown is based on + <aside>Markdown is based on <a href="https://github.com/nhnent/tui.editor" target="_blank">tui.editor</a> ,simply wrapped with Vue. <a target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/feature/component/markdown-editor.html" > Documentation </a> - </code> + </aside> <div class="editor-container"> <el-tag class="tag-title"> diff --git a/src/views/components-demo/mixin.vue b/src/views/components-demo/mixin.vue index 18e9ef88..19b7a543 100644 --- a/src/views/components-demo/mixin.vue +++ b/src/views/components-demo/mixin.vue @@ -115,7 +115,7 @@ import PanThumb from '@/components/PanThumb' import MdInput from '@/components/MDinput' import Mallki from '@/components/TextHoverEffect/Mallki' -import DropdownMenu from '@/components/Share/dropdownMenu' +import DropdownMenu from '@/components/Share/DropdownMenu' import waves from '@/directive/waves/index.js' // 水波纹指令 export default { diff --git a/src/views/components-demo/splitpane.vue b/src/views/components-demo/split-pane.vue similarity index 95% rename from src/views/components-demo/splitpane.vue rename to src/views/components-demo/split-pane.vue index 4259abea..7dba353f 100644 --- a/src/views/components-demo/splitpane.vue +++ b/src/views/components-demo/split-pane.vue @@ -1,10 +1,10 @@ <template> <div class="components-container"> - <code><strong>SplitPane</strong> If you've used + <aside><strong>SplitPane</strong> If you've used <a href="https://codepen.io/" target="_blank"> codepen</a>, <a href="https://jsfiddle.net/" target="_blank"> jsfiddle </a>will not be unfamiliar. <a href="https://github.com/PanJiaChen/vue-split-pane" target="_blank"> Github repository</a> - </code> + </aside> <split-pane split="vertical" @resize="resize"> <template slot="paneL"> <div class="left-container" /> diff --git a/src/views/components-demo/sticky.vue b/src/views/components-demo/sticky.vue index db86cb2d..de86e1a1 100644 --- a/src/views/components-demo/sticky.vue +++ b/src/views/components-demo/sticky.vue @@ -37,7 +37,7 @@ </sticky> <div class="components-container"> - <code>Sticky header, {{ $t('components.stickyTips') }}</code> + <aside>Sticky header, {{ $t('components.stickyTips') }}</aside> <div>placeholder</div> <div>placeholder</div> <div>placeholder</div> diff --git a/src/views/components-demo/tinymce.vue b/src/views/components-demo/tinymce.vue index e1d72d1f..7900a294 100644 --- a/src/views/components-demo/tinymce.vue +++ b/src/views/components-demo/tinymce.vue @@ -1,9 +1,9 @@ <template> <div class="components-container"> - <code> + <aside> {{ $t('components.tinymceTips') }} <a target="_blank" class="link-type" href="https://panjiachen.github.io/vue-element-admin-site/component/rich-editor.html"> {{ $t('components.documentation') }}</a> - </code> + </aside> <div> <tinymce v-model="content" :height="300" /> </div> diff --git a/src/views/dashboard/admin/components/TransactionTable.vue b/src/views/dashboard/admin/components/TransactionTable.vue index 68ab4792..d07b0edf 100644 --- a/src/views/dashboard/admin/components/TransactionTable.vue +++ b/src/views/dashboard/admin/components/TransactionTable.vue @@ -21,7 +21,7 @@ </template> <script> -import { transactionList } from '@/api/remoteSearch' +import { transactionList } from '@/api/remote-search' export default { filters: { diff --git a/src/views/documentation/index.vue b/src/views/documentation/index.vue index 2fed7398..4e05d03f 100644 --- a/src/views/documentation/index.vue +++ b/src/views/documentation/index.vue @@ -7,7 +7,7 @@ </div> </template> <script> -import DropdownMenu from '@/components/Share/dropdownMenu' +import DropdownMenu from '@/components/Share/DropdownMenu' export default { name: 'Documentation', diff --git a/src/views/errorLog/errorTestA.vue b/src/views/error-log/components/ErrorTestA.vue similarity index 100% rename from src/views/errorLog/errorTestA.vue rename to src/views/error-log/components/ErrorTestA.vue diff --git a/src/views/errorLog/errorTestB.vue b/src/views/error-log/components/ErrorTestB.vue similarity index 100% rename from src/views/errorLog/errorTestB.vue rename to src/views/error-log/components/ErrorTestB.vue diff --git a/src/views/errorLog/index.vue b/src/views/error-log/index.vue similarity index 78% rename from src/views/errorLog/index.vue rename to src/views/error-log/index.vue index 8cbe18e2..102b2e5b 100644 --- a/src/views/errorLog/index.vue +++ b/src/views/error-log/index.vue @@ -1,15 +1,15 @@ <template> <div class="errPage-container"> - <errorA /> - <errorB /> + <ErrorA /> + <ErrorB /> <!-- $t is vue-i18n global function to translate lang --> <h3>{{ $t('errorLog.tips') }}</h3> - <code> + <aside> {{ $t('errorLog.description') }} <a target="_blank" class="link-type" href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html"> {{ $t('errorLog.documentation') }} </a> - </code> + </aside> <a href="#"> <img src="https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif"> </a> @@ -17,12 +17,12 @@ </template> <script> -import errorA from './errorTestA' -import errorB from './errorTestB' +import ErrorA from './components/ErrorTestA' +import ErrorB from './components/ErrorTestB' export default { name: 'ErrorLog', - components: { errorA, errorB } + components: { ErrorA, ErrorB } } </script> diff --git a/src/views/errorPage/401.vue b/src/views/error-page/401.vue similarity index 100% rename from src/views/errorPage/401.vue rename to src/views/error-page/401.vue diff --git a/src/views/errorPage/404.vue b/src/views/error-page/404.vue similarity index 100% rename from src/views/errorPage/404.vue rename to src/views/error-page/404.vue diff --git a/src/views/example/components/ArticleDetail.vue b/src/views/example/components/ArticleDetail.vue index 2213e927..55d2972a 100644 --- a/src/views/example/components/ArticleDetail.vue +++ b/src/views/example/components/ArticleDetail.vue @@ -6,10 +6,10 @@ <PlatformDropdown v-model="postForm.platforms" /> <SourceUrlDropdown v-model="postForm.source_uri" /> <el-button v-loading="loading" style="margin-left: 10px;" type="success" @click="submitForm"> - 发布 + Publush </el-button> <el-button v-loading="loading" type="warning" @click="draftForm"> - 草稿 + Draft </el-button> </sticky> @@ -20,28 +20,28 @@ <el-col :span="24"> <el-form-item style="margin-bottom: 40px;" prop="title"> <MDinput v-model="postForm.title" :maxlength="100" name="name" required> - 标题 + Title </MDinput> </el-form-item> <div class="postInfo-container"> <el-row> <el-col :span="8"> - <el-form-item label-width="45px" label="作者:" class="postInfo-container-item"> - <el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable default-first-option remote placeholder="搜索用户"> + <el-form-item label-width="60px" label="Author:" class="postInfo-container-item"> + <el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable default-first-option remote placeholder="Search user"> <el-option v-for="(item,index) in userListOptions" :key="item+index" :label="item" :value="item" /> </el-select> </el-form-item> </el-col> <el-col :span="10"> - <el-form-item label-width="80px" label="发布时间:" class="postInfo-container-item"> - <el-date-picker v-model="postForm.display_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间" /> + <el-form-item label-width="120px" label="Publush Time:" class="postInfo-container-item"> + <el-date-picker v-model="postForm.display_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Select date and time" /> </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label-width="60px" label="重要性:" class="postInfo-container-item"> + <el-form-item label-width="90px" label="Importance:" class="postInfo-container-item"> <el-rate v-model="postForm.importance" :max="3" @@ -57,9 +57,9 @@ </el-col> </el-row> - <el-form-item style="margin-bottom: 40px;" label-width="45px" label="摘要:"> - <el-input v-model="postForm.content_short" :rows="1" type="textarea" class="article-textarea" autosize placeholder="请输入内容" /> - <span v-show="contentShortLength" class="word-counter">{{ contentShortLength }}字</span> + <el-form-item style="margin-bottom: 40px;" label-width="70px" label="Summary:"> + <el-input v-model="postForm.content_short" :rows="1" type="textarea" class="article-textarea" autosize placeholder="Please enter the content" /> + <span v-show="contentShortLength" class="word-counter">{{ contentShortLength }}words</span> </el-form-item> <el-form-item prop="content" style="margin-bottom: 30px;"> @@ -76,12 +76,12 @@ <script> import Tinymce from '@/components/Tinymce' -import Upload from '@/components/Upload/singleImage3' +import Upload from '@/components/Upload/SingleImage3' import MDinput from '@/components/MDinput' import Sticky from '@/components/Sticky' // 粘性header组件 import { validURL } from '@/utils/validate' import { fetchArticle } from '@/api/article' -import { searchUser } from '@/api/remoteSearch' +import { searchUser } from '@/api/remote-search' import Warning from './Warning' import { CommentDropdown, PlatformDropdown, SourceUrlDropdown } from './Dropdown' @@ -236,24 +236,39 @@ export default { <style lang="scss" scoped> @import "~@/styles/mixin.scss"; + .createPost-container { position: relative; + .createPost-main-container { padding: 40px 45px 20px 50px; + .postInfo-container { position: relative; @include clearfix; margin-bottom: 10px; + .postInfo-container-item { float: left; } } } + .word-counter { width: 40px; position: absolute; - right: -10px; + right: 10px; top: 0px; } } + +.article-textarea /deep/ { + textarea { + padding-right: 40px; + resize: none; + border: none; + border-radius: 0px; + border-bottom: 1px solid #bfcbd9; + } +} </style> diff --git a/src/views/example/components/Dropdown/Comment.vue b/src/views/example/components/Dropdown/Comment.vue index 26509611..d34b2b90 100644 --- a/src/views/example/components/Dropdown/Comment.vue +++ b/src/views/example/components/Dropdown/Comment.vue @@ -1,17 +1,17 @@ <template> <el-dropdown :show-timeout="100" trigger="click"> <el-button plain> - {{ !comment_disabled?'评论已打开':'评论已关闭' }} + {{ !comment_disabled?'Comment: opened':'Comment: closed' }} <i class="el-icon-caret-bottom el-icon--right" /> </el-button> <el-dropdown-menu slot="dropdown" class="no-padding"> <el-dropdown-item> <el-radio-group v-model="comment_disabled" style="padding: 10px;"> <el-radio :label="true"> - 关闭评论 + Close comment </el-radio> <el-radio :label="false"> - 打开评论 + Open comment </el-radio> </el-radio-group> </el-dropdown-item> diff --git a/src/views/example/components/Dropdown/Platform.vue b/src/views/example/components/Dropdown/Platform.vue index 98fcaf28..0a527264 100644 --- a/src/views/example/components/Dropdown/Platform.vue +++ b/src/views/example/components/Dropdown/Platform.vue @@ -1,7 +1,7 @@ <template> <el-dropdown :hide-on-click="false" :show-timeout="100" trigger="click"> <el-button plain> - 平台({{ platforms.length }}) + Platfroms({{ platforms.length }}) <i class="el-icon-caret-bottom el-icon--right" /> </el-button> <el-dropdown-menu slot="dropdown" class="no-border"> diff --git a/src/views/example/components/Dropdown/SourceUrl.vue b/src/views/example/components/Dropdown/SourceUrl.vue index 21a58907..8f47485a 100644 --- a/src/views/example/components/Dropdown/SourceUrl.vue +++ b/src/views/example/components/Dropdown/SourceUrl.vue @@ -1,14 +1,14 @@ <template> <el-dropdown :show-timeout="100" trigger="click"> <el-button plain> - 外链 + Link <i class="el-icon-caret-bottom el-icon--right" /> </el-button> <el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width:400px"> <el-form-item label-width="0px" style="margin-bottom: 0px" prop="source_uri"> - <el-input v-model="source_uri" placeholder="请输入内容"> + <el-input v-model="source_uri" placeholder="Please enter the content"> <template slot="prepend"> - 填写url + URL </template> </el-input> </el-form-item> diff --git a/src/views/example/components/Warning.vue b/src/views/example/components/Warning.vue index bee172d4..d24fe291 100644 --- a/src/views/example/components/Warning.vue +++ b/src/views/example/components/Warning.vue @@ -1,11 +1,10 @@ <template> - <p class="warn-content"> - 创建和编辑页面是不能被keep-alive 缓存的,因为keep-alive 的include 目前不支持根据路由来缓存,所以目前都是基于component name 来缓存的,如果你想要实现缓存的效果,可以使用localstorage 等浏览器缓存方案。或者不要使用keep-alive - 的include,直接缓存所有页面。详情见 + <aside> + {{ $t('example.warning') }} <a href="https://panjiachen.github.io/vue-element-admin-site/guide/essentials/tags-view.html" target="_blank" - >文档</a> - </p> + >Document</a> + </aside> </template> diff --git a/src/views/excel/exportExcel.vue b/src/views/excel/export-excel.vue similarity index 100% rename from src/views/excel/exportExcel.vue rename to src/views/excel/export-excel.vue diff --git a/src/views/excel/mergeHeader.vue b/src/views/excel/merge-header.vue similarity index 100% rename from src/views/excel/mergeHeader.vue rename to src/views/excel/merge-header.vue diff --git a/src/views/excel/selectExcel.vue b/src/views/excel/select-excel.vue similarity index 100% rename from src/views/excel/selectExcel.vue rename to src/views/excel/select-excel.vue diff --git a/src/views/excel/uploadExcel.vue b/src/views/excel/upload-excel.vue similarity index 100% rename from src/views/excel/uploadExcel.vue rename to src/views/excel/upload-excel.vue diff --git a/src/views/guide/index.vue b/src/views/guide/index.vue index 31ca3177..636ca275 100644 --- a/src/views/guide/index.vue +++ b/src/views/guide/index.vue @@ -1,10 +1,9 @@ <template> <div class="app-container"> - <p class="warn-content"> + <aside> {{ $t('guide.description') }} - <a href="https://github.com/kamranahmedse/driver.js" target="_blank">driver.js. - </a> - </p> + <a href="https://github.com/kamranahmedse/driver.js" target="_blank">driver.js.</a> + </aside> <el-button icon="el-icon-question" type="primary" @click.prevent.stop="guide"> {{ $t('guide.button') }} </el-button> @@ -14,7 +13,7 @@ <script> import Driver from 'driver.js' // import driver.js import 'driver.js/dist/driver.min.css' // import driver.js css -import steps from './defineSteps' +import steps from './steps' export default { name: 'Guide', diff --git a/src/views/guide/defineSteps.js b/src/views/guide/steps.js similarity index 100% rename from src/views/guide/defineSteps.js rename to src/views/guide/steps.js diff --git a/src/views/icons/element-icons.js b/src/views/icons/element-icons.js new file mode 100644 index 00000000..df722010 --- /dev/null +++ b/src/views/icons/element-icons.js @@ -0,0 +1,74 @@ +const elementIcons = [ + 'info', + 'error', + 'success', + 'warning', + 'question', + 'back', + 'arrow-left', + 'arrow-down', + 'arrow-right', + 'arrow-up', + 'caret-left', + 'caret-bottom', + 'caret-top', + 'caret-right', + 'd-arrow-left', + 'd-arrow-right', + 'minus', + 'plus', + 'remove', + 'circle-plus', + 'remove-outline', + 'circle-plus-outline', + 'close', + 'check', + 'circle-close', + 'circle-check', + 'circle-close-outline', + 'circle-check-outline', + 'zoom-out', + 'zoom-in', + 'd-caret', + 'sort', + 'sort-down', + 'sort-up', + 'tickets', + 'document', + 'goods', + 'sold-out', + 'news', + 'message', + 'date', + 'printer', + 'time', + 'bell', + 'mobile-phone', + 'service', + 'view', + 'menu', + 'more', + 'more-outline', + 'star-on', + 'star-off', + 'location', + 'location-outline', + 'phone', + 'phone-outline', + 'picture', + 'picture-outline', + 'delete', + 'search', + 'edit', + 'edit-outline', + 'rank', + 'refresh', + 'share', + 'setting', + 'upload', + 'upload2', + 'download', + 'loading' +] + +export default elementIcons diff --git a/src/views/svg-icons/index.vue b/src/views/icons/index.vue similarity index 89% rename from src/views/svg-icons/index.vue rename to src/views/icons/index.vue index 665b1d03..3677afd6 100644 --- a/src/views/svg-icons/index.vue +++ b/src/views/icons/index.vue @@ -1,12 +1,12 @@ <template> <div class="icons-container"> - <p class="warn-content"> + <aside> <a href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/icon.html" target="_blank">Add and use </a> - </p> + </aside> <el-tabs type="border-card"> <el-tab-pane label="Icons"> - <div v-for="item of iconsMap" :key="item" @click="handleClipboard(generateIconCode(item),$event)"> + <div v-for="item of svgIcons" :key="item" @click="handleClipboard(generateIconCode(item),$event)"> <el-tooltip placement="top"> <div slot="content"> {{ generateIconCode(item) }} @@ -37,15 +37,15 @@ <script> import clipboard from '@/utils/clipboard' -import icons from './requireIcons' -import elementIcons from './element-icon.json' +import svgIcons from './svg-icons' +import elementIcons from './element-icons' export default { name: 'Icons', data() { return { - iconsMap: icons, - elementIcons: elementIcons + svgIcons, + elementIcons } }, methods: { diff --git a/src/views/svg-icons/requireIcons.js b/src/views/icons/svg-icons.js similarity index 72% rename from src/views/svg-icons/requireIcons.js rename to src/views/icons/svg-icons.js index 56edb9f1..1e3c66d2 100644 --- a/src/views/svg-icons/requireIcons.js +++ b/src/views/icons/svg-icons.js @@ -3,8 +3,8 @@ const requireAll = requireContext => requireContext.keys() const re = /\.\/(.*)\.svg/ -const icons = requireAll(req).map(i => { +const svgIcons = requireAll(req).map(i => { return i.match(re)[1] }) -export default icons +export default svgIcons diff --git a/src/views/login/authRedirect.vue b/src/views/login/auth-redirect.vue similarity index 100% rename from src/views/login/authRedirect.vue rename to src/views/login/auth-redirect.vue diff --git a/src/views/login/socialSignin.vue b/src/views/login/components/SocialSignin.vue similarity index 97% rename from src/views/login/socialSignin.vue rename to src/views/login/components/SocialSignin.vue index d047b068..cbfb15d2 100644 --- a/src/views/login/socialSignin.vue +++ b/src/views/login/components/SocialSignin.vue @@ -10,7 +10,7 @@ </template> <script> -// import openWindow from '@/utils/openWindow' +// import openWindow from '@/utils/open-window' export default { name: 'SocialSignin', diff --git a/src/views/login/index.vue b/src/views/login/index.vue index b9cba35f..9bff21a3 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -81,7 +81,7 @@ <script> import { validUsername } from '@/utils/validate' import LangSelect from '@/components/LangSelect' -import SocialSign from './socialSignin' +import SocialSign from './components/SocialSignin' export default { name: 'Login', diff --git a/src/views/pdf/index.vue b/src/views/pdf/index.vue index 238d4958..b875295f 100644 --- a/src/views/pdf/index.vue +++ b/src/views/pdf/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <code style="margin-top:15px;">{{ $t('pdf.tips') }}</code> + <aside style="margin-top:15px;">{{ $t('pdf.tips') }}</aside> <router-link target="_blank" to="/pdf/download"> <el-button type="primary"> Click to download PDF diff --git a/src/views/permission/directive.vue b/src/views/permission/directive.vue index 013c97a3..b3ef8c37 100644 --- a/src/views/permission/directive.vue +++ b/src/views/permission/directive.vue @@ -35,10 +35,10 @@ </div> <div :key="'checkPermission'+key" style="margin-top:60px;"> - <code> + <aside> {{ $t('permission.tips') }} <br> e.g. - </code> + </aside> <el-tabs type="border-card" style="width:550px;"> <el-tab-pane v-if="checkPermission(['admin'])" label="Admin"> diff --git a/src/views/svg-icons/element-icon.json b/src/views/svg-icons/element-icon.json deleted file mode 100644 index 15072a4c..00000000 --- a/src/views/svg-icons/element-icon.json +++ /dev/null @@ -1 +0,0 @@ -["info","error","success","warning","question","back","arrow-left","arrow-down","arrow-right","arrow-up","caret-left","caret-bottom","caret-top","caret-right","d-arrow-left","d-arrow-right","minus","plus","remove","circle-plus","remove-outline","circle-plus-outline","close","check","circle-close","circle-check","circle-close-outline","circle-check-outline","zoom-out","zoom-in","d-caret","sort","sort-down","sort-up","tickets","document","goods","sold-out","news","message","date","printer","time","bell","mobile-phone","service","view","menu","more","more-outline","star-on","star-off","location","location-outline","phone","phone-outline","picture","picture-outline","delete","search","edit","edit-outline","rank","refresh","share","setting","upload","upload2","download","loading"] diff --git a/src/views/tab/components/tabPane.vue b/src/views/tab/components/TabPane.vue similarity index 100% rename from src/views/tab/components/tabPane.vue rename to src/views/tab/components/TabPane.vue diff --git a/src/views/tab/index.vue b/src/views/tab/index.vue index 85a96347..e5746580 100644 --- a/src/views/tab/index.vue +++ b/src/views/tab/index.vue @@ -13,7 +13,7 @@ </template> <script> -import tabPane from './components/tabPane' +import tabPane from './components/TabPane' export default { name: 'Tab', diff --git a/src/views/table/complexTable.vue b/src/views/table/complex-table.vue similarity index 98% rename from src/views/table/complexTable.vue rename to src/views/table/complex-table.vue index bfe577b1..43b00e80 100644 --- a/src/views/table/complexTable.vue +++ b/src/views/table/complex-table.vue @@ -148,9 +148,9 @@ <script> import { fetchList, fetchPv, createArticle, updateArticle } from '@/api/article' -import waves from '@/directive/waves' // Waves directive +import waves from '@/directive/waves' // waves directive import { parseTime } from '@/utils' -import Pagination from '@/components/Pagination' // Secondary package based on el-pagination +import Pagination from '@/components/Pagination' // secondary package based on el-pagination const calendarTypeOptions = [ { key: 'CN', display_name: 'China' }, @@ -159,7 +159,7 @@ const calendarTypeOptions = [ { key: 'EU', display_name: 'Eurozone' } ] -// arr to obj ,such as { CN : "China", US : "USA" } +// arr to obj, such as { CN : "China", US : "USA" } const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => { acc[cur.key] = cur.display_name return acc diff --git a/src/views/table/dragTable.vue b/src/views/table/drag-table.vue similarity index 100% rename from src/views/table/dragTable.vue rename to src/views/table/drag-table.vue diff --git a/src/views/table/dynamicTable/fixedThead.vue b/src/views/table/dynamic-table/components/FixedThead.vue similarity index 100% rename from src/views/table/dynamicTable/fixedThead.vue rename to src/views/table/dynamic-table/components/FixedThead.vue diff --git a/src/views/table/dynamicTable/unfixedThead.vue b/src/views/table/dynamic-table/components/UnfixedThead.vue similarity index 100% rename from src/views/table/dynamicTable/unfixedThead.vue rename to src/views/table/dynamic-table/components/UnfixedThead.vue diff --git a/src/views/table/dynamicTable/index.vue b/src/views/table/dynamic-table/index.vue similarity index 70% rename from src/views/table/dynamicTable/index.vue rename to src/views/table/dynamic-table/index.vue index 4947b4b9..b1a6a6d5 100644 --- a/src/views/table/dynamicTable/index.vue +++ b/src/views/table/dynamic-table/index.vue @@ -13,12 +13,12 @@ </template> <script> -import fixedThead from './fixedThead' -import unfixedThead from './unfixedThead' +import FixedThead from './components/FixedThead' +import UnfixedThead from './components/UnfixedThead' export default { name: 'DynamicTable', - components: { fixedThead, unfixedThead } + components: { FixedThead, UnfixedThead } } </script> diff --git a/src/views/table/inlineEditTable.vue b/src/views/table/inline-edit-table.vue similarity index 100% rename from src/views/table/inlineEditTable.vue rename to src/views/table/inline-edit-table.vue diff --git a/src/views/theme/index.vue b/src/views/theme/index.vue index b67c2c67..bfa5953b 100644 --- a/src/views/theme/index.vue +++ b/src/views/theme/index.vue @@ -9,7 +9,7 @@ <div class="box-item"> <span class="field-label">{{ $t('theme.change') }} : </span> <el-switch v-model="theme" /> - <code style="margin-top:15px;">{{ $t('theme.tips') }}</code> + <aside style="margin-top:15px;">{{ $t('theme.tips') }}</aside> </div> </el-card> diff --git a/vue.config.js b/vue.config.js index cbd79510..bae56d78 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,12 +1,12 @@ 'use strict' const path = require('path') -const pkg = require('./package.json') +const defaultSettings = require('./src/settings.js') function resolve(dir) { return path.join(__dirname, dir) } -const name = pkg.name || 'vue-element-admin' // page title +const name = defaultSettings.title || 'vue Element Admin' // page title const port = 9527 // dev port // All configuration item explanations can be find in https://cli.vuejs.org/config/ @@ -86,6 +86,7 @@ module.exports = { .end() config + // https://webpack.js.org/configuration/devtool/#development .when(process.env.NODE_ENV === 'development', config => config.devtool('cheap-source-map') )