diff --git a/.editorconfig b/.editorconfig index ea6e20f5..3454886e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# http://editorconfig.org +# https://editorconfig.org root = true [*] diff --git a/README.md b/README.md index 48599a7e..01034b51 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,11 @@ English | [简体中文](./README.zh-CN.md) ## Introduction -[vue-element-admin](http://panjiachen.github.io/vue-element-admin) is a production-ready front-end solution for admin interfaces. It based on [vue](https://github.com/vuejs/vue) and use the UI Toolkit [element-ui](https://github.com/ElemeFE/element). +[vue-element-admin](https://panjiachen.github.io/vue-element-admin) is a production-ready front-end solution for admin interfaces. It based on [vue](https://github.com/vuejs/vue) and use the UI Toolkit [element-ui](https://github.com/ElemeFE/element). It is a magical vue admin based on the newest development stack of vue, built-in i18n solution, typical templates for enterprise applications, lots of awesome features. It helps you build a large complex Single-Page Applications. I believe whatever your needs are, this project will help you. -- [Preview](http://panjiachen.github.io/vue-element-admin) +- [Preview](https://panjiachen.github.io/vue-element-admin) - [Documentation](https://panjiachen.github.io/vue-element-admin-site/) @@ -50,13 +50,13 @@ It is a magical vue admin based on the newest development stack of vue, built-in - Desktop: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) - Typescript: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour)) -**The current version is `4.0-beta`. If you find a problem, please put [issue](https://github.com/PanJiaChen/vue-element-admin/issues/new). If you want to use the old version - stable version, you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0)** +**The current version is `v4.0+` build on `vue-cli`. If you find a problem, please put [issue](https://github.com/PanJiaChen/vue-element-admin/issues/new). If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0), it does not rely on `vue-cli'** **This project does not support low version browsers (e.g. IE). Please add polyfill by yourself.** ## Preparation -You need to install [node](http://nodejs.org/) and [git](https://git-scm.com/) locally. The project is based on [ES2015+](http://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [vue-cli](https://github.com/vuejs/vue-cli) , [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), all request data is simulated using [Mock.js](https://github.com/nuysoft/Mock). +You need to install [node](https://nodejs.org/) and [git](https://git-scm.com/) locally. The project is based on [ES2015+](https://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [vue-cli](https://github.com/vuejs/vue-cli) , [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), all request data is simulated using [Mock.js](https://github.com/nuysoft/Mock). Understanding and learning this knowledge in advance will greatly help the use of this project.

