基于Vue.js 2.x系列 + Element UI 的后台管理系统解决方案。

github地址:https://github.com/lin-xin/manage-system

demo地址:http://blog.gdfengshuo.com/example/work/

前言

之前在公司用了Vue + Element组件库做了个后台管理系统,基本很多组件可以直接引用组件库的,但是也有一些需求无法满足。像图片裁剪上传、富文本编辑器、图表等这些在后台管理系统中很常见的功能,就需要引用其他的组件才能完成。从寻找组件,到使用组件的过程中,遇到了很多问题,也积累了宝贵的经验。所以我就把开发这个后台管理系统的经验,总结成这个后台管理系统解决方案。

原文作者:林鑫,作者博客:https://github.com/lin-xin/blog

该方案作为一套多功能的后台框架模板,适用于绝大部分的后台管理系统(Web Management System)开发。基于vue.js,使用vue-cli脚手架快速生成项目目录,引用Element UI组件库,方便开发快速简洁好看的组件。分离颜色样式,支持手动切换主题色,而且很方便使用自定义主题色。

功能

  • [x] Element UI
  • [x] 登录/注销
  • [x] 表格
  • [x] 表单
  • [x] 图表
  • [x] 富文本编辑器
  • [x] markdown编辑器
  • [x] 图片拖拽/裁剪上传
  • [x] 支持切换主题色
  • [x] 列表拖拽排序

模板安装步骤

git clone https://github.com/lin-xin/manage-system.git      // 把模板下载到本地
cd manage-system                        // 进入模板目录
npm install                         // 安装项目依赖,等待安装完成之后

本地开发

// 开启服务器,浏览器访问 http://localhost:8080
npm run dev

构建生产

// 执行构建命令,生成的dist文件夹放在服务器下即可访问
npm run build

组件使用说明与演示

element-ui

一套基于vue.js2.0的桌面组件库。访问地址:element

vue-datasource

一个用于动态创建表格的vue.js服务端组件。访问地址:vue-datasource

<template><div><datasource language="en" :table-data="information.data":columns="columns":pagination="information.pagination":actions="actions"v-on:change="changePage"v-on:searching="onSearch"></datasource></div>
</template><script>import Datasource from 'vue-datasource';    // 导入quillEditor组件export default {data: function(){return {information: {pagination: {...},      // 页码配置data: [...]},columns: [...],         // 列名配置actions: [...]          // 功能配置}},components: {Datasource                  // 声明组件Datasource},methods: {changePage(values) {...},onSearch(searchQuery) {...}}}
</script>

Vue-Quill-Editor

基于Quill、适用于Vue2的富文本编辑器。访问地址:vue-quill-editor

<template><div><quill-editor ref="myTextEditor" v-model="content" :config="editorOption"></quill-editor></div>
</template><script>import { quillEditor } from 'vue-quill-editor'; // 导入quillEditor组件export default {data: function(){return {content: '',                // 编辑器的内容editorOption: {             // 编辑器的配置// something config}}},components: {quillEditor                 // 声明组件quillEditor}}
</script>

Vue-SimpleMDE

Vue.js的Markdown Editor组件。访问地址:Vue-SimpleMDE

<template><div><markdown-editor v-model="content" :configs="configs" ref="markdownEditor"></markdown-editor></div>
</template><script>import { markdownEditor } from 'vue-simplemde'; // 导入markdownEditor组件export default {data: function(){return {content:'',             // markdown编辑器内容configs: {              // markdown编辑器配置参数status: false,          // 禁用底部状态栏initialValue: 'Hello BBK',      // 设置初始值renderingConfig: {codeSyntaxHighlighting: true,   // 开启代码高亮highlightingTheme: 'atom-one-light' // 自定义代码高亮主题}}}},components: {markdownEditor              // 声明组件markdownEditor}}
</script>

Vue-Core-Image-Upload

一款轻量级的vue上传插件,支持裁剪。访问地址:Vue-Core-Image-Upload


