commit
81c08aadac
20
README.md
20
README.md
|
@ -5,7 +5,9 @@
|
|||
|
||||
[更新日志](https://github.com/lin-xin/vue-manage-system/releases)
|
||||
|
||||
## 捐赠
|
||||
## 赞赏
|
||||
请作者喝杯咖啡吧!
|
||||
|
||||

|
||||
|
||||
## 前言 ##
|
||||
|
@ -28,6 +30,7 @@
|
|||
- [x] 列表拖拽排序
|
||||
- [x] 权限测试
|
||||
- [x] 404 / 403
|
||||
- [x] 三级菜单
|
||||
|
||||
|
||||
## 目录结构介绍 ##
|
||||
|
@ -87,13 +90,12 @@
|
|||
vue.js封装sChart.js的图表组件。访问地址:[vue-schart](https://github.com/linxin/vue-schart)
|
||||
<p><a href="https://www.npmjs.com/package/vue-schart"><img src="https://img.shields.io/npm/dm/vue-schart.svg" alt="Downloads"></a></p>
|
||||
|
||||
```JavaScript
|
||||
```html
|
||||
<template>
|
||||
<div>
|
||||
<schart :canvasId="canvasId"
|
||||
<schart class="wrapper"
|
||||
:canvasId="canvasId"
|
||||
:type="type"
|
||||
:width="width"
|
||||
:height="height"
|
||||
:data="data"
|
||||
:options="options"
|
||||
></schart>
|
||||
|
@ -107,8 +109,6 @@ vue.js封装sChart.js的图表组件。访问地址:[vue-schart](https://githu
|
|||
return {
|
||||
canvasId: 'myCanvas', // canvas的id
|
||||
type: 'bar', // 图表类型
|
||||
width: 500,
|
||||
height: 400,
|
||||
data: [
|
||||
{name: '2014', value: 1342},
|
||||
{name: '2015', value: 2123},
|
||||
|
@ -125,6 +125,12 @@ vue.js封装sChart.js的图表组件。访问地址:[vue-schart](https://githu
|
|||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.wrapper{
|
||||
width: 7rem;
|
||||
height: 5rem;
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
### element-ui ###
|
||||
|
|
|
@ -250,9 +250,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"async-validator": {
|
||||
"version": "1.8.4",
|
||||
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.4.tgz",
|
||||
"integrity": "sha512-9M6Q6Q3iqFKSdyhliLG8gUH9E73p/TQU1XNH/qiybX5eFIgwB++IIZ/wcPM1f+x9WeqemxGkm0CCx69Mkx3EEg==",
|
||||
"version": "1.8.5",
|
||||
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
|
||||
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
|
||||
"requires": {
|
||||
"babel-runtime": "6.26.0"
|
||||
}
|
||||
|
@ -2739,14 +2739,15 @@
|
|||
"dev": true
|
||||
},
|
||||
"element-ui": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.3.3.tgz",
|
||||
"integrity": "sha512-0Xa0GlwR57+6XBQlHkzutgIgiupAM2O9XNI7y6A1vdDhKmvZM8IBSqrqb9gQ5+onKuQ5afh69vkX2eeumFF5rA==",
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.4.5.tgz",
|
||||
"integrity": "sha512-gl1awKncY8HISSh9dmX+VR597T/JoLypanlnheiXPAMRlnBfuYncrrog5ep8qYmhAsss2tQ5KB3zNJV2wu3+XA==",
|
||||
"requires": {
|
||||
"async-validator": "1.8.4",
|
||||
"async-validator": "1.8.5",
|
||||
"babel-helper-vue-jsx-merge-props": "2.0.3",
|
||||
"deepmerge": "1.5.2",
|
||||
"normalize-wheel": "1.0.1",
|
||||
"resize-observer-polyfill": "1.5.0",
|
||||
"throttle-debounce": "1.1.0"
|
||||
}
|
||||
},
|
||||
|
@ -5540,11 +5541,6 @@
|
|||
"brorand": "1.1.0"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
|
||||
|
@ -8913,6 +8909,11 @@
|
|||
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
|
||||
"dev": true
|
||||
},
|
||||
"resize-observer-polyfill": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz",
|
||||
"integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg=="
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "vue-manage-system",
|
||||
"version": "3.1.0",
|
||||
"version": "3.1.1",
|
||||
"description": "基于Vue.js 2.x系列 + element-ui 内容管理系统解决方案",
|
||||
"author": "lin-xin <2981207131@qq.com>",
|
||||
"private": true,
|
||||
|
@ -12,7 +12,7 @@
|
|||
"dependencies": {
|
||||
"axios": "^0.15.3",
|
||||
"babel-polyfill": "^6.23.0",
|
||||
"element-ui": "2.3.3",
|
||||
"element-ui": "^2.4.5",
|
||||
"mavon-editor": "^2.5.4",
|
||||
"vue": "^2.5.16",
|
||||
"vue-cropperjs": "^2.2.0",
|
||||
|
|
|
@ -8,9 +8,17 @@
|
|||
<template slot="title">
|
||||
<i :class="item.icon"></i><span slot="title">{{ item.title }}</span>
|
||||
</template>
|
||||
<el-menu-item v-for="(subItem,i) in item.subs" :key="i" :index="subItem.index">
|
||||
{{ subItem.title }}
|
||||
</el-menu-item>
|
||||
<template v-for="subItem in item.subs">
|
||||
<el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
|
||||
<template slot="title">{{ subItem.title }}</template>
|
||||
<el-menu-item v-for="(threeItem,i) in subItem.subs" :key="i" :index="threeItem.index">
|
||||
{{ threeItem.title }}
|
||||
</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-menu-item v-else :index="subItem.index" :key="subItem.index">
|
||||
{{ subItem.title }}
|
||||
</el-menu-item>
|
||||
</template>
|
||||
</el-submenu>
|
||||
</template>
|
||||
<template v-else>
|
||||
|
@ -55,12 +63,18 @@
|
|||
title: '基本表单'
|
||||
},
|
||||
{
|
||||
index: 'editor',
|
||||
title: '富文本编辑器'
|
||||
},
|
||||
{
|
||||
index: 'markdown',
|
||||
title: 'markdown编辑器'
|
||||
index: '3-2',
|
||||
title: '编辑器',
|
||||
subs: [
|
||||
{
|
||||
index: 'editor',
|
||||
title: '富文本编辑器'
|
||||
},
|
||||
{
|
||||
index: 'markdown',
|
||||
title: 'markdown编辑器'
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
index: 'upload',
|
||||
|
|
|
@ -61,11 +61,16 @@
|
|||
const isExist = this.tagsList.some(item => {
|
||||
return item.path === route.fullPath;
|
||||
})
|
||||
!isExist && this.tagsList.push({
|
||||
title: route.meta.title,
|
||||
path: route.fullPath,
|
||||
name: route.matched[1].components.default.name
|
||||
})
|
||||
if(!isExist){
|
||||
if(this.tagsList.length >= 8){
|
||||
this.tagsList.shift();
|
||||
}
|
||||
this.tagsList.push({
|
||||
title: route.meta.title,
|
||||
path: route.fullPath,
|
||||
name: route.matched[1].components.default.name
|
||||
})
|
||||
}
|
||||
bus.$emit('tags', this.tagsList);
|
||||
},
|
||||
handleTags(command){
|
||||
|
@ -97,6 +102,7 @@
|
|||
overflow: hidden;
|
||||
background: #fff;
|
||||
padding-right: 120px;
|
||||
box-shadow: 0 5px 10px #ddd;
|
||||
}
|
||||
|
||||
.tags ul {
|
||||
|
|
|
@ -26,7 +26,6 @@ a {
|
|||
right: 0;
|
||||
top: 70px;
|
||||
bottom: 0;
|
||||
overflow-y: scroll;
|
||||
-webkit-transition: left .3s ease-in-out;
|
||||
transition: left .3s ease-in-out;
|
||||
background: #f0f0f0;
|
||||
|
@ -34,7 +33,10 @@ a {
|
|||
|
||||
.content {
|
||||
width: auto;
|
||||
height: 100%;
|
||||
padding: 40px;
|
||||
overflow-y: scroll;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.content-collapse {
|
||||
|
|
Loading…
Reference in New Issue