React+AntD 后台管理系统解决方案 -- 终极版

134

文档地址:wiki

问题和方案汇总:issue

最下方增加版本更新日志

前言

网上react后台管理开源免费的完整版项目比较少,所以利用空余时间集成了一个版本出来,已放到GitHub
启动和打包的时间都稍长,请耐心等待两分钟

依赖模块

项目是用create-react-app创建的,主要还是列出新加的功能依赖包

点击名称可跳转相关网站??

功能模块

备注:项目只引入了ant-design的部分组件,其他的组件antd官网有源码,可以直接复制到项目中使用,后续有时间补上全部组件。

项目使用了antd的自定义主题功能-->黑色,若想替换其他颜色,具体操作请查看antd官网

  • 首页

    • 完整布局
    • 换肤(全局功能,暂时只实现了顶部导航的换肤,后续加上其他模块)
  • 导航菜单

    • 顶部导航(菜单伸缩,全屏功能)
    • 左边菜单(增加滚动条以及适配路由的active操作)
  • UI模块

    • 按钮(antd组件)
    • 图标(antd组件并增加彩色表情符)
    • 加载中(antd组件并增加顶部加载条)
    • 通知提醒框(antd组件)
    • 标签页(antd组件)
    • 轮播图(ant动效组件)
    • 富文本
    • 拖拽
    • 画廊
  • 动画

    • 基础动画(animate.css所有动画)
    • 动画案例
  • 表格

    • 基础表格(antd组件)
    • 高级表格(antd组件)
    • 异步表格(数据来自掘金酱的接口)
  • 表单

    • 基础表单(antd组件)
  • 图表

    • echarts图表
    • recharts图表
  • 页面

    • 登录页面(包括GitHub第三方登录)
    • 404页面

功能截图

首页

截图

按钮图标等

截图

轮播图

截图

富文本

截图

拖拽

截图

画廊

截图

动画

截图

表格

截图

表单

截图

图表

截图

页面

截图

代码目录

+-- build/                                  ---打包的文件目录
+-- config/                                 ---npm run eject 后的配置文件目录
+-- node_modules/                           ---npm下载文件目录
+-- public/                                 
|   --- index.html                            ---首页入口html文件
|   --- npm.json                            ---echarts测试数据
|   --- weibo.json                            ---echarts测试数据
+-- src/                                    ---核心代码目录
|   +-- axios                               ---http请求存放目录
|   |    --- index.js
|   +-- components                          ---各式各样的组件存放目录
|   |    +-- animation                      ---动画组件
|   |    |    --- ...   
|   |    +-- charts                         ---图表组件
|   |    |    --- ...   
|   |    +-- dashboard                      ---首页组件
|   |    |    --- ...   
|   |    +-- forms                          ---表单组件
|   |    |    --- ...   
|   |    +-- pages                          ---页面组件
|   |    |    --- ...   
|   |    +-- tables                         ---表格组件
|   |    |    --- ...   
|   |    +-- ui                             ---ui组件
|   |    |    --- ...   
|   |    --- BreadcrumbCustom.jsx           ---面包屑组件
|   |    --- HeaderCustom.jsx               ---顶部导航组件
|   |    --- Page.jsx                       ---页面容器
|   |    --- SiderCustom.jsx                ---左边菜单组件
|   +-- style                               ---项目的样式存放目录,主要采用less编写
|   +-- utils                               ---工具文件存放目录
|   --- App.js                              ---组件入口文件
|   --- index.js                            ---项目的整体js入口文件,包括路由配置等
--- .env                                    ---启动项目自定义端口配置文件
--- .eslintrc                               ---自定义eslint配置文件,包括增加的react jsx语法限制
--- package.json                                    

安装运行

1.下载或克隆项目源码
2.npm安装相关包文件(国内建议增加淘宝镜像源,不然很慢,你懂的?)
npm i
3.启动项目
npm start
4.打包项目
npm run build

更新日志

2017-07-08

  • 依赖包版本升级

    • react@15.6.1
    • antd@2.11.2
    • webpack@2.6.1
    • 等等

2017-08-01

  • 引入redux系列

    • redux@3.7.2
    • redux-thunk@2.2.0
    • react-redux@5.0.5
  • 增加权限管理模块

    • 使用easy-mock模拟数据模拟登录接口
    • 使用redux系列将登录用户数据传递给权限组件
    • 权限组件采用Render Callback的方式传递权限给需要受控制的组件(具体做法请查看源代码。)
    • 用户状态保存在localStorage中
    • 具体做法请运行项目查看
    • PS:以上管理权限只是一种方式,但这绝对不是唯一的方式,也不是最好的方式。如果你有更好的方式,不妨加上面的群和大家一起分享下。??
  • 增加路径别名

    • 使用@别名处理引入组件相对路径过长问题。
    • 缺点:编辑器不能使用快捷提示和快捷跳转到相应的文件

