diff --git a/.eslintrc.js b/.eslintrc.js
index 00d60805..6f55c5a1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,7 +1,7 @@
module.exports = {
root: true,
- parser: 'babel-eslint',
parserOptions: {
+ parser: 'babel-eslint',
sourceType: 'module'
},
env: {
@@ -9,22 +9,19 @@ module.exports = {
node: true,
es6: true,
},
- extends: 'eslint:recommended',
- // required to lint *.vue files
- plugins: [
- 'html'
- ],
- // check if imports actually resolve
- 'settings': {
- 'import/resolver': {
- 'webpack': {
- 'config': 'build/webpack.base.conf.js'
- }
- }
- },
+ extends: ['plugin:vue/recommended', 'eslint:recommended'],
+
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
- 'rules': {
+ rules: {
+ "vue/max-attributes-per-line": [2, {
+ "singleline": 10,
+ "multiline": {
+ "max": 1,
+ "allowFirstLine": false
+ }
+ }],
+ "vue/name-property-casing": ["error", "PascalCase"],
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
@@ -196,4 +193,3 @@ module.exports = {
'array-bracket-spacing': [2, 'never']
}
}
-
diff --git a/package.json b/package.json
index 8f7847cf..89e6ec12 100644
--- a/package.json
+++ b/package.json
@@ -82,10 +82,10 @@
"eslint": "4.19.1",
"eslint-friendly-formatter": "4.0.1",
"eslint-loader": "2.0.0",
- "eslint-plugin-html": "4.0.5",
+ "eslint-plugin-vue": "4.7.1",
"file-loader": "1.1.11",
"friendly-errors-webpack-plugin": "1.7.0",
- "hash-sum": "^1.0.2",
+ "hash-sum": "1.0.2",
"html-webpack-plugin": "^4.0.0-alpha",
"husky": "0.14.3",
"lint-staged": "7.2.2",
diff --git a/src/App.vue b/src/App.vue
index 690cfc98..ab408f3e 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,11 +1,11 @@
-
+
diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue
index de953821..2d4b0193 100644
--- a/src/components/BackToTop/index.vue
+++ b/src/components/BackToTop/index.vue
@@ -1,10 +1,10 @@
-
+
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
index a30fe0cd..f1507a9e 100644
--- a/src/components/Breadcrumb/index.vue
+++ b/src/components/Breadcrumb/index.vue
@@ -1,9 +1,9 @@
-
- {{generateTitle(item.meta.title)}}
- {{generateTitle(item.meta.title)}}
+
+ {{ generateTitle(item.meta.title) }}
+ {{ generateTitle(item.meta.title) }}
@@ -13,9 +13,6 @@
import { generateTitle } from '@/utils/i18n'
export default {
- created() {
- this.getBreadcrumb()
- },
data() {
return {
levelList: null
@@ -26,12 +23,15 @@ export default {
this.getBreadcrumb()
}
},
+ created() {
+ this.getBreadcrumb()
+ },
methods: {
generateTitle,
getBreadcrumb() {
let matched = this.$route.matched.filter(item => item.name)
const first = matched[0]
- if (first && first.name !== 'dashboard') {
+ if (first && first.name.trim().toLocaleLowerCase() !== 'Dashboard'.toLocaleLowerCase()) {
matched = [{ path: '/dashboard', meta: { title: 'dashboard' }}].concat(matched)
}
this.levelList = matched
diff --git a/src/components/Charts/keyboard.vue b/src/components/Charts/keyboard.vue
index 4b1bd499..15cc3432 100644
--- a/src/components/Charts/keyboard.vue
+++ b/src/components/Charts/keyboard.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/components/ErrorLog/index.vue b/src/components/ErrorLog/index.vue
index ac8c2aa2..1fd883d0 100644
--- a/src/components/ErrorLog/index.vue
+++ b/src/components/ErrorLog/index.vue
@@ -2,15 +2,24 @@
-
-
+
@@ -18,21 +27,21 @@
Msg:
{{ scope.row.err.message }}
-
+
Info:
- {{scope.row.vm.$vnode.tag}} error in {{scope.row.info}}
+ {{ scope.row.vm.$vnode.tag }} error in {{ scope.row.info }}
-
+
Url:
- {{scope.row.url}}
+ {{ scope.row.url }}
- {{ scope.row.err.stack}}
+ {{ scope.row.err.stack }}
@@ -43,7 +52,7 @@
-
-
diff --git a/src/views/components-demo/dndList.vue b/src/views/components-demo/dndList.vue
index b9779a31..9c8847a9 100644
--- a/src/views/components-demo/dndList.vue
+++ b/src/views/components-demo/dndList.vue
@@ -4,7 +4,7 @@
Vue.Draggable
-
+
@@ -14,7 +14,7 @@ import DndList from '@/components/DndList'
import { fetchList } from '@/api/article'
export default {
- name: 'dndList-demo',
+ name: 'DndListDemo',
components: { DndList },
data() {
return {
@@ -37,4 +37,3 @@ export default {
}
-
diff --git a/src/views/components-demo/dragDialog.vue b/src/views/components-demo/dragDialog.vue
index 454d6327..0a023f90 100644
--- a/src/views/components-demo/dragDialog.vue
+++ b/src/views/components-demo/dragDialog.vue
@@ -1,15 +1,14 @@
open a Drag Dialog
-
+
-
-
+
-
-
-
+
+
+
@@ -19,7 +18,7 @@
import elDragDialog from '@/directive/el-dragDialog' // base on element-ui
export default {
- name: 'dragDialog-demo',
+ name: 'DragDialogDemo',
directives: { elDragDialog },
data() {
return {
diff --git a/src/views/components-demo/dragKanban.vue b/src/views/components-demo/dragKanban.vue
index 2bbab2bd..4353fb1e 100644
--- a/src/views/components-demo/dragKanban.vue
+++ b/src/views/components-demo/dragKanban.vue
@@ -1,15 +1,15 @@
-
-
-
+
+
+
-
diff --git a/src/views/components-demo/jsonEditor.vue b/src/views/components-demo/jsonEditor.vue
index 75299bc0..cff3780c 100644
--- a/src/views/components-demo/jsonEditor.vue
+++ b/src/views/components-demo/jsonEditor.vue
@@ -2,7 +2,7 @@
JsonEditor is base on CodeMirrorr , lint base on json-lint
-
+
@@ -13,7 +13,7 @@ import JsonEditor from '@/components/JsonEditor'
const jsonData = '[{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"CORN"}],"name":""},{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"XAGUSD"},{"market_type":"forexdata","symbol":"AUTD"},{"market_type":"forexdata","symbol":"AGTD"}],"name":"贵金属"},{"items":[{"market_type":"forexdata","symbol":"CORN"},{"market_type":"forexdata","symbol":"WHEAT"},{"market_type":"forexdata","symbol":"SOYBEAN"},{"market_type":"forexdata","symbol":"SUGAR"}],"name":"农产品"},{"items":[{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"USOIL"},{"market_type":"forexdata","symbol":"NGAS"}],"name":"能源化工"}]'
export default {
- name: 'jsonEditor-demo',
+ name: 'JsonEditorDemo',
components: { JsonEditor },
data() {
return {
diff --git a/src/views/components-demo/markdown.vue b/src/views/components-demo/markdown.vue
index 4e8b0648..f60911d0 100644
--- a/src/views/components-demo/markdown.vue
+++ b/src/views/components-demo/markdown.vue
@@ -6,10 +6,10 @@
相关文章
-
+
- To HTML
-
+ To HTML
+
@@ -27,7 +27,7 @@ const content = `
`
export default {
- name: 'markdown-demo',
+ name: 'MarkdownDemo',
components: { MarkdownEditor },
data() {
return {
@@ -46,4 +46,3 @@ export default {
}
-
diff --git a/src/views/components-demo/mixin.vue b/src/views/components-demo/mixin.vue
index 7f713f6d..99b62468 100644
--- a/src/views/components-demo/mixin.vue
+++ b/src/views/components-demo/mixin.vue
@@ -37,7 +37,7 @@
- 标题
+ 标题
@@ -74,20 +74,20 @@
hover text
-
+
-
+
Share
-
+
@@ -104,7 +104,7 @@ import DropdownMenu from '@/components/Share/dropdownMenu'
import waves from '@/directive/waves/index.js' // 水波纹指令
export default {
- name: 'componentMixin-demo',
+ name: 'ComponentMixinDemo',
components: {
PanThumb,
MdInput,
@@ -134,10 +134,7 @@ export default {
{ title: '登录权限篇', href: 'https://juejin.im/post/591aa14f570c35006961acac' },
{ title: '实战篇', href: 'https://juejin.im/post/593121aa0ce4630057f70d35' },
{ title: 'vue-admin-template 篇', href: 'https://juejin.im/post/595b4d776fb9a06bbe7dba56' },
- { title: '自行封装 component', href: 'https://segmentfault.com/a/1190000009090836' },
- { title: '优雅的使用 icon', href: 'https://juejin.im/post/59bb864b5188257e7a427c09' },
- { title: 'webpack4(上)', href: 'https://juejin.im/post/59bb864b5188257e7a427c09' },
- { title: 'webpack4(下)', href: 'https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc' }
+ { title: '优雅的使用 icon', href: 'https://juejin.im/post/59bb864b5188257e7a427c09' }
]
}
}
diff --git a/src/views/components-demo/splitpane.vue b/src/views/components-demo/splitpane.vue
index 5a0bfb2b..dcd87149 100644
--- a/src/views/components-demo/splitpane.vue
+++ b/src/views/components-demo/splitpane.vue
@@ -3,19 +3,19 @@
SplitPane If you've used
codepen,
jsfiddle will not be unfamiliar.
- Github repository
+ Github repository
-
+
-
+
-
+
-
+
@@ -27,7 +27,7 @@
import splitPane from 'vue-splitpane'
export default {
- name: 'splitpane-demo',
+ name: 'SplitpaneDemo',
components: { splitPane },
methods: {
resize() {
diff --git a/src/views/components-demo/sticky.vue b/src/views/components-demo/sticky.vue
index 49772bea..65cfb091 100644
--- a/src/views/components-demo/sticky.vue
+++ b/src/views/components-demo/sticky.vue
@@ -1,14 +1,14 @@
-
+
- Platform
+ Platform
-
+
- {{item.name}}
+ {{ item.name }}
@@ -16,18 +16,17 @@
- Link
+ Link
-
-
+
+
Url
-
-
+
publish
@@ -35,7 +34,7 @@
-
Sticky header, {{$t('components.stickyTips')}}
+
Sticky header, {{ $t('components.stickyTips') }}
placeholder
placeholder
placeholder
@@ -92,12 +91,11 @@
-
diff --git a/src/views/dashboard/admin/components/LineChart.vue b/src/views/dashboard/admin/components/LineChart.vue
index 9be9c92d..6c6637a8 100644
--- a/src/views/dashboard/admin/components/LineChart.vue
+++ b/src/views/dashboard/admin/components/LineChart.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/views/dashboard/admin/components/TransactionTable.vue b/src/views/dashboard/admin/components/TransactionTable.vue
index 7c79b77b..bcbfbb43 100644
--- a/src/views/dashboard/admin/components/TransactionTable.vue
+++ b/src/views/dashboard/admin/components/TransactionTable.vue
@@ -2,17 +2,17 @@
- {{scope.row.order_no | orderNoFilter}}
+ {{ scope.row.order_no | orderNoFilter }}
- ¥{{scope.row.price | toThousandslsFilter}}
+ ¥{{ scope.row.price | toThousandslsFilter }}
- {{scope.row.status}}
+ {{ scope.row.status }}
@@ -22,11 +22,6 @@
import { fetchList } from '@/api/transaction'
export default {
- data() {
- return {
- list: null
- }
- },
filters: {
statusFilter(status) {
const statusMap = {
@@ -39,6 +34,11 @@ export default {
return str.substring(0, 30)
}
},
+ data() {
+ return {
+ list: null
+ }
+ },
created() {
this.fetchData()
},
diff --git a/src/views/dashboard/admin/index.vue b/src/views/dashboard/admin/index.vue
index 8da28543..1a79637a 100644
--- a/src/views/dashboard/admin/index.vue
+++ b/src/views/dashboard/admin/index.vue
@@ -1,48 +1,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
diff --git a/src/views/errorLog/errorTestB.vue b/src/views/errorLog/errorTestB.vue
index a1303f89..b04c2511 100644
--- a/src/views/errorLog/errorTestB.vue
+++ b/src/views/errorLog/errorTestB.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/views/errorPage/401.vue b/src/views/errorPage/401.vue
index b8bbb013..d43be52d 100644
--- a/src/views/errorPage/401.vue
+++ b/src/views/errorPage/401.vue
@@ -1,10 +1,10 @@
-
返回
+
返回
Oops!
- gif来源airbnb 页面
+ gif来源airbnb 页面
你没有权限去该页面
如有不满请联系你领导
-
-
+
+
@@ -30,7 +30,7 @@
import errGif from '@/assets/401_images/401.gif'
export default {
- name: 'page401',
+ name: 'Page401',
data() {
return {
errGif: errGif + '?' + +new Date(),
diff --git a/src/views/errorPage/404.vue b/src/views/errorPage/404.vue
index 97e57b2f..c3eafea0 100644
--- a/src/views/errorPage/404.vue
+++ b/src/views/errorPage/404.vue
@@ -10,7 +10,7 @@
OOPS!
{{ message }}
请检查您输入的网址是否正确,请点击以下按钮返回主页或者发送错误报告
@@ -23,7 +23,7 @@
diff --git a/src/views/example/edit.vue b/src/views/example/edit.vue
index 097b6140..c21af0c9 100644
--- a/src/views/example/edit.vue
+++ b/src/views/example/edit.vue
@@ -1,12 +1,12 @@
-
+
diff --git a/src/views/example/list.vue b/src/views/example/list.vue
index 7dccafa6..f44d7078 100644
--- a/src/views/example/list.vue
+++ b/src/views/example/list.vue
@@ -1,41 +1,41 @@
-
+
- {{scope.row.id}}
+ {{ scope.row.id }}
- {{scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}')}}
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
- {{scope.row.author}}
+ {{ scope.row.author }}
-
+
- {{scope.row.status}}
+ {{ scope.row.status }}
-
+
{{ scope.row.title }}
@@ -51,9 +51,15 @@
@@ -63,7 +69,17 @@
import { fetchList } from '@/api/article'
export default {
- name: 'articleList',
+ name: 'ArticleList',
+ filters: {
+ statusFilter(status) {
+ const statusMap = {
+ published: 'success',
+ draft: 'info',
+ deleted: 'danger'
+ }
+ return statusMap[status]
+ }
+ },
data() {
return {
list: null,
@@ -75,16 +91,6 @@ export default {
}
}
},
- filters: {
- statusFilter(status) {
- const statusMap = {
- published: 'success',
- draft: 'info',
- deleted: 'danger'
- }
- return statusMap[status]
- }
- },
created() {
this.getList()
},
diff --git a/src/views/excel/exportExcel.vue b/src/views/excel/exportExcel.vue
index 6f633a2b..ae32b3aa 100644
--- a/src/views/excel/exportExcel.vue
+++ b/src/views/excel/exportExcel.vue
@@ -3,39 +3,39 @@
-
-
+
+
True
False
-
{{$t('excel.export')}} excel
+
{{ $t('excel.export') }} Excel
-
-
+
+
- {{scope.$index}}
+ {{ scope.$index }}
- {{scope.row.title}}
+ {{ scope.row.title }}
- {{scope.row.author}}
+ {{ scope.row.author }}
- {{scope.row.pageviews}}
+ {{ scope.row.pageviews }}
-
- {{scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}')}}
+
+ {{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}
@@ -47,7 +47,7 @@ import { fetchList } from '@/api/article'
import { parseTime } from '@/utils'
export default {
- name: 'exportExcel',
+ name: 'ExportExcel',
data() {
return {
list: null,
diff --git a/src/views/excel/selectExcel.vue b/src/views/excel/selectExcel.vue
index c0841373..7e5366f4 100644
--- a/src/views/excel/selectExcel.vue
+++ b/src/views/excel/selectExcel.vue
@@ -1,35 +1,42 @@
-
-
{{$t('excel.selectedExport')}}
-
-
-
+
+ {{ $t('excel.selectedExport') }}
+
+
+
- {{scope.$index}}
+ {{ scope.$index }}
- {{scope.row.title}}
+ {{ scope.row.title }}
- {{scope.row.author}}
+ {{ scope.row.author }}
- {{scope.row.pageviews}}
+ {{ scope.row.pageviews }}
-
- {{scope.row.display_time}}
+
+ {{ scope.row.display_time }}
@@ -40,7 +47,7 @@
import { fetchList } from '@/api/article'
export default {
- name: 'selectExcel',
+ name: 'SelectExcel',
data() {
return {
list: null,
diff --git a/src/views/excel/uploadExcel.vue b/src/views/excel/uploadExcel.vue
index 42789816..4095e910 100644
--- a/src/views/excel/uploadExcel.vue
+++ b/src/views/excel/uploadExcel.vue
@@ -1,9 +1,8 @@
-
+
-
-
+
@@ -12,7 +11,7 @@
import UploadExcelComponent from '@/components/UploadExcel/index.vue'
export default {
- name: 'uploadExcel',
+ name: 'UploadExcel',
components: { UploadExcelComponent },
data() {
return {
diff --git a/src/views/guide/index.vue b/src/views/guide/index.vue
index 99788caf..c30c52cf 100644
--- a/src/views/guide/index.vue
+++ b/src/views/guide/index.vue
@@ -1,11 +1,11 @@
- {{$t('guide.description')}}
+ {{ $t('guide.description') }}
driver.js.
-
{{$t('guide.button')}}
+
{{ $t('guide.button') }}
@@ -15,7 +15,7 @@ import 'driver.js/dist/driver.min.css' // import driver.js css
import steps from './defineSteps'
export default {
- name: 'guide',
+ name: 'Guide',
data() {
return {
driver: null
diff --git a/src/views/i18n-demo/index.vue b/src/views/i18n-demo/index.vue
index dc842a71..788558ba 100644
--- a/src/views/i18n-demo/index.vue
+++ b/src/views/i18n-demo/index.vue
@@ -3,41 +3,45 @@
- {{$t('i18nView.title')}}
+ {{ $t('i18nView.title') }}
简体中文
English
- {{$t('i18nView.note')}}
+ {{ $t('i18nView.note') }}
-
+
-
-
+
- {{$t('i18nView.default')}}
- {{$t('i18nView.primary')}}
- {{$t('i18nView.success')}}
- {{$t('i18nView.info')}}
- {{$t('i18nView.warning')}}
- {{$t('i18nView.danger')}}
+ {{ $t('i18nView.default') }}
+ {{ $t('i18nView.primary') }}
+ {{ $t('i18nView.success') }}
+ {{ $t('i18nView.info') }}
+ {{ $t('i18nView.warning') }}
+ {{ $t('i18nView.danger') }}
-
-
-
+
+
+
@@ -49,7 +53,7 @@ import local from './local'
const viewName = 'i18nView'
export default {
- name: 'i18n',
+ name: 'I18n',
data() {
return {
date: '',
@@ -76,12 +80,6 @@ export default {
}]
}
},
- created() {
- if (!this.$i18n.getLocaleMessage('en')[viewName]) {
- this.$i18n.mergeLocaleMessage('en', local.en)
- this.$i18n.mergeLocaleMessage('zh', local.zh)
- }
- },
computed: {
lang: {
get() {
@@ -92,6 +90,12 @@ export default {
this.$store.dispatch('setLanguage', lang)
}
}
+ },
+ created() {
+ if (!this.$i18n.getLocaleMessage('en')[viewName]) {
+ this.$i18n.mergeLocaleMessage('en', local.en)
+ this.$i18n.mergeLocaleMessage('zh', local.zh)
+ }
}
}
diff --git a/src/views/i18n-demo/local.js b/src/views/i18n-demo/local.js
index a4c07203..7977d2f9 100644
--- a/src/views/i18n-demo/local.js
+++ b/src/views/i18n-demo/local.js
@@ -3,7 +3,7 @@ export default {
zh: {
i18nView: {
title: '切换语言',
- note: '目前只翻译了当前页面和侧边栏和导航,未完待续,敬请期待...',
+ note: '本项目国际化基于 vue-i18n',
datePlaceholder: '请选择日期',
tableDate: '日期',
tableName: '姓名',
@@ -20,7 +20,7 @@ export default {
en: {
i18nView: {
title: 'Switch Language',
- note: 'Currently only translated the i18n page and the sidebar and levelbar, please look forword to...',
+ note: 'The internationalization of this project is based on vue-i18n',
datePlaceholder: 'Pick a day',
tableDate: 'tableDate',
tableName: 'tableName',
diff --git a/src/views/layout/Layout.vue b/src/views/layout/Layout.vue
index 5b78bf0f..bd882ef0 100644
--- a/src/views/layout/Layout.vue
+++ b/src/views/layout/Layout.vue
@@ -1,11 +1,11 @@
-
-
-
+
@@ -15,7 +15,7 @@ import { Navbar, Sidebar, AppMain, TagsView } from './components'
import ResizeMixin from './mixin/ResizeHandler'
export default {
- name: 'layout',
+ name: 'Layout',
components: {
Navbar,
Sidebar,
diff --git a/src/views/layout/components/AppMain.vue b/src/views/layout/components/AppMain.vue
index 584e3723..553bb61d 100644
--- a/src/views/layout/components/AppMain.vue
+++ b/src/views/layout/components/AppMain.vue
@@ -2,7 +2,7 @@
diff --git a/src/views/layout/components/Navbar.vue b/src/views/layout/components/Navbar.vue
index ad96453c..07244584 100644
--- a/src/views/layout/components/Navbar.vue
+++ b/src/views/layout/components/Navbar.vue
@@ -1,40 +1,40 @@
-
+
-
+