<template><div><img :src="src">            // 用于显示上传的图片<vue-core-image-upload :class="['pure-button','pure-button-primary','js-btn-crop']":crop="true"                 // 是否裁剪text="上传图片"url=""                   // 上传路径extensions="png,gif,jpeg,jpg"        // 限制文件类型@:imageuploaded="imageuploaded">     // 监听图片上传完成事件</vue-core-image-upload></div>
</template><script>import VueCoreImageUpload  from 'vue-core-image-upload';    // 导入VueCoreImageUpload组件export default {data: function(){return {src:'../img/1.jpg'          // 默认显示图片地址}},components: {VueCoreImageUpload              // 声明组件VueCoreImageUpload},methods:{imageuploaded(res) {            // 定义上传完成执行的方法console.log(res)}}}
</script>

vue-schart

vue.js封装sChart.js的图表组件。访问地址:vue-schart

<template><div><schart :canvasId="canvasId":type="type":width="width":height="height":data="data":options="options"></schart></div>
</template><script>import Schart from 'vue-schart';        // 导入Schart组件export default {data: function(){return {canvasId: 'myCanvas',       // canvas的idtype: 'bar',                // 图表类型width: 500,height: 400,data: [{name: '2014', value: 1342},{name: '2015', value: 2123},{name: '2016', value: 1654},{name: '2017', value: 1795},],options: {                  // 图表可选参数title: 'Total sales of stores in recent years'}}},components: {Schart}}
</script>

其他注意事项

一、如果我不想用到上面的某些组件呢,那我怎么在模板中删除掉不影响到其他功能呢?

举个栗子,我不想用 vue-datasource 这个组件,那我需要分四步走。

第一步:删除该组件的路由,在目录 src/router/index.js 中,找到引入改组件的路由,删除下面这段代码。

{path: '/vuetable',component: resolve => require(['../components/page/VueTable.vue'], resolve)     // vue-datasource组件
},

第二步:删除引入该组件的文件。在目录 src/components/page/ 删除 VueTable.vue 文件。

第三步:删除该页面的入口。在目录 src/components/common/Sidebar.vue 中,找到该入口,删除下面这段代码。

<el-menu-item index="vuetable">Vue表格组件</el-menu-item>

第四步:卸载该组件。执行以下命令:

npm un vue-datasource -S

完成。

二、如何切换主题色呢?

第一步:打开 src/main.js 文件,找到引入 element 样式的地方,换成浅绿色主题。

import 'element-ui/lib/theme-default/index.css';    // 默认主题
// import '../static/css/theme-green/index.css';       // 浅绿色主题

第二步:打开 src/App.vue 文件,找到 style 标签引入样式的地方,切换成浅绿色主题。

@import "../static/css/main.css";
@import "../static/css/color-dark.css";     /*深色主题*/
/*@import "../static/css/theme-green/color-green.css";   !*浅绿色主题*!*/

第三步:打开 src/components/common/Sidebar.vue 文件,找到 el-menu 标签,把 theme="dark" 去掉即可。

项目截图

默认皮肤

浅绿色皮肤

更多文章:lin-xin/blog

转载于:https://www.cnblogs.com/linxin/p/6509897.html