2017-08-13

  • 权限管理模块增加页面跳转权限验证

    • 点击权限管理的路由拦截,若没有访问权限则会跳转到404页面。
    • 大致实现方式(非常简单):通过向自定义router组件传入store,登录之后可获取到redux中的权限state数据,并通过判断是否包含权限进行跳转。ps: 该demo的效果是管理员登录之后才能跳转到路由拦截页面。具体操作请拉取代码尝试。

2017-08-26

  • 增加响应式布局

    • 替换antd Col 组件的响应式栅格为md(具体参数用法请查看antd官方文档)
    • 初始化页面是获取当前浏览器宽度设置菜单显示类型
    • 监听window的onresize函数,设置菜单显示类型。PS:浏览器宽度存入redux中,方便组件之间传递。

截图

2017-09-13

  • 依赖包版本升级

    • antd@2.13.1(目前最新版)

2017-10-21

  • 开发环境增加react-hot-loader-保持状态刷新组件(译:实时调整组件),可参考以下相关项目

2017-12-12

  • 依赖包版本升级

    • antd@3.0.1(目前最新版)
    • react-router-dom@4.2.2
  • 大改动

    • react-router切换4.x版本,切换响应的版本路由写法(具体见代码更新日志)
    • ps: react-router 3.x的版本请查看代码分支router3.x

2018-01-12

  • 增加cssmodule的支持(css, less)

    • 建议用css预处理器,文件名为xxx.module.less,引入相应组件即可使用。

  - 具体做法参见新增模块,路由后缀:/app/cssModule。点击访问

结尾

该项目会不定时更新,后续时间会添加更多的模块

欢迎和感谢大家PR~~??

若有问题,可加QQ群264591039与我交流

ps:以上群满的时候请加群:592688854

如果对你有帮助,给个star哟~~❤️❤️❤️❤️

你可能感兴趣的

19 条评论
前端中代码最骚的 · 2017年05月31日

这个,挺好看的。不错!

回复

donkey · 2017年08月01日

请问这个怎么和KOA相连

回复

秋天不回来了 · 2017年08月25日

我想问一下,我在一个表单里面同事设置编辑和删除功能,怎么修改代码啊?我自己没有尝试出来

回复

0

可以去查阅下 antd的表单组件,再结合一些逻辑代码,应该比较简单的

kira 作者 · 2017年10月17日
369280 · 2017年10月09日

赞一个,不过NProgress是没有用吗?

回复

0

恩,没有用,只做了一个demo。

kira 作者 · 2017年10月17日
王振宁 · 2017年10月11日

您好 不知道您有没有录制视频,想学习学习,非常感谢!

回复

0

没有视频哦,如果有不懂的可以加群问我

kira 作者 · 2017年10月17日
大兵 · 2017年10月15日

厉害

回复

Denton · 2017年11月14日

大神,你的群满员了,加不了

回复

feifei · 2018年01月12日

厉害了大神

回复

捡男孩的贝壳 · 2018年01月30日

厉害,膜拜大神

回复

夜猫子 · 2018年03月12日

我把项目拉取下来报错了! 运行不起最新版。。。。
G:githubreactreact-antdreact-admin>npm run build

demo@0.1.0 build G:githubreactreact-antdreact-admin
node scripts/build.js

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'echarts' in 'G:githubreactreact-antdreact-adminsrccomponentscharts'

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! demo@0.1.0 build: node scripts/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the demo@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:UsersAdministratorAppDataRoamingnpm-cache_logs2018-03-12T08_02_48_160Z-debug.log

回复

codeleey · 2018年04月11日

彩色图标怎么加上的, 为啥我的都是黑白的

回复

馍馍 · 2018年06月07日

有没有菜单是动态加载出来的喃?根据权限

回复

往日随风 · 2018年11月13日

楼主有没有与后台代码结合的案例啊 例如:c# + react + antd,java+vue之类的结构的项目

回复

boyka · 2018年11月15日

大佬,大佬,为什么项目本地跑的时候,chrome、firefox正常、qq等浏览器看正常,用IE和2345浏览器看不了,再你的那个演示环境这几个浏览器都可以了呢,

回复

0

antd 只支持ie9 以上的版本

小胡同 · 2月18日
心跳 · 3月14日

楼主,能不能写一些关于登陆功能的博客?

回复

载入中...