@@ -187,7 +187,7 @@ Detailed changes for each release are documented in the [release notes](https:// ## Online Demo -[Preview](http://panjiachen.github.io/vue-element-admin) +[Preview](https://panjiachen.github.io/vue-element-admin) ## Donate @@ -203,7 +203,7 @@ If you find this project useful, you can buy author a glass of juice :tropical_d Modern browsers and Internet Explorer 10+. -| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | | --------- | --------- | --------- | --------- | | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions diff --git a/README.zh-CN.md b/README.zh-CN.md index e0ec09bb..0e15d8a4 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -30,9 +30,9 @@ ## 简介 -[vue-element-admin](http://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。 +[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。 -- [在线预览](http://panjiachen.github.io/vue-element-admin) +- [在线预览](https://panjiachen.github.io/vue-element-admin) - [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/) @@ -50,7 +50,7 @@ - 桌面端: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) - Typescript 版: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (鸣谢: [@Armour](https://github.com/Armour)) -**目前版本为 `4.0-beta`,若发现问题,欢迎提[issue](https://github.com/PanJiaChen/vue-element-admin/issues/new)。若你想使用旧版本-稳定版,可以切换分支到[tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0)** +**目前版本为 `v4.0+` 基于 `vue-cli` 进行构建,若发现问题,欢迎提[issue](https://github.com/PanJiaChen/vue-element-admin/issues/new)。若你想使用旧版本,可以切换分支到[tag/3.11.0](https://github.com/PanJiaChen/vue-element-admin/tree/tag/3.11.0),它不依赖 `vue-cli`** **该项目不支持低版本浏览器(如 ie),有需求请自行添加 polyfill [详情](https://github.com/PanJiaChen/vue-element-admin/wiki#babel-polyfill)** @@ -204,7 +204,7 @@ Detailed changes for each release are documented in the [release notes](https:// ## Online Demo -[在线 Demo](http://panjiachen.github.io/vue-element-admin) +[在线 Demo](https://panjiachen.github.io/vue-element-admin) ## Donate @@ -221,7 +221,7 @@ Detailed changes for each release are documented in the [release notes](https:// Modern browsers and Internet Explorer 10+. -| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| [IE / Edge](https://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](https://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](https://godban.github.io/browsers-support-badges/)
Chrome | [Safari](https://godban.github.io/browsers-support-badges/)
Safari | | --------- | --------- | --------- | --------- | | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions 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 = '

我是测试数据我是测试数据

' +const baseContent = '

I am testing data, I am testing data.

' 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/mock-server.js b/mock/mock-server.js index af7e67ee..b29b7c3f 100644 --- a/mock/mock-server.js +++ b/mock/mock-server.js @@ -3,16 +3,16 @@ const bodyParser = require('body-parser') const chalk = require('chalk') function registerRoutes(app) { - let mockStartIndex + let mockLastIndex const { default: mocks } = require('./index.js') for (const mock of mocks) { app[mock.type](mock.url, mock.response) - mockStartIndex = app._router.stack.length + mockLastIndex = app._router.stack.length } const mockRoutesLength = Object.keys(mocks).length return { mockRoutesLength: mockRoutesLength, - mockStartIndex: mockStartIndex - mockRoutesLength + mockStartIndex: mockLastIndex - mockRoutesLength } } @@ -29,7 +29,7 @@ module.exports = app => { require('@babel/register') // parse app.body - // http://expressjs.com/en/4x/api.html#req.body + // https://expressjs.com/en/4x/api.html#req.body app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true 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..5bb6c741 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 }, { @@ -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/package.json b/package.json index b3d436e0..4cd22daa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-element-admin", - "version": "4.0.0", + "version": "4.0.1", "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features", "author": "Pan ", "license": "MIT", 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 @@ 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 @@ - {{ + {{ generateTitle(item.meta.title) }} {{ generateTitle(item.meta.title) }} @@ -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 new file mode 100644 index 00000000..0b258f36 --- /dev/null +++ b/src/components/Charts/Keyboard.vue @@ -0,0 +1,155 @@ + + + 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/Charts/keyboard.vue b/src/components/Charts/keyboard.vue index 3f061bd0..0b258f36 100644 --- a/src/components/Charts/keyboard.vue +++ b/src/components/Charts/keyboard.vue @@ -53,103 +53,102 @@ export default { data.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5) data2.push((Math.sin(i / 5) * (i / 5 + 10) + i / 6) * 3) } - this.chart.setOption( - { - backgroundColor: '#08263a', - grid: { - left: '5%', - right: '5%' - }, - xAxis: [{ - show: false, - data: xAxisData - }, { - show: false, - data: xAxisData - }], - visualMap: { - show: false, - min: 0, - max: 50, - dimension: 0, - inRange: { - color: ['#4a657a', '#308e92', '#b1cfa5', '#f5d69f', '#f5898b', '#ef5055'] - } - }, - yAxis: { - axisLine: { - show: false - }, - axisLabel: { - textStyle: { - color: '#4a657a' - } - }, - splitLine: { - show: true, - lineStyle: { - color: '#08263f' - } - }, - axisTick: { - show: false - } - }, - series: [{ - name: 'back', - type: 'bar', - data: data2, - z: 1, - itemStyle: { - normal: { - opacity: 0.4, - barBorderRadius: 5, - shadowBlur: 3, - shadowColor: '#111' - } - } - }, { - name: 'Simulate Shadow', - type: 'line', - data, - z: 2, - showSymbol: false, - animationDelay: 0, - animationEasing: 'linear', - animationDuration: 1200, - lineStyle: { - normal: { - color: 'transparent' - } - }, - areaStyle: { - normal: { - color: '#08263a', - shadowBlur: 50, - shadowColor: '#000' - } - } - }, { - name: 'front', - type: 'bar', - data, - xAxisIndex: 1, - z: 3, - itemStyle: { - normal: { - barBorderRadius: 5 - } - } - }], - animationEasing: 'elasticOut', - animationEasingUpdate: 'elasticOut', - animationDelay(idx) { - return idx * 20 - }, - animationDelayUpdate(idx) { - return idx * 20 + this.chart.setOption({ + backgroundColor: '#08263a', + grid: { + left: '5%', + right: '5%' + }, + xAxis: [{ + show: false, + data: xAxisData + }, { + show: false, + data: xAxisData + }], + visualMap: { + show: false, + min: 0, + max: 50, + dimension: 0, + inRange: { + color: ['#4a657a', '#308e92', '#b1cfa5', '#f5d69f', '#f5898b', '#ef5055'] } - }) + }, + yAxis: { + axisLine: { + show: false + }, + axisLabel: { + textStyle: { + color: '#4a657a' + } + }, + splitLine: { + show: true, + lineStyle: { + color: '#08263f' + } + }, + axisTick: { + show: false + } + }, + series: [{ + name: 'back', + type: 'bar', + data: data2, + z: 1, + itemStyle: { + normal: { + opacity: 0.4, + barBorderRadius: 5, + shadowBlur: 3, + shadowColor: '#111' + } + } + }, { + name: 'Simulate Shadow', + type: 'line', + data, + z: 2, + showSymbol: false, + animationDelay: 0, + animationEasing: 'linear', + animationDuration: 1200, + lineStyle: { + normal: { + color: 'transparent' + } + }, + areaStyle: { + normal: { + color: '#08263a', + shadowBlur: 50, + shadowColor: '#000' + } + } + }, { + name: 'front', + type: 'bar', + data, + xAxisIndex: 1, + z: 3, + itemStyle: { + normal: { + barBorderRadius: 5 + } + } + }], + animationEasing: 'elasticOut', + animationEasingUpdate: 'elasticOut', + animationDelay(idx) { + return idx * 20 + }, + animationDelayUpdate(idx) { + return idx * 20 + } + }) } } } diff --git a/src/components/Charts/mixins/resize.js b/src/components/Charts/mixins/resize.js index c4c432f4..dccaf1a8 100644 --- a/src/components/Charts/mixins/resize.js +++ b/src/components/Charts/mixins/resize.js @@ -3,7 +3,7 @@ import { debounce } from '@/utils' export default { data() { return { - sidebarElm: null + $_sidebarElm: null } }, mounted() { @@ -14,16 +14,18 @@ export default { }, 100) window.addEventListener('resize', this.__resizeHandler) - this.sidebarElm = document.getElementsByClassName('sidebar-container')[0] - this.sidebarElm && this.sidebarElm.addEventListener('transitionend', this.sidebarResizeHandler) + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) }, beforeDestroy() { window.removeEventListener('resize', this.__resizeHandler) - this.sidebarElm && this.sidebarElm.removeEventListener('transitionend', this.sidebarResizeHandler) + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) }, methods: { - sidebarResizeHandler(e) { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_sidebarResizeHandler(e) { if (e.propertyName === 'width') { this.__resizeHandler() } diff --git a/src/components/DragSelect/index.vue b/src/components/DragSelect/index.vue index 4a2e6300..28256a8b 100644 --- a/src/components/DragSelect/index.vue +++ b/src/components/DragSelect/index.vue @@ -49,13 +49,13 @@ export default { 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 @@ + 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 @@ - 发布 + Publush - 草稿 + Draft @@ -20,28 +20,28 @@ - 标题 + Title