Vue2 后台管理系统解决方案相关推荐

  1. 10款精选的后台管理系统,快来一起颤抖吧!

    文章目录 1.vue2-manage 2.Cloud-Admin 3.Guns 4.Cloud-Platform 5.react-admin 6.hsweb 7.hxyFrame 8.XMall 9. ...

  2. 10款精选的后台管理系统

    1.vue2-manage 此项目是 vue + element-ui 构建的后台管理系统,是后台项目node-elm 的管理系统,所有的数据都是从服务器实时获取的真实数据,具有真实的注册.登陆.管理 ...

  3. Vue3后台管理系统模板推荐

    文章目录 @[TOC](文章目录) 1.Vue-Vben-Admin 2.vue-manage-system 1.Vue-Vben-Admin Vue-Vben-Admin(github上的标星数为1 ...

  4. 开源项目:时光后台管理系统 前后端分离项目,后台系统模板 时光大魔王

    最近对自己的之前开源项目进行优化,发现每个项目的后台管理系统都有大大小小的Bug和之前没考虑到的优化,于是这段时间重新从零构建了Vue2后台管理系统模板. 作者:时光 | 当前版本:v1.0.6 前端 ...

  5. vue尚品汇商城项目-day00【项目介绍:此项目是基于vue2的前台电商项目和后台管理系统】

    文章目录 本人其他相关文章链接 项目介绍:此项目是基于vue2的前台电商项目和后台管理系统 此项目为在线电商Web App (SPA) 包括首页, 搜索列表, 商品详情, 购物车, 订单, 支付, 用 ...

  6. 前后端分离vue2+node易购商城后台管理系统

    继续学习vue 之前写了个全栈后台管理系统,功能上大体已经满足了后台管理的全部内容.利用空余时间又重新写了一个,虽然页面上精简了很多,但是基本上都是自己写的,而且加入了自己的理解,尤其是vuex那一块 ...

  7. Vue2项目总结-电商后台管理系统

    Vue2项目总结-电商后台管理系统 去年做的项目,拖了很久,总算是打起精力去做这个项目的总结,并对Vue2的相关知识进行回顾与复习 各个功能模块如果有过多重复冗杂的部分,将会抽取部分值得记录复习的地方 ...

  8. 基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台、多租户

    基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台.多租户.支持MySQL/SQLServer/ ...

  9. Serverless 实战 —— Serverless + Egg.js 后台管理系统实战

    Serverless + Egg.js 后台管理系统实战 作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个非常优秀的企业级框架,它 ...

  10. 10个开源且优秀的后台管理系统UI面板

    作者:SevDot www.jianshu.com/p/3bc7404af887 昨天发了开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?,大家不同意见挺多,但是正如文末说的:结合自己公司 ...

最新文章

  1. uva11584 Partitioning by Palindromes
  2. 【152】C# 操作 Excel 杂记
  3. oracle io lost,磁盘IO故障
  4. java对象的序列化和反序列化详细解释
  5. 2016年10月30日表单标签与样式表分类和选择器
  6. mysql中设置字符,MySQL 修改默认字符集
  7. Java 集合系列4、家喻户晓之HashMap(上)
  8. python可以自动拆分表格吗_Python 拆分表格并发送邮件
  9. mysql数据库中吧时分秒换算成秒的函数TIME_TO_SEC()
  10. 对标金九银十:各大厂最新Java面试真题整理+简历模板
  11. 论文《Dialogue State Tracking with a Language Model using Schema-Driven Prompting》学习笔记
  12. 了解品牌名称 TM (™) 和 R(®) 符号之间的区别至关重要
  13. 大数运算(4)——大数乘法
  14. java escpos_java – 设置字符代码表以在ESC / POS打印机中打印非拉丁字符
  15. 新版Edge浏览器怎么长截图?
  16. 服务器硬盘掉线解决过程分析
  17. 游戏抽奖界面html,基于JavaScript实现幸运抽奖页面
  18. 太阳神电商业务辅助工具1.5
  19. 读《与赛博空间共存》
  20. 北理乐学回文数的思考(附代码)

热门文章

  1. 23种设计模式(八)对象创建之抽象工厂
  2. ubuntu16.04下ROS操作系统学习笔记(三 / 一)ROS基础-工作空间
  3. redis命令_INCR
  4. 修改CentOS 7默认语言为中文
  5. Xcode使用小技巧-filter查找功能和查看最近修改的文件
  6. [转]训练集和测试集的含义和区别?
  7. flex弹性盒子的兼容性写法
  8. zstuoj 4245 KI的斐波那契
  9. salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
  10. Sass 基本特性-基础 笔记