演示地址 http://zuiidea.github.io/antd-admin/
- 基于react,ant-design,dva,Mock 企业级后台管理系统最佳实践
- 基于Mock实现脱离后端独立开发
- 基于Antd UI 设计语言,提供后台管理系统常见使用场景
- 基于dva动态加载 Model 和路由,按需加载
- 浅度响应式设计
- 登录页面
- dashbord页面
- 数字卡片
- 实时天气卡片
- 图表
- 用户列表页面
- 增删改查
- 交互动效
- 扩展UI组件
- IconFont
- DataTable
- Search
- DropOption
- 基于Modal封装的layer方法
- 加入dva-loading
- 规范代码: EsLint; 自用开发配置
- 数据可视化页面
- 模拟消息收发
- 升级dva-cli
├── /mock/ # 数据mock的接口文件
├── /dist/ # 项目输出目录
├── /src/ # 项目源码目录
│ ├── /components/ # UI组件及UI相关方法
│ │ ├── skin.less # 全局样式
│ │ └── vars.less # 全局样式变量
│ ├── /routes/ # 路由组件
│ │ └── app.js # 路由入口
│ ├── /models/ # 数据模型
│ ├── /services/ # 数据接口
│ ├── /utils/ # 工具函数
│ │ ├── config.js # 项目常规配置
│ │ ├── menu.js # 侧边菜单配置
│ │ ├── mock.js # 数据拦截配置
│ │ ├── config.js # 项目常规配置
│ │ ├── request.js # 异步请求函数
│ │ └── theme.js # 项目需要在js中使用到样式变量
│ ├── route.js # 路由配置
│ ├── index.js # 入口文件
│ └── index.html
├── package.json # 项目信息
└── proxy.config.js # 数据mock配置
文件夹命名说明:
- components:组件(方法)为单位以文件夹保存,文件夹名组件首字母大写(如
DataTable
),方法首字母小写(如layer
),文件夹内主文件与文件夹同名,多文件以index.js
导出对象(如./src/components/Layout
) - routes:页面为单位以文件夹保存,文件夹名首字母小写(特殊除外,如
UIElement
),文件夹内主文件以index.js
导出,多文件时可建立components
文件夹(如./src/routes/dashboard
),如果有子路由,依次按照路由层次建立文件夹(如./src/routes/UIElement
)
克隆项目文件:
git clone https://github.com/zuiidea/antd-admin.git
进入目录安装依赖:
npm i 或者 yarn install
开发:
npm run dev # 使用mock拦截请求,数据存储在localStroge里
打开 http://localhost:8000
构建:
npm run build
将会生成dist目录
代码检测:
npm run lint
- 生产环境中,已有数据接口,请将
src/utils/index.js
第四行require('./mock.js')
注释 - 开发环境中,如再mock目录新增文件,请在
src/utils/mock.js
第二行的mockData
数组中添加 - 如需重写antd样式配置,请修改
src/theme.js
- 项目配置文件在
src/utils/config.js
- 如需重写异步请求函数,请修改
src/utils/request.js
(关于为什么使用robe-ajax而不是fetch:在一个无服务器的环境中模拟数据请求,Mock不能拦截Fetch,只能拦截XHR,所以我选了一个类似jquery Ajax的库robe-ajax)
用户列表:https://github.com/dvajs/dva/tree/master/examples/user-dashboard
dashboard设计稿:https://dribbble.com/shots/3108122-Dashboard-Admin (已征得作者同意)
web
移动