From 4af4df702c73319dd34831d960e9eaa334a1f19e Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 15 Jun 2017 10:38:12 +0800 Subject: [PATCH 001/277] upgrade package.json --- package.json | 62 +++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 4fbfd5ae..86c3619b 100644 --- a/package.json +++ b/package.json @@ -13,14 +13,14 @@ "lint": "eslint --ext .js,.vue src" }, "dependencies": { - "axios": "0.15.3", - "codemirror": "5.25.2", - "dropzone": "4.3.0", - "echarts": "3.4.0", - "element-ui": "1.3.3", + "axios": "0.16.2", + "codemirror": "5.26.0", + "dropzone": "5.1.0", + "echarts": "3.6.1", + "element-ui": "1.3.6", "file-saver": "1.3.3", "jquery": "3.1.1", - "js-cookie": "2.1.3", + "js-cookie": "2.1.4", "jsonlint": "1.6.2", "mockjs": "1.0.1-beta3", "normalize.css": "3.0.2", @@ -32,38 +32,37 @@ "vue-count-to": "1.0.5", "vue-multiselect": "2.0.0-beta.15", "vue-router": "2.5.3", - "vuedraggable": "2.8.4", + "vuedraggable": "2.13.1", "vuex": "2.3.1", "xlsx": "0.8.1" }, "devDependencies": { - "autoprefixer": "6.7.2", - "babel-core": "6.22.1", - "babel-eslint": "7.1.1", - "babel-loader": "6.2.10", - "babel-plugin-transform-runtime": "6.22.0", - "babel-preset-es2015": "6.22.0", - "babel-preset-stage-2": "6.22.0", - "babel-register": "6.22.0", + "autoprefixer": "7.1.1", + "babel-eslint": "7.2.3", + "babel-loader": "7.0.0", + "babel-plugin-transform-runtime": "6.23.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-stage-2": "6.24.1", + "babel-register": "6.24.1", "chalk": "1.1.3", "connect-history-api-fallback": "1.3.0", "copy-webpack-plugin": "4.0.1", - "cross-env": "4.0.0", - "css-loader": "0.28.0", - "eslint": "3.19.0", - "eslint-friendly-formatter": "2.0.7", + "cross-env": "5.0.1", + "css-loader": "0.28.4", + "eslint": "4.0.0", + "eslint-friendly-formatter": "3.0.0", "eslint-import-resolver-webpack": "0.8.1", "eslint-loader": "1.7.1", - "eslint-plugin-html": "2.0.1", - "eslint-plugin-import": "2.2.0", + "eslint-plugin-html": "3.0.0", + "eslint-plugin-import": "2.3.0", "eventsource-polyfill": "0.9.6", - "express": "4.14.1", - "extract-text-webpack-plugin": "2.0.0", - "file-loader": "0.10.0", - "friendly-errors-webpack-plugin": "1.1.3", + "express": "4.15.3", + "extract-text-webpack-plugin": "2.1.2", + "file-loader": "0.11.2", + "friendly-errors-webpack-plugin": "1.6.1", "function-bind": "1.1.0", "html-webpack-plugin": "2.28.0", - "http-proxy-middleware": "0.17.3", + "http-proxy-middleware": "0.17.4", "node-sass": "^4.5.0", "opn": "4.0.2", "optimize-css-assets-webpack-plugin": "1.3.0", @@ -75,13 +74,12 @@ "semver": "5.3.0", "style-loader": "0.17.0", "url-loader": "0.5.8", - "vue-loader": "12.0.4", - "vue-style-loader": "2.0.5", + "vue-loader": "12.2.1", + "vue-style-loader": "3.0.1", "vue-template-compiler": "2.3.3", - "webpack": "2.5.1", - "webpack-bundle-analyzer": "2.2.1", - "webpack-dashboard": "0.2.1", - "webpack-dev-middleware": "1.10.0", + "webpack": "2.6.1", + "webpack-bundle-analyzer": "2.8.2", + "webpack-dev-middleware": "1.10.2", "webpack-hot-middleware": "2.18.0", "webpack-merge": "4.1.0" }, From 42b5875d36d1ee93d123be359f18f740f355575b Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 15 Jun 2017 10:39:03 +0800 Subject: [PATCH 002/277] upgrade babel-core --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 86c3619b..2d5214f0 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ }, "devDependencies": { "autoprefixer": "7.1.1", + "babel-core": "6.25.0", "babel-eslint": "7.2.3", "babel-loader": "7.0.0", "babel-plugin-transform-runtime": "6.23.0", From 4a6ef1af1795f6bb2d676abd7976fae669a8801d Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 15 Jun 2017 10:49:27 +0800 Subject: [PATCH 003/277] degrade eslint eslint4.0 has some problem --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d5214f0..5e9b5727 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "copy-webpack-plugin": "4.0.1", "cross-env": "5.0.1", "css-loader": "0.28.4", - "eslint": "4.0.0", + "eslint": "3.19.0", "eslint-friendly-formatter": "3.0.0", "eslint-import-resolver-webpack": "0.8.1", "eslint-loader": "1.7.1", From 3a2bf13a1fa05138f9d440eff06d635abd57dc76 Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 15 Jun 2017 11:05:41 +0800 Subject: [PATCH 004/277] refine code --- src/views/layout/Navbar.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/views/layout/Navbar.vue b/src/views/layout/Navbar.vue index 5e156663..15e3b2e7 100644 --- a/src/views/layout/Navbar.vue +++ b/src/views/layout/Navbar.vue @@ -2,7 +2,8 @@ - + +
@@ -29,14 +30,14 @@ import { mapGetters } from 'vuex'; import Levelbar from './Levelbar'; import Hamburger from 'components/Hamburger'; - import ErrLog from 'components/ErrLog'; + import ErrorLog from 'components/ErrLog'; import errLogStore from 'store/errLog'; export default { components: { Levelbar, Hamburger, - ErrLog + ErrorLog }, data() { return { From 5a8755ec9f39a405ff5b938c84f4b1a45738958c Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 15 Jun 2017 13:23:49 +0800 Subject: [PATCH 005/277] add screenfull --- package.json | 1 + src/components/Screenfull/index.vue | 57 +++++++++++++++++++++++++++++ src/views/layout/Navbar.vue | 14 +++++-- 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 src/components/Screenfull/index.vue diff --git a/package.json b/package.json index 5e9b5727..90e41d0d 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "mockjs": "1.0.1-beta3", "normalize.css": "3.0.2", "nprogress": "0.2.0", + "screenfull": "3.2.2", "showdown": "1.7.1", "simplemde": "1.11.2", "sortablejs": "1.5.1", diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue new file mode 100644 index 00000000..4c5a9c37 --- /dev/null +++ b/src/components/Screenfull/index.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/views/layout/Navbar.vue b/src/views/layout/Navbar.vue index 15e3b2e7..8871b594 100644 --- a/src/views/layout/Navbar.vue +++ b/src/views/layout/Navbar.vue @@ -1,9 +1,9 @@ diff --git a/src/components/Charts/keyboard2.vue b/src/components/Charts/keyboard2.vue index 605d7c1d..eb5cfb79 100644 --- a/src/components/Charts/keyboard2.vue +++ b/src/components/Charts/keyboard2.vue @@ -2,148 +2,148 @@
diff --git a/src/components/Charts/lineMarker.vue b/src/components/Charts/lineMarker.vue index cbba78bc..0d74856a 100644 --- a/src/components/Charts/lineMarker.vue +++ b/src/components/Charts/lineMarker.vue @@ -2,218 +2,220 @@
diff --git a/src/components/Charts/mixchart.vue b/src/components/Charts/mixchart.vue index 04904df4..28bdc1e0 100644 --- a/src/components/Charts/mixchart.vue +++ b/src/components/Charts/mixchart.vue @@ -2,264 +2,266 @@
diff --git a/src/views/charts/keyboard.vue b/src/views/charts/keyboard.vue index 76840715..44aa752f 100644 --- a/src/views/charts/keyboard.vue +++ b/src/views/charts/keyboard.vue @@ -1,7 +1,7 @@ diff --git a/src/views/charts/keyboard2.vue b/src/views/charts/keyboard2.vue index 964a1949..623bb82c 100644 --- a/src/views/charts/keyboard2.vue +++ b/src/views/charts/keyboard2.vue @@ -1,7 +1,7 @@ diff --git a/src/views/charts/line.vue b/src/views/charts/line.vue index 975cf915..726fdfd3 100644 --- a/src/views/charts/line.vue +++ b/src/views/charts/line.vue @@ -1,7 +1,7 @@ diff --git a/src/views/charts/mixchart.vue b/src/views/charts/mixchart.vue index 4a0e6a0a..7f3f51b4 100644 --- a/src/views/charts/mixchart.vue +++ b/src/views/charts/mixchart.vue @@ -1,15 +1,15 @@ From f27b16718e15ce1eedf03553b9d84bf2f4895c11 Mon Sep 17 00:00:00 2001 From: Pan Date: Fri, 30 Jun 2017 18:43:04 +0800 Subject: [PATCH 037/277] add new charts --- src/assets/echarts-macarons.js | 199 ++++++++++++++ src/components/Charts/barPercent.vue | 104 -------- src/components/Charts/line.vue | 146 ----------- src/styles/index.scss | 4 + src/views/dashboard/editor/articlesChart.vue | 34 --- src/views/dashboard/editor/barChart.vue | 88 +++++++ src/views/dashboard/editor/index.vue | 261 ++++++------------- src/views/dashboard/editor/lineChart.vue | 93 +++++++ src/views/dashboard/editor/monthKpi.vue | 61 ----- src/views/dashboard/editor/pieChart.vue | 76 ++++++ 10 files changed, 537 insertions(+), 529 deletions(-) create mode 100644 src/assets/echarts-macarons.js delete mode 100644 src/components/Charts/barPercent.vue delete mode 100644 src/components/Charts/line.vue delete mode 100644 src/views/dashboard/editor/articlesChart.vue create mode 100644 src/views/dashboard/editor/barChart.vue create mode 100644 src/views/dashboard/editor/lineChart.vue delete mode 100644 src/views/dashboard/editor/monthKpi.vue create mode 100644 src/views/dashboard/editor/pieChart.vue diff --git a/src/assets/echarts-macarons.js b/src/assets/echarts-macarons.js new file mode 100644 index 00000000..0678ef83 --- /dev/null +++ b/src/assets/echarts-macarons.js @@ -0,0 +1,199 @@ +/* eslint-disable */ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['exports', 'echarts'], factory); + } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { + // CommonJS + factory(exports, require('echarts')); + } else { + // Browser globals + factory({}, root.echarts); + } +}(this, function (exports, echarts) { + var log = function (msg) { + if (typeof console !== 'undefined') { + console && console.error && console.error(msg); + } + }; + if (!echarts) { + log('ECharts is not Loaded'); + return; + } + + var colorPalette = [ + '#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80', + '#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa', + '#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050', + '#59678c','#c9ab00','#7eb00a','#6f5553','#c14089' + ]; + + + var theme = { + color: colorPalette, + + title: { + textStyle: { + fontWeight: 'normal', + color: '#008acd' + } + }, + + visualMap: { + itemWidth: 15, + color: ['#5ab1ef','#e0ffff'] + }, + + toolbox: { + iconStyle: { + normal: { + borderColor: colorPalette[0] + } + } + }, + + tooltip: { + backgroundColor: 'rgba(50,50,50,0.5)', + axisPointer : { + type : 'line', + lineStyle : { + color: '#008acd' + }, + crossStyle: { + color: '#008acd' + }, + shadowStyle : { + color: 'rgba(200,200,200,0.2)' + } + } + }, + + dataZoom: { + dataBackgroundColor: '#efefff', + fillerColor: 'rgba(182,162,222,0.2)', + handleColor: '#008acd' + }, + + grid: { + borderColor: '#eee' + }, + + categoryAxis: { + axisLine: { + lineStyle: { + color: '#008acd' + } + }, + splitLine: { + lineStyle: { + color: ['#eee'] + } + } + }, + + valueAxis: { + axisLine: { + lineStyle: { + color: '#008acd' + } + }, + splitArea : { + show : true, + areaStyle : { + color: ['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)'] + } + }, + splitLine: { + lineStyle: { + color: ['#eee'] + } + } + }, + + timeline : { + lineStyle : { + color : '#008acd' + }, + controlStyle : { + normal : { color : '#008acd'}, + emphasis : { color : '#008acd'} + }, + symbol : 'emptyCircle', + symbolSize : 3 + }, + + line: { + smooth : true, + symbol: 'emptyCircle', + symbolSize: 3 + }, + + candlestick: { + itemStyle: { + normal: { + color: '#d87a80', + color0: '#2ec7c9', + lineStyle: { + color: '#d87a80', + color0: '#2ec7c9' + } + } + } + }, + + scatter: { + symbol: 'circle', + symbolSize: 4 + }, + + map: { + label: { + normal: { + textStyle: { + color: '#d87a80' + } + } + }, + itemStyle: { + normal: { + borderColor: '#eee', + areaColor: '#ddd' + }, + emphasis: { + areaColor: '#fe994e' + } + } + }, + + graph: { + color: colorPalette + }, + + gauge : { + axisLine: { + lineStyle: { + color: [[0.2, '#2ec7c9'],[0.8, '#5ab1ef'],[1, '#d87a80']], + width: 10 + } + }, + axisTick: { + splitNumber: 10, + length :15, + lineStyle: { + color: 'auto' + } + }, + splitLine: { + length :22, + lineStyle: { + color: 'auto' + } + }, + pointer : { + width : 5 + } + } + }; + + echarts.registerTheme('macarons', theme); +})); diff --git a/src/components/Charts/barPercent.vue b/src/components/Charts/barPercent.vue deleted file mode 100644 index e82422fe..00000000 --- a/src/components/Charts/barPercent.vue +++ /dev/null @@ -1,104 +0,0 @@ - - diff --git a/src/components/Charts/line.vue b/src/components/Charts/line.vue deleted file mode 100644 index ab416c76..00000000 --- a/src/components/Charts/line.vue +++ /dev/null @@ -1,146 +0,0 @@ - - diff --git a/src/styles/index.scss b/src/styles/index.scss index 5bf93a89..79fda7e9 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -96,6 +96,7 @@ code { opacity: 0; } + //main-container全局样式 .app-container { padding: 20px; @@ -112,6 +113,9 @@ code { height: 100%!important; } +.text-center{ + text-align: center +} .wscn-icon { width: 1em; height: 1em; diff --git a/src/views/dashboard/editor/articlesChart.vue b/src/views/dashboard/editor/articlesChart.vue deleted file mode 100644 index a62e1962..00000000 --- a/src/views/dashboard/editor/articlesChart.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/src/views/dashboard/editor/barChart.vue b/src/views/dashboard/editor/barChart.vue new file mode 100644 index 00000000..dcbb357a --- /dev/null +++ b/src/views/dashboard/editor/barChart.vue @@ -0,0 +1,88 @@ + + diff --git a/src/views/dashboard/editor/index.vue b/src/views/dashboard/editor/index.vue index 452070ff..9c05c97e 100644 --- a/src/views/dashboard/editor/index.vue +++ b/src/views/dashboard/editor/index.vue @@ -1,55 +1,91 @@ diff --git a/src/views/dashboard/editor/lineChart.vue b/src/views/dashboard/editor/lineChart.vue new file mode 100644 index 00000000..7ebd72b0 --- /dev/null +++ b/src/views/dashboard/editor/lineChart.vue @@ -0,0 +1,93 @@ + + diff --git a/src/views/dashboard/editor/monthKpi.vue b/src/views/dashboard/editor/monthKpi.vue deleted file mode 100644 index 7fdd7501..00000000 --- a/src/views/dashboard/editor/monthKpi.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - diff --git a/src/views/dashboard/editor/pieChart.vue b/src/views/dashboard/editor/pieChart.vue new file mode 100644 index 00000000..2b02a5d7 --- /dev/null +++ b/src/views/dashboard/editor/pieChart.vue @@ -0,0 +1,76 @@ + + From 54884f50c18777caaec0da66bc162410316abb25 Mon Sep 17 00:00:00 2001 From: Pan Date: Sun, 2 Jul 2017 16:24:24 +0800 Subject: [PATCH 038/277] refine css --- src/views/dashboard/editor/index.vue | 136 +++++++++++---------------- 1 file changed, 56 insertions(+), 80 deletions(-) diff --git a/src/views/dashboard/editor/index.vue b/src/views/dashboard/editor/index.vue index 9c05c97e..c4da0aa8 100644 --- a/src/views/dashboard/editor/index.vue +++ b/src/views/dashboard/editor/index.vue @@ -1,5 +1,6 @@ - - diff --git a/src/views/login/sendpwd.vue b/src/views/login/sendpwd.vue deleted file mode 100644 index cd26484e..00000000 --- a/src/views/login/sendpwd.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - - - From f0db0697e697da7bbe25587e65e233c926e76e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=A8=E5=85=89?= <809200299@qq.com> Date: Mon, 3 Jul 2017 19:03:34 +0800 Subject: [PATCH 049/277] fix: todolist delete icon style --- src/components/TodoList/index.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/TodoList/index.scss b/src/components/TodoList/index.scss index 5fc9e4b5..8ed13d73 100644 --- a/src/components/TodoList/index.scss +++ b/src/components/TodoList/index.scss @@ -197,7 +197,6 @@ margin: auto 0; font-size: 30px; color: #cc9a9a; - margin-bottom: 11px; transition: color 0.2s ease-out; } .todo-list li .destroy:hover { From 04261f7347ca3c039d6d771935dbd15ad641119f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 4 Jul 2017 15:52:12 +0800 Subject: [PATCH 050/277] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 22eb6f24..5fe3540e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ [wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) +**本项目的定位是后台集成方案,不适合当基础模板来开发,模板建议使用 [vueAdmin-template](https://github.com/PanJiaChen/vueAdmin-template)** + **注意:该项目目前使用element-ui@1.3.3版本,所以最低兼容 Vue 2.3.0** ## 前言 From 540168985df4896b176c5836ce32659d307af3df Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 4 Jul 2017 16:11:53 +0800 Subject: [PATCH 051/277] refine code --- src/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index 622efb45..4104e1f2 100644 --- a/src/main.js +++ b/src/main.js @@ -53,7 +53,7 @@ router.beforeEach((to, from, next) => { const roles = res.data.role; store.dispatch('GenerateRoutes', { roles }).then(() => { // 生成可访问的路由表 router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 - next(Object.assign({}, to)); // hack方法 确保addRoutes已完成 + next({ ...to }); // hack方法 确保addRoutes已完成 }) }) } else { From 9342ae6fc3c2ee2b06ad25f6bc6bb07e58bc16df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 4 Jul 2017 16:17:39 +0800 Subject: [PATCH 052/277] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5fe3540e..89670158 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ - [手摸手,带你用 vue 撸后台 系列一(基础篇)](https://juejin.im/post/59097cd7a22b9d0065fb61d2) - [手摸手,带你用 vue 撸后台 系列二(登录权限篇)](https://juejin.im/post/591aa14f570c35006961acac) - [手摸手,带你用 vue 撸后台 系列三 (实战篇)](https://juejin.im/post/593121aa0ce4630057f70d35) + - [手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)](https://juejin.im/post/595b4d776fb9a06bbe7dba56) + https://juejin.im/post/595b4d776fb9a06bbe7dba56 - [手摸手,带你封装一个vue component](https://segmentfault.com/a/1190000009090836) 相应需求,开了一个qq群 591724180 方便大家交流 From 622a8c3a69ecc35aeaad84ce099397b59c5d0c29 Mon Sep 17 00:00:00 2001 From: Pan Date: Wed, 5 Jul 2017 11:42:29 +0800 Subject: [PATCH 053/277] refine icon-svg --- src/components/Icon-svg/index.js | 11 ---- .../Icon-svg/{wscn-icon-svg.vue => index.vue} | 8 +-- src/components/Icon-svg/wscn-icon-stack.vue | 52 ------------------ src/main.js | 4 +- src/styles/index.scss | 2 +- src/views/dashboard/editor/index.vue | 8 ++- src/views/example/tab/components/tabPane.vue | 2 +- src/views/example/table/dragTable.vue | 4 +- src/views/example/table/inlineEditTable.vue | 2 +- src/views/example/table/table.vue | 2 +- src/views/layout/SidebarItem.vue | 6 +-- src/views/login/index.vue | 54 +++++++++---------- src/views/login/socialsignin.vue | 6 +-- 13 files changed, 45 insertions(+), 116 deletions(-) delete mode 100644 src/components/Icon-svg/index.js rename src/components/Icon-svg/{wscn-icon-svg.vue => index.vue} (72%) delete mode 100644 src/components/Icon-svg/wscn-icon-stack.vue diff --git a/src/components/Icon-svg/index.js b/src/components/Icon-svg/index.js deleted file mode 100644 index 55d342a9..00000000 --- a/src/components/Icon-svg/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue' - -function registerAllComponents(requireContext) { - return requireContext.keys().forEach(comp => { - const vueComp = requireContext(comp) - const compName = vueComp.name ? vueComp.name.toLowerCase() : /\/([\w-]+)\.vue$/.exec(comp)[1] - Vue.component(compName, vueComp) - }) -} - -registerAllComponents(require.context('./', false, /\.vue$/)) diff --git a/src/components/Icon-svg/wscn-icon-svg.vue b/src/components/Icon-svg/index.vue similarity index 72% rename from src/components/Icon-svg/wscn-icon-svg.vue rename to src/components/Icon-svg/index.vue index 04b01f4a..44881b1a 100644 --- a/src/components/Icon-svg/wscn-icon-svg.vue +++ b/src/components/Icon-svg/index.vue @@ -1,12 +1,12 @@ - - diff --git a/src/components/Icon-svg/wscn-icon-stack.vue b/src/components/Icon-svg/wscn-icon-stack.vue deleted file mode 100644 index bf7b07e1..00000000 --- a/src/components/Icon-svg/wscn-icon-stack.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/main.js b/src/main.js index 4104e1f2..cd00bfc9 100644 --- a/src/main.js +++ b/src/main.js @@ -10,19 +10,21 @@ import 'assets/custom-theme/index.css'; // 换肤版本element-ui css import NProgress from 'nprogress'; // Progress 进度条 import 'nprogress/nprogress.css';// Progress 进度条 样式 import 'normalize.css/normalize.css';// normalize.css 样式格式化 -import 'components/Icon-svg/index'; // 封装的svg组件 import 'assets/iconfont/iconfont'; // iconfont 具体图标见https://github.com/PanJiaChen/vue-element-admin/wiki import * as filters from './filters'; // 全局vue filter import Multiselect from 'vue-multiselect';// 使用的一个多选框组件,element-ui的select不能满足所有需求 import 'vue-multiselect/dist/vue-multiselect.min.css';// 多选框组件css import Sticky from 'components/Sticky'; // 粘性header组件 +import IconSvg from 'components/Icon-svg';// svg 组件 import vueWaves from './directive/waves';// 水波纹指令 import errLog from 'store/errLog';// error log组件 import './mock/index.js'; // 该项目所有请求使用mockjs模拟 + // register globally Vue.component('multiselect', Multiselect); Vue.component('Sticky', Sticky); +Vue.component('icon-svg', IconSvg) Vue.use(ElementUI); Vue.use(vueWaves); diff --git a/src/styles/index.scss b/src/styles/index.scss index 79fda7e9..97b1a62b 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -116,7 +116,7 @@ code { .text-center{ text-align: center } -.wscn-icon { +.svg-icon { width: 1em; height: 1em; vertical-align: -0.15em; diff --git a/src/views/dashboard/editor/index.vue b/src/views/dashboard/editor/index.vue index 0da5231f..b4df574c 100644 --- a/src/views/dashboard/editor/index.vue +++ b/src/views/dashboard/editor/index.vue @@ -1,6 +1,5 @@ diff --git a/src/views/components/countTo.vue b/src/views/components/countTo.vue index f0d6cb42..a405381d 100644 --- a/src/views/components/countTo.vue +++ b/src/views/components/countTo.vue @@ -3,7 +3,7 @@ countTo component + :separator='_separator' :prefix='_prefix' :suffix='_suffix' :autoplay='false'>
@@ -22,72 +22,72 @@ diff --git a/src/views/components/sticky.vue b/src/views/components/sticky.vue index 6e29d19f..06e71e18 100644 --- a/src/views/components/sticky.vue +++ b/src/views/components/sticky.vue @@ -1,6 +1,6 @@ - + diff --git a/src/views/dashboard/editor/barChart.vue b/src/views/dashboard/editor/barChart.vue index dcbb357a..05d00f88 100644 --- a/src/views/dashboard/editor/barChart.vue +++ b/src/views/dashboard/editor/barChart.vue @@ -1,6 +1,7 @@ + diff --git a/src/views/error/401.vue b/src/views/error/401.vue index bddfc1de..4982b460 100644 --- a/src/views/error/401.vue +++ b/src/views/error/401.vue @@ -28,25 +28,25 @@ diff --git a/src/views/example/form.vue b/src/views/example/form.vue index c48fcb91..b053ed84 100644 --- a/src/views/example/form.vue +++ b/src/views/example/form.vue @@ -120,141 +120,141 @@ diff --git a/src/views/layout/Levelbar.vue b/src/views/layout/Levelbar.vue index cb40084d..0f98a698 100644 --- a/src/views/layout/Levelbar.vue +++ b/src/views/layout/Levelbar.vue @@ -8,42 +8,42 @@ diff --git a/src/views/layout/Navbar.vue b/src/views/layout/Navbar.vue index 5929e620..7e375037 100644 --- a/src/views/layout/Navbar.vue +++ b/src/views/layout/Navbar.vue @@ -1,119 +1,119 @@ diff --git a/src/views/layout/Sidebar.vue b/src/views/layout/Sidebar.vue index 169b168e..863b4cc5 100644 --- a/src/views/layout/Sidebar.vue +++ b/src/views/layout/Sidebar.vue @@ -1,24 +1,24 @@ diff --git a/src/views/layout/SidebarItem.vue b/src/views/layout/SidebarItem.vue index 1d31d1ff..22d1de50 100644 --- a/src/views/layout/SidebarItem.vue +++ b/src/views/layout/SidebarItem.vue @@ -1,47 +1,47 @@ diff --git a/src/views/layout/TabsView.vue b/src/views/layout/TabsView.vue index 34b9c860..8cab4f6f 100644 --- a/src/views/layout/TabsView.vue +++ b/src/views/layout/TabsView.vue @@ -5,48 +5,47 @@ {{tag.name}} -
+
diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 4207dddf..e7597f91 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -20,72 +20,74 @@
admin账号为:admin@wallstreetcn.com 密码随便填
editor账号:editor@wallstreetcn.com 密码随便填
+ 邮箱登录成功,请选择第三方验证 - + + diff --git a/src/views/login/socialsignin.vue b/src/views/login/socialsignin.vue index 4b4f9e33..89dd061e 100644 --- a/src/views/login/socialsignin.vue +++ b/src/views/login/socialsignin.vue @@ -1,66 +1,68 @@ + diff --git a/src/views/permission/index.vue b/src/views/permission/index.vue index c3159395..92f6df98 100644 --- a/src/views/permission/index.vue +++ b/src/views/permission/index.vue @@ -9,24 +9,24 @@ diff --git a/src/views/qiniu/upload.vue b/src/views/qiniu/upload.vue index 7250458b..a91057ab 100644 --- a/src/views/qiniu/upload.vue +++ b/src/views/qiniu/upload.vue @@ -1,10 +1,5 @@ + + - - diff --git a/src/views/components/backToTop.vue b/src/views/components/backToTop.vue index ecf39575..df681b7d 100644 --- a/src/views/components/backToTop.vue +++ b/src/views/components/backToTop.vue @@ -1,8 +1,7 @@ + - + From c8856741c646fae8f176d21b235583d7e24b5eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Wed, 19 Jul 2017 16:23:40 +0800 Subject: [PATCH 073/277] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3fc9b555..5c2adef0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ [wiki](https://github.com/PanJiaChen/vue-element-admin/wiki) -**本项目的定位是后台集成方案,不适合当基础模板来开发,模板建议使用 [vueAdmin-template](https://github.com/PanJiaChen/vueAdmin-template)** +**本项目的定位是后台集成方案,不适合当基础模板来开发,模板建议使用 [vueAdmin-template](https://github.com/PanJiaChen/vueAdmin-template) , 桌面端 [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)** + + **注意:该项目目前使用element-ui@1.3.3版本,所以最低兼容 Vue 2.3.0** @@ -24,7 +26,7 @@ 相应需求,开了一个qq群 `591724180` 方便大家交流 - **如有问题请先看上述文章和Wiki,若不能满足,欢迎issue和pr~** + **如有问题请先看上述文章和Wiki,若不能满足,欢迎 issue 和 pr ~** **该项目并不是一个脚手架,更倾向于是一个集成解决方案** @@ -183,4 +185,8 @@ Detailed changes for each release are documented in the [release notes](https:// ![enter image description here](https://github.com/PanJiaChen/vue-element-admin/blob/master/gifs/excel.png) -## [更多demo](http://panjiachen.github.io/vue-element-admin) +## [查看更多demo](http://panjiachen.github.io/vue-element-admin) + +## License + +MIT From a0a011e985747d58b469be224e3d2dadf5885605 Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 20 Jul 2017 13:26:09 +0800 Subject: [PATCH 074/277] fix cookie token bug --- src/main.js | 3 ++- src/store/modules/user.js | 14 +++++++------- src/utils/auth.js | 15 +++++++++++++++ src/utils/fetch.js | 4 ++-- 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 src/utils/auth.js diff --git a/src/main.js b/src/main.js index 68bb5661..09e25466 100644 --- a/src/main.js +++ b/src/main.js @@ -19,6 +19,7 @@ import IconSvg from 'components/Icon-svg';// svg 组件 import vueWaves from './directive/waves';// 水波纹指令 import errLog from 'store/errLog';// error log组件 import './mock/index.js'; // 该项目所有请求使用mockjs模拟 +import { getToken } from 'utils/auth'; // register globally Vue.component('multiselect', Multiselect); @@ -43,7 +44,7 @@ function hasPermission(roles, permissionRoles) { const whiteList = ['/login', '/authredirect', '/reset', '/sendpwd'];// 不重定向白名单 router.beforeEach((to, from, next) => { NProgress.start(); // 开启Progress - if (store.getters.token) { // 判断是否有token + if (getToken()) { // 判断是否有token if (to.path === '/login') { next({ path: '/' }); } else { diff --git a/src/store/modules/user.js b/src/store/modules/user.js index b6f2b8bd..d65175eb 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,12 +1,12 @@ import { loginByEmail, logout, getInfo } from 'api/login'; -import Cookies from 'js-cookie'; +import { getToken, setToken, removeToken } from 'utils/auth'; const user = { state: { user: '', status: '', code: '', - token: Cookies.get('Admin-Token'), + token: getToken(), name: '', avatar: '', introduction: '', @@ -56,7 +56,7 @@ const user = { return new Promise((resolve, reject) => { loginByEmail(email, userInfo.password).then(response => { const data = response.data; - Cookies.set('Admin-Token', response.data.token); + setToken(response.data.token); commit('SET_TOKEN', data.token); resolve(); }).catch(error => { @@ -87,7 +87,7 @@ const user = { commit('SET_CODE', code); loginByThirdparty(state.status, state.email, state.code).then(response => { commit('SET_TOKEN', response.data.token); - Cookies.set('Admin-Token', response.data.token); + setToken(response.data.token); resolve(); }).catch(error => { reject(error); @@ -101,7 +101,7 @@ const user = { logout(state.token).then(() => { commit('SET_TOKEN', ''); commit('SET_ROLES', []); - Cookies.remove('Admin-Token'); + removeToken(); resolve(); }).catch(error => { reject(error); @@ -113,7 +113,7 @@ const user = { FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', ''); - Cookies.remove('Admin-Token'); + removeToken(); resolve(); }); }, @@ -123,7 +123,7 @@ const user = { return new Promise(resolve => { commit('SET_ROLES', [role]); commit('SET_TOKEN', role); - Cookies.set('Admin-Token', role); + setToken(role); resolve(); }) } diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 00000000..08a43d6e --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,15 @@ +import Cookies from 'js-cookie' + +const TokenKey = 'Admin-Token' + +export function getToken() { + return Cookies.get(TokenKey) +} + +export function setToken(token) { + return Cookies.set(TokenKey, token) +} + +export function removeToken() { + return Cookies.remove(TokenKey) +} diff --git a/src/utils/fetch.js b/src/utils/fetch.js index 43caa095..cf15ca75 100644 --- a/src/utils/fetch.js +++ b/src/utils/fetch.js @@ -1,7 +1,7 @@ import axios from 'axios'; import { Message } from 'element-ui'; import store from '../store'; -// import router from '../router'; +import { getToken } from 'utils/auth'; // 创建axios实例 const service = axios.create({ @@ -13,7 +13,7 @@ const service = axios.create({ service.interceptors.request.use(config => { // Do something before request is sent if (store.getters.token) { - config.headers['X-Token'] = store.getters.token; // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改 + config.headers['X-Token'] = getToken(); // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改 } return config; }, error => { From d6868d719072d1957dd1aeacccb3a4fe13ea0d90 Mon Sep 17 00:00:00 2001 From: Pan Date: Mon, 24 Jul 2017 14:55:33 +0800 Subject: [PATCH 075/277] rm --- src/views/login/index.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index e7597f91..15d2686d 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -77,8 +77,7 @@ this.loading = false; this.$router.push({ path: '/' }); // this.showDialog = true; - }).catch(err => { - this.$message.error(err); + }).catch(() => { this.loading = false; }); } else { From 96b100d33cf31d89625405d065f24ba28138532c Mon Sep 17 00:00:00 2001 From: Pan Date: Mon, 24 Jul 2017 17:58:46 +0800 Subject: [PATCH 076/277] add editorconfig --- .editorconfig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..ea6e20f5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false From 4467420d3106d68f03e5cf24898f9291ba3b2732 Mon Sep 17 00:00:00 2001 From: ginhom Date: Tue, 25 Jul 2017 15:56:14 +0800 Subject: [PATCH 077/277] fixed: catch 'GetInfo' exception --- src/main.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.js b/src/main.js index 09e25466..f1b1a592 100644 --- a/src/main.js +++ b/src/main.js @@ -55,6 +55,10 @@ router.beforeEach((to, from, next) => { router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 next({ ...to }); // hack方法 确保addRoutes已完成 }) + }).catch(() => { + store.dispatch('FedLogOut').then(() => { + next({ path: '/login' }); + }) }) } else { // 没有动态改变权限的需求可直接next() 删除下方权限判断 ↓ From 3488930e4d97b8d6f89b6006c5721fb67201329b Mon Sep 17 00:00:00 2001 From: spiritree Date: Tue, 25 Jul 2017 16:51:43 +0800 Subject: [PATCH 078/277] add new export-excel function --- src/router/index.js | 7 +++- src/views/excel/excel2.vue | 81 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/views/excel/excel2.vue diff --git a/src/router/index.js b/src/router/index.js index 0d476f2f..83d23584 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -46,6 +46,7 @@ const ErrorLog = _import('errlog/index'); /* excel */ const ExcelDownload = _import('excel/index'); +const SelectExcelDownload = _import('excel/excel2'); /* theme */ const Theme = _import('theme/index'); @@ -174,8 +175,10 @@ export const asyncRouterMap = [ redirect: 'noredirect', name: 'excel', icon: 'EXCEL', - noDropdown: true, - children: [{ path: 'download', component: ExcelDownload, name: '导出excel' }] + children: [ + { path: 'download', component: ExcelDownload, name: '导出excel' }, + { path: 'download2', component: SelectExcelDownload, name: '选择导出excel' } + ] }, { path: '/theme', diff --git a/src/views/excel/excel2.vue b/src/views/excel/excel2.vue new file mode 100644 index 00000000..3ae51152 --- /dev/null +++ b/src/views/excel/excel2.vue @@ -0,0 +1,81 @@ + + + \ No newline at end of file From 7969b6d33ef89a42c91ccf6d0eb3d0c73c04e6c4 Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 25 Jul 2017 17:37:15 +0800 Subject: [PATCH 079/277] refine code --- src/router/index.js | 4 ++-- src/views/excel/{excel2.vue => selectExcel.vue} | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) rename src/views/excel/{excel2.vue => selectExcel.vue} (90%) diff --git a/src/router/index.js b/src/router/index.js index 83d23584..f7a483f6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -46,12 +46,12 @@ const ErrorLog = _import('errlog/index'); /* excel */ const ExcelDownload = _import('excel/index'); -const SelectExcelDownload = _import('excel/excel2'); +const SelectExcelDownload = _import('excel/selectExcel'); /* theme */ const Theme = _import('theme/index'); -/* example*/ +/* example */ const TableLayout = _import('example/table/index'); const DynamicTable = _import('example/table/dynamictable'); const Table = _import('example/table/table'); diff --git a/src/views/excel/excel2.vue b/src/views/excel/selectExcel.vue similarity index 90% rename from src/views/excel/excel2.vue rename to src/views/excel/selectExcel.vue index 3ae51152..b03a9931 100644 --- a/src/views/excel/excel2.vue +++ b/src/views/excel/selectExcel.vue @@ -1,14 +1,16 @@ From 83e8dfc49474f657718752e8684d61595205d1ab Mon Sep 17 00:00:00 2001 From: spiritree Date: Thu, 27 Jul 2017 12:00:20 +0800 Subject: [PATCH 082/277] fix selectExcel bug --- src/views/excel/selectExcel.vue | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/views/excel/selectExcel.vue b/src/views/excel/selectExcel.vue index b03a9931..08a49d44 100644 --- a/src/views/excel/selectExcel.vue +++ b/src/views/excel/selectExcel.vue @@ -66,15 +66,22 @@ this.multipleSelection = val; }, handleDownload() { - require.ensure([], () => { - const { export_json_to_excel } = require('vendor/Export2Excel'); - const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']; - const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']; - const list = this.multipleSelection; - const data = this.formatJson(filterVal, list); - export_json_to_excel(tHeader, data, '列表excel'); - this.$refs.multipleTable.clearSelection(); - }) + if (this.multipleSelection.length) { + require.ensure([], () => { + const { export_json_to_excel } = require('vendor/Export2Excel'); + const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']; + const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']; + const list = this.multipleSelection; + const data = this.formatJson(filterVal, list); + export_json_to_excel(tHeader, data, '列表excel'); + this.$refs.multipleTable.clearSelection(); + }) + } else { + this.$message({ + message: '请选择一条或多条记录导出', + type: 'warning' + }); + } }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => v[j])) From 535fe083e55351d0a67eeec85802e40188b66058 Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 27 Jul 2017 13:55:06 +0800 Subject: [PATCH 083/277] fix bug --- src/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index f1b1a592..83c6be1b 100644 --- a/src/main.js +++ b/src/main.js @@ -87,7 +87,7 @@ router.afterEach(() => { Vue.config.productionTip = false; // 生产环境错误日志 -if (process.env === 'production') { +if (process.env.NODE_ENV === 'production') { Vue.config.errorHandler = function(err, vm) { console.log(err, window.location.href); errLog.pushLog({ From 1083a173867d86555e65d83ce51da69ba678cc6b Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 27 Jul 2017 14:12:31 +0800 Subject: [PATCH 084/277] fix chart bug --- src/views/dashboard/editor/lineChart.vue | 4 +++- src/views/dashboard/editor/pieChart.vue | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/views/dashboard/editor/lineChart.vue b/src/views/dashboard/editor/lineChart.vue index 5e188e7d..156ea525 100644 --- a/src/views/dashboard/editor/lineChart.vue +++ b/src/views/dashboard/editor/lineChart.vue @@ -35,7 +35,9 @@ this.initChart(); if (this.autoResize) { this.__resizeHanlder = debounce(() => { - this.chart.resize() + if (this.chart) { + this.chart.resize() + } }, 100) window.addEventListener('resize', this.__resizeHanlder) } diff --git a/src/views/dashboard/editor/pieChart.vue b/src/views/dashboard/editor/pieChart.vue index e520f434..5879bce8 100644 --- a/src/views/dashboard/editor/pieChart.vue +++ b/src/views/dashboard/editor/pieChart.vue @@ -52,7 +52,7 @@ legend: { x: 'center', y: 'bottom', - data: ['industries', 'technology', 'gold', 'forex', 'forecasts', 'markets'] + data: ['industries', 'technology', 'forex', 'gold', 'forecasts', 'markets'] }, calculable: true, series: [ @@ -65,7 +65,7 @@ { value: 240, name: 'technology' }, { value: 149, name: 'forex' }, { value: 100, name: 'gold' }, - { value: 59, name: 'forecastsx' }, + { value: 59, name: 'forecasts' }, { value: 49, name: 'markets' } ], animationEasing: 'cubicInOut', From 553ef477ef58ba3f893e05b16ccf8457c6a99423 Mon Sep 17 00:00:00 2001 From: Pan Date: Fri, 28 Jul 2017 09:50:52 +0800 Subject: [PATCH 085/277] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c2adef0..5e37898b 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ - Sticky - CountTo - echarts图表 -- 401,401错误页面 +- 401,404错误页面 - 错误日志 - 导出excel - table example From 6ad03ac5f06a17a31d462b5022b843bf6be07973 Mon Sep 17 00:00:00 2001 From: Pan Date: Fri, 28 Jul 2017 16:10:00 +0800 Subject: [PATCH 086/277] rm documentImg --- documentImg/code1.png | Bin 22362 -> 0 bytes documentImg/iconfont.png | Bin 119915 -> 0 bytes src/views/errlog/index.vue | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 documentImg/code1.png delete mode 100644 documentImg/iconfont.png diff --git a/documentImg/code1.png b/documentImg/code1.png deleted file mode 100644 index e29c67b91547254c22f13dd6a6377c3dd00c71e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22362 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 bxE>{7fa(-||%VE%Ay2fJ< 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 diff --git a/src/views/errlog/index.vue b/src/views/errlog/index.vue index 9e49ef23..6c8ffba5 100644 --- a/src/views/errlog/index.vue +++ b/src/views/errlog/index.vue @@ -6,7 +6,7 @@ 现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会怎增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在Vue官网提供了一个方法来捕获处理异常 - + From ae44d0b8ca67edddd44ecddb36419d43fffcbb54 Mon Sep 17 00:00:00 2001 From: Pan Date: Fri, 21 Jul 2017 23:19:06 +0800 Subject: [PATCH 087/277] update element & vue --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 2242f7ca..07ff7ed8 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "codemirror": "5.26.0", "dropzone": "5.1.0", "echarts": "3.6.1", - "element-ui": "1.3.6", + "element-ui": "1.4.0", "file-saver": "1.3.3", "jquery": "3.1.1", "js-cookie": "2.1.4", @@ -29,7 +29,7 @@ "showdown": "1.7.1", "simplemde": "1.11.2", "sortablejs": "1.5.1", - "vue": "2.3.3", + "vue": "2.4.2", "vue-count-to": "1.0.5", "vue-multiselect": "2.0.0-beta.15", "vue-router": "2.5.3", @@ -78,7 +78,7 @@ "url-loader": "0.5.8", "vue-loader": "12.2.1", "vue-style-loader": "3.0.1", - "vue-template-compiler": "2.3.3", + "vue-template-compiler": "2.4.2", "webpack": "2.6.1", "webpack-bundle-analyzer": "2.8.2", "webpack-dev-middleware": "1.10.2", From dd9ef5145dad4a7ee44c5a5bf6d72bc474755c43 Mon Sep 17 00:00:00 2001 From: Pan Date: Mon, 24 Jul 2017 14:41:02 +0800 Subject: [PATCH 088/277] refine sidebar --- src/styles/element-ui.scss | 145 +++++++++++++++---------------- src/styles/index.scss | 4 +- src/styles/sidebar.scss | 72 +++++++++++++++ src/views/layout/Layout.vue | 48 +++++----- src/views/layout/Levelbar.vue | 2 +- src/views/layout/Sidebar.vue | 14 ++- src/views/layout/SidebarItem.vue | 28 +++--- 7 files changed, 193 insertions(+), 120 deletions(-) create mode 100644 src/styles/sidebar.scss diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 382aff13..3b005d07 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -1,83 +1,82 @@ //覆盖一些element-ui样式 -.block-checkbox { - display: block; -} + .block-checkbox { + display: block; + } -.operation-container { - .cell { - padding: 10px !important; - } - .el-button { - &:nth-child(3) { - margin-top: 10px; - margin-left: 0px; - } - &:nth-child(4) { - margin-top: 10px; - } - } -} + .operation-container { + .cell { + padding: 10px !important; + } + .el-button { + &:nth-child(3) { + margin-top: 10px; + margin-left: 0px; + } + &:nth-child(4) { + margin-top: 10px; + } + } + } -.el-upload { - input[type="file"] { - display: none !important; - } -} + .el-upload { + input[type="file"] { + display: none !important; + } + } -.el-upload__input { - display: none; -} + .el-upload__input { + display: none; + } -.cell { - .el-tag { - margin-right: 8px; - } -} + .cell { + .el-tag { + margin-right: 8px; + } + } -.small-padding { - .cell { - padding-left: 8px; - padding-right: 8px; - } -} + .small-padding { + .cell { + padding-left: 8px; + padding-right: 8px; + } + } -.status-col { - .cell { - padding: 0 10px; - text-align: center; - .el-tag { - margin-right: 0px; - } - } -} + .status-col { + .cell { + padding: 0 10px; + text-align: center; + .el-tag { + margin-right: 0px; + } + } + } -//暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 -.el-dialog { - transform: none; - left: 0; - position: relative; - margin: 0 auto; -} + //暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 + .el-dialog { + transform: none; + left: 0; + position: relative; + margin: 0 auto; + } + //文章页textarea修改样式 + .article-textarea { + textarea { + padding-right: 40px; + resize: none; + border: none; + border-radius: 0px; + border-bottom: 1px solid #bfcbd9; + } + } -//文章页textarea修改样式 -.article-textarea { - textarea { - padding-right: 40px; - resize: none; - border: none; - border-radius: 0px; - border-bottom: 1px solid #bfcbd9; - } -} - -//element ui upload -.upload-container { - .el-upload { - width: 100%; - .el-upload-dragger { - width: 100%; - height: 200px; - } - } -} + //element ui upload + .upload-container { + .el-upload { + width: 100%; + .el-upload-dragger { + width: 100%; + height: 200px; + } + } + } diff --git a/src/styles/index.scss b/src/styles/index.scss index 97b1a62b..6b846362 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,6 +1,8 @@ +@import './mixin.scss'; @import './btn.scss'; @import './element-ui.scss'; -@import './mixin.scss'; +@import './sidebar.scss'; + body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss new file mode 100644 index 00000000..c04166e7 --- /dev/null +++ b/src/styles/sidebar.scss @@ -0,0 +1,72 @@ +// 侧边栏 +.sidebar-container>.el-menu { + width: 100%!important; +} + +.sidebar-container .svg-icon { + margin-right: 16px; +} + +.hideSidebar .svg-icon { + margin-right: 0; +} + +.hideSidebar .submenu-title-noDropdown span, +.hideSidebar .el-submenu>.el-submenu__title span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; +} + +.hideSidebar .nest-menu .el-submenu__title { + text-align: initial!important; + span { + height: auto; + width: auto; + visibility: visible; + } + .el-submenu__icon-arrow { + display: block!important; + } +} + +.hideSidebar .menu-wrapper>.el-menu-item, +.hideSidebar .submenu-title-noDropdown, +.hideSidebar .menu-wrapper>.el-submenu .el-submenu__title { + text-align: center; +} + +.hideSidebar .el-menu-item .el-submenu__icon-arrow, +.hideSidebar .el-submenu .el-submenu__title .el-submenu__icon-arrow { + display: none; +} + +.hideSidebar .submenu-title-noDropdown { + position: relative; + span { + transition: opacity .3s cubic-bezier(.55, 0, .1, 1); + opacity: 0; + } + &:hover { + span { + display: block; + border-radius: 3px; + z-index: 1002; + width: 140px; + height: 56px; + visibility: visible; + position: absolute; + right: -145px; + top: 0px; + background-color: #1f2d3d; + opacity: 1; + } + } +} + +.el-submenu .el-menu-item { + min-width: 180px!important; +} + diff --git a/src/views/layout/Layout.vue b/src/views/layout/Layout.vue index fbe79fc8..32a8820a 100644 --- a/src/views/layout/Layout.vue +++ b/src/views/layout/Layout.vue @@ -1,8 +1,6 @@