You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

486 lines
22 KiB

9 months ago
9 months ago
  1. ![JEECG](https://jeecgos.oss-cn-beijing.aliyuncs.com/files/logov3.png "JeecgBoot低代码开发平台")
  2. JEECG BOOT 低代码开发平台
  3. ===============
  4. 当前最新版本: 3.4.3-GA(发布日期:2022-10-31)
  5. [![AUR](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE)
  6. [![](https://img.shields.io/badge/Author-北京国炬软件-orange.svg)](http://www.jeecg.com)
  7. [![](https://img.shields.io/badge/Blog-官方博客-blue.svg)](https://jeecg.blog.csdn.net)
  8. [![](https://img.shields.io/badge/version-3.4.3-brightgreen.svg)](https://github.com/zhangdaiscott/jeecg-boot)
  9. [![GitHub stars](https://img.shields.io/github/stars/zhangdaiscott/jeecg-boot.svg?style=social&label=Stars)](https://github.com/zhangdaiscott/jeecg-boot)
  10. [![GitHub forks](https://img.shields.io/github/forks/zhangdaiscott/jeecg-boot.svg?style=social&label=Fork)](https://github.com/zhangdaiscott/jeecg-boot)
  11. 项目介绍
  12. -----------------------------------
  13. <h3 align="center">Java Low Code Platform for Enterprise web applications</h3>
  14. JeecgBoot 是一款基于代码生成器的`低代码开发平台`!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot 引领新的低代码开发模式(OnlineCoding-> 代码生成器-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省研发成本,同时又不失灵活性!
  15. JeecgBoot 提供了一系列`低代码模块`,实现在线开发`真正的零代码`:Online表单开发、Online报表、报表配置能力、在线图表设计、大屏设计、移动配置能力、表单设计器、在线设计流程、流程自动化配置、插件能力(可插拔)等等!
  16. `JEECG宗旨是:` 简单功能由OnlineCoding配置实现,做到`零代码开发`;复杂功能由代码生成器生成进行手工Merge 实现`低代码开发`,既保证了`智能`又兼顾`灵活`;实现了低代码开发的同时又支持灵活编码,解决了当前低代码产品普遍不灵活的弊端!
  17. `JEECG业务流程:` 采用工作流来实现、扩展出任务接口,供开发编写业务逻辑,表单提供多种解决方案: 表单设计器、online配置表单、编码表单。同时实现了流程与表单的分离设计(松耦合)、并支持任务节点灵活配置,既保证了公司流程的保密性,又减少了开发人员的工作量。
  18. 技术支持
  19. -----------------------------------
  20. 关闭gitee的issue通道,使用中遇到问题或者BUG可以在 [Github上提Issues](https://github.com/jeecgboot/jeecg-boot/issues/new)
  21. 官方支持: http://jeecg.com/doc/help
  22. 源码下载
  23. -----------------------------------
  24. - 后台源码 :https://github.com/jeecgboot/jeecg-boot
  25. - 前端源码(Vue3版):https://github.com/jeecgboot/jeecgboot-vue3
  26. - 前端源码(Vue2版):https://github.com/jeecgboot/ant-design-vue-jeecg
  27. - APP配套框架:https://github.com/jeecgboot/jeecg-uniapp
  28. ##### 项目说明
  29. | 项目名 | 说明 |
  30. |--------------------|------------------------|
  31. | `jeecg-boot` | SpringBoot后台源码(支持微服务) |
  32. | `jeecgboot-vue3` | Vue3+TS 新版前端源码 |
  33. | `ant-design-vue-jeecg` |Vue2版 前端源码 |
  34. | `jeecg-uniapp` | APP开发框架,一份代码多终端适配,同时支持APP、小程序、H5 |
  35. | `jeecg-boot-starter` | [Stater依赖项目单独维护,点击下载](https://gitee.com/jeecg/jeecg-boot-starter) |
  36. | `更多开源插件` | [更多源码下载](https://github.com/jeecgboot) |
  37. 适用项目
  38. -----------------------------------
  39. Jeecg-Boot低代码开发平台,可以应用在任何J2EE项目的开发中,尤其适合SAAS项目、企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工Merge的开发方式,可以显著提高开发效率70%以上,极大降低开发成本。
  40. Docker启动项目
  41. -----------------------------------
  42. - [Docker启动单体后台](http://doc.jeecg.com/2043889)
  43. - [Docker启动Vue3前端](http://vue3.jeecg.com/3028878)
  44. - [Docker启动微服务后台](http://doc.jeecg.com/3043472)
  45. - [Docker启动Vue2前端](http://doc.jeecg.com/3043612)
  46. 技术文档
  47. -----------------------------------
  48. - 技术官网: [http://www.jeecg.com](http://www.jeecg.com)
  49. - 在线演示 : [Vue3版本](http://boot3.jeecg.com) | [Vue2版本](http://boot.jeecg.com)
  50. - 开发文档: [Vue3文档](http://vue3.jeecg.com) | [主项目文档](http://doc.jeecg.com)
  51. - 新手指南: [快速入门](http://www.jeecg.com/doc/quickstart) | [视频教程](https://space.bilibili.com/454617261/channel/series) | [常见问题 ](http://www.jeecg.com/doc/qa) | [技术支持](http://jeecg.com/doc/help) | [1分钟体验低代码](https://my.oschina.net/jeecg/blog/3083313)
  52. - 微服务开发: [单体升级为微服务](http://doc.jeecg.com/3043471)
  53. - QQ交流群 : ⑥730954414、VUE3群683903138、⑤860162132(满)、④774126647(满)、③816531124(满)、②769925425(满)、①284271917(满)
  54. > ` 提醒:【QQ群是自助服务群,建议给帮助您解决问题的同学发送指定红包,表示感谢!】 `
  55. ##### Star走势图
  56. [![Star History Chart](https://api.star-history.com/svg?repos=jeecgboot/jeecg-boot&type=Date)](https://star-history.com/#jeecgboot/jeecg-boot)
  57. 后台目录结构
  58. -----------------------------------
  59. ```
  60. 项目结构
  61. ├─jeecg-boot-parent(父POM: 项目依赖、modules组织)
  62. │ ├─jeecg-boot-base-core(共通模块: 工具类、config、权限、查询过滤器、注解等)
  63. │ ├─jeecg-module-demo 示例代码
  64. │ ├─jeecg-module-system System系统管理目录
  65. │ │ ├─jeecg-system-biz System系统管理权限等功能
  66. │ │ ├─jeecg-system-start System单体启动项目(8080)
  67. │ │ ├─jeecg-system-api System系统管理模块对外api
  68. │ │ │ ├─jeecg-system-cloud-api System模块对外提供的微服务接口
  69. │ │ │ ├─jeecg-system-local-api System模块对外提供的单体接口
  70. │ ├─jeecg-server-cloud --微服务模块
  71. ├─jeecg-cloud-gateway --微服务网关模块(9999)
  72. ├─jeecg-cloud-nacos --Nacos服务模块(8848)
  73. ├─jeecg-system-cloud-start --System微服务启动项目(7001)
  74. ├─jeecg-demo-cloud-start --Demo微服务启动项目(7002)
  75. ├─jeecg-visual
  76. ├─jeecg-cloud-monitor --微服务监控模块 (9111)
  77. ├─jeecg-cloud-xxljob --微服务xxljob定时任务服务端 (9080)
  78. ├─jeecg-cloud-sentinel --sentinel服务端 (9000)
  79. ├─jeecg-cloud-test -- 微服务测试示例(各种例子)
  80. ├─jeecg-cloud-test-more -- 微服务测试示例(feign、熔断降级、xxljob、分布式锁)
  81. ├─jeecg-cloud-test-rabbitmq -- 微服务测试示例(rabbitmq)
  82. ├─jeecg-cloud-test-seata -- 微服务测试示例(seata分布式事务)
  83. ├─jeecg-cloud-test-shardingsphere -- 微服务测试示例(分库分表)
  84. ```
  85. 为什么选择JeecgBoot?
  86. -----------------------------------
  87. * 1.采用最新主流前后分离框架(Springboot+Mybatis+antd),容易上手; 代码生成器依赖性低,灵活的扩展能力,可快速实现二次开发;
  88. * 2.支持微服务SpringCloud Alibaba(Nacos、Gateway、Sentinel、Skywalking),提供切换机制支持单体和微服务自由切换
  89. * 3.开发效率高,采用代码生成器,单表、树列表、一对多、一对一等数据模型,增删改查功能一键生成,菜单配置直接使用;
  90. * 4.代码生成器提供强大模板机制,支持自定义模板,目前提供四套风格模板(单表两套、树模型一套、一对多三套)
  91. * 5.代码生成器非常智能,在线业务建模、在线配置、所见即所得支持23种类控件,一键生成前后端代码,大幅度提升开发效率,不再为重复工作发愁。
  92. * 6.低代码能力:Online在线表单(无需编码,通过在线配置表单,实现表单的增删改查,支持单表、树、一对多、一对一等模型,实现人人皆可编码)
  93. * 7.低代码能力:Online在线报表(无需编码,通过在线配置方式,实现数据报表,可以快速抽取数据,减轻开发压力,实现人人皆可编码)
  94. * 8.低代码能力:Online在线图表(无需编码,通过在线配置方式,实现曲线图,柱状图,数据报表等,支持自定义排版布局,实现人人皆可编码)
  95. * 9.封装完善的用户、角色、菜单、组织机构、数据字典、在线定时任务等基础功能,支持访问授权、按钮权限、数据权限等功能
  96. * 10.常用共通封装,各种工具类(定时任务,短信接口,邮件发送,Excel导入导出等),基本满足80%项目需求
  97. * 11.简易Excel导入导出,支持单表导出和一对多表模式导出,生成的代码自带导入导出功能
  98. * 12.集成简易报表工具,图像报表和数据导出非常方便,可极其方便的生成图形报表、pdf、excel、word等报表;
  99. * 13.采用前后分离技术,页面UI风格精美,针对常用组件做了封装:时间、行表格控件、截取显示控件、报表组件,编辑器等等
  100. * 14.查询过滤器:查询功能自动生成,后台动态拼SQL追加查询条件;支持多种匹配方式(全匹配/模糊查询/包含查询/不匹配查询);
  101. * 15.数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段
  102. * 16.页面校验自动生成(必须输入、数字校验、金额校验、时间空间等);
  103. * 17.支持SAAS服务模式,提供SaaS多租户架构方案。
  104. * 18.分布式文件服务,集成minio、阿里OSS等优秀的第三方,提供便捷的文件上传与管理,同时也支持本地存储。
  105. * 19.主流数据库兼容,一套代码完全兼容Mysql、Postgresql、Oracle、Sqlserver、MariaDB、达梦等主流数据库。
  106. * 20.集成工作流activiti,并实现了只需在页面配置流程转向,可极大的简化bpm工作流的开发;用bpm的流程设计器画出了流程走向,一个工作流基本就完成了,只需写很少量的java代码;
  107. * 21.低代码能力:在线流程设计,采用开源Activiti流程引擎,实现在线画流程,自定义表单,表单挂靠,业务流转
  108. * 22.多数据源:及其简易的使用方式,在线配置数据源配置,便捷的从其他数据抓取数据;
  109. * 23.提供单点登录CAS集成方案,项目中已经提供完善的对接代码
  110. * 24.低代码能力:表单设计器,支持用户自定义表单布局,支持单表,一对多表单、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件
  111. * 25.专业接口对接机制,统一采用restful接口方式,集成swagger-ui在线接口文档,Jwt token安全验证,方便客户端对接
  112. * 26.接口安全机制,可细化控制接口授权,非常简便实现不同客户端只看自己数据等控制
  113. * 27.高级组合查询功能,在线配置支持主子表关联查询,可保存查询历史
  114. * 28.提供各种系统监控,实时跟踪系统运行情况(监控 Redis、Tomcat、jvm、服务器信息、请求追踪、SQL监控)
  115. * 29.消息中心(支持短信、邮件、微信推送等等)
  116. * 30.集成Websocket消息通知机制
  117. * 31.移动自适应效果优秀,提供APP发布方案:
  118. * 32.支持多语言,提供国际化方案;
  119. * 33.数据变更记录日志,可记录数据每次变更内容,通过版本对比功能查看历史变化
  120. * 34.平台UI强大,实现了移动自适应
  121. * 35.平台首页风格,提供多种组合模式,支持自定义风格
  122. * 36.提供简单易用的打印插件,支持谷歌、火狐、IE11+ 等各种浏览器
  123. * 37.示例代码丰富,提供很多学习案例参考
  124. * 38.采用maven分模块开发方式
  125. * 39.支持菜单动态路由
  126. * 40.权限控制采用 RBAC(Role-Based Access Control,基于角色的访问控制)
  127. * 41.提供新行编辑表格JVXETable,轻松满足各种复杂ERP布局,拥有更高的性能、更灵活的扩展、更强大的功能
  128. 技术架构:
  129. -----------------------------------
  130. #### 开发环境
  131. - 语言:Java 8+ (小于17)
  132. - IDE(JAVA): IDEA (必须安装lombok插件 )
  133. - IDE(前端): Vscode、WebStorm、IDEA
  134. - 依赖管理:Maven
  135. - 缓存:Redis
  136. - 数据库脚本:MySQL5.7+ & Oracle 11g & Sqlserver2017(其他数据库,[需要自己转](https://my.oschina.net/jeecg/blog/4905722))
  137. #### 后端
  138. - 基础框架:Spring Boot 2.6.6
  139. - 微服务框架: Spring Cloud Alibaba 2021.0.1.0
  140. - 持久层框架:MybatisPlus 3.5.1
  141. - 报表工具: JimuReport 1.5.2
  142. - 安全框架:Apache Shiro 1.8.0,Jwt 3.11.0
  143. - 微服务技术栈:Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Skywalking
  144. - 数据库连接池:阿里巴巴Druid 1.1.22
  145. - 日志打印:logback
  146. - 其他:autopoi, fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。
  147. #### 前端
  148. - Vue2版本:`Vue2.6+@vue/cli+AntDesignVue+Viser-vue+Vuex等` [详细查看](https://github.com/jeecgboot/ant-design-vue-jeecg)
  149. - Vue3版本:`Vue3.0+TypeScript+Vite+AntDesignVue+pinia+echarts等新方案` [详细查看](https://github.com/jeecgboot/jeecgboot-vue3)
  150. #### 支持库
  151. | 数据库 | 支持 |
  152. | --- | --- |
  153. | MySQL | √ |
  154. | Oracle11g | √ |
  155. | Sqlserver2017 | √ |
  156. | PostgreSQL | √ |
  157. | MariaDB | √ |
  158. | 达梦、人大金仓 | √ |
  159. ## 微服务解决方案
  160. 1、服务注册和发现 Nacos √
  161. 2、统一配置中心 Nacos √
  162. 3、路由网关 gateway(三种加载方式) √
  163. 4、分布式 http feign √
  164. 5、熔断降级限流 Sentinel √
  165. 6、分布式文件 Minio、阿里OSS √
  166. 7、统一权限控制 JWT + Shiro √
  167. 8、服务监控 SpringBootAdmin√
  168. 9、链路跟踪 Skywalking [参考文档](http://doc.jeecg.com/2350293)
  169. 10、消息中间件 RabbitMQ √
  170. 11、分布式任务 xxl-job √
  171. 12、分布式事务 Seata
  172. 13、分布式日志 elk + kafka
  173. 14、支持 docker-compose、k8s、jenkins
  174. 15、CAS 单点登录 √
  175. 16、路由限流 √
  176. #### 微服务架构图
  177. ![微服务架构图](https://jeecgos.oss-cn-beijing.aliyuncs.com/files/jeecgboot_springcloud2022.png "在这里输入图片标题")
  178. ### Jeecg Boot 产品功能蓝图
  179. ![功能蓝图](https://jeecgos.oss-cn-beijing.aliyuncs.com/upload/test/Jeecg-Boot-lantu202005_1590912449914.jpg "在这里输入图片标题")
  180. ### 功能模块
  181. ```
  182. ├─系统管理
  183. │ ├─用户管理
  184. │ ├─角色管理
  185. │ ├─菜单管理
  186. │ ├─权限设置(支持按钮权限、数据权限)
  187. │ ├─表单权限(控制字段禁用、隐藏)
  188. │ ├─部门管理
  189. │ ├─我的部门(二级管理员)
  190. │ └─字典管理
  191. │ └─分类字典
  192. │ └─系统公告
  193. │ └─职务管理
  194. │ └─通讯录
  195. │ └─多租户管理
  196. ├─消息中心
  197. │ ├─消息管理
  198. │ ├─模板管理
  199. ├─代码生成器(低代码)
  200. │ ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
  201. │ ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
  202. │ ├─代码生成器模板(生成代码,自带excel导入导出)
  203. │ ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
  204. │ ├─高级查询器(弹窗自动组合查询条件)
  205. │ ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
  206. │ ├─平台移动自适应支持
  207. ├─系统监控
  208. │ ├─Gateway路由网关
  209. │ ├─性能扫描监控
  210. │ │ ├─监控 Redis
  211. │ │ ├─Tomcat
  212. │ │ ├─jvm
  213. │ │ ├─服务器信息
  214. │ │ ├─请求追踪
  215. │ │ ├─磁盘监控
  216. │ ├─定时任务
  217. │ ├─系统日志
  218. │ ├─消息中心(支持短信、邮件、微信推送等等)
  219. │ ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
  220. │ ├─系统通知
  221. │ ├─SQL监控
  222. │ ├─swagger-ui(在线接口文档)
  223. │─报表示例
  224. │ ├─曲线图
  225. │ └─饼状图
  226. │ └─柱状图
  227. │ └─折线图
  228. │ └─面积图
  229. │ └─雷达图
  230. │ └─仪表图
  231. │ └─进度条
  232. │ └─排名列表
  233. │ └─等等
  234. │─大屏模板
  235. │ ├─作战指挥中心大屏
  236. │ └─物流服务中心大屏
  237. │─常用示例
  238. │ ├─自定义组件
  239. │ ├─对象存储(对接阿里云)
  240. │ ├─JVXETable示例(各种复杂ERP布局示例)
  241. │ ├─单表模型例子
  242. │ └─一对多模型例子
  243. │ └─打印例子
  244. │ └─一对多TAB例子
  245. │ └─内嵌table例子
  246. │ └─常用选择组件
  247. │ └─异步树table
  248. │ └─接口模拟测试
  249. │ └─表格合计示例
  250. │ └─异步树列表示例
  251. │ └─一对多JEditable
  252. │ └─JEditable组件示例
  253. │ └─图片拖拽排序
  254. │ └─图片翻页
  255. │ └─图片预览
  256. │ └─PDF预览
  257. │ └─分屏功能
  258. │─封装通用组件
  259. │ ├─行编辑表格JEditableTable
  260. │ └─省略显示组件
  261. │ └─时间控件
  262. │ └─高级查询
  263. │ └─用户选择组件
  264. │ └─报表组件封装
  265. │ └─字典组件
  266. │ └─下拉多选组件
  267. │ └─选人组件
  268. │ └─选部门组件
  269. │ └─通过部门选人组件
  270. │ └─封装曲线、柱状图、饼状图、折线图等等报表的组件(经过封装,使用简单)
  271. │ └─在线code编辑器
  272. │ └─上传文件组件
  273. │ └─验证码组件
  274. │ └─树列表组件
  275. │ └─表单禁用组件
  276. │ └─等等
  277. │─更多页面模板
  278. │ ├─各种高级表单
  279. │ ├─各种列表效果
  280. │ └─结果页面
  281. │ └─异常页面
  282. │ └─个人页面
  283. ├─高级功能
  284. │ ├─系统编码规则
  285. │ ├─提供单点登录CAS集成方案
  286. │ ├─提供APP发布方案
  287. │ ├─集成Websocket消息通知机制
  288. ├─Online在线开发(低代码)
  289. │ ├─Online在线表单 - 功能已开放
  290. │ ├─Online代码生成器 - 功能已开放
  291. │ ├─Online在线报表 - 功能已开放
  292. │ ├─Online在线图表(未开源)
  293. │ ├─Online图表模板配置(未开源)
  294. │ ├─Online布局设计(未开源)
  295. │ ├─多数据源管理 - 功能已开放
  296. ├─积木报表设计器(低代码)
  297. │ ├─打印设计器
  298. │ ├─数据报表设计
  299. │ ├─图形报表设计(支持echart)
  300. │ ├─大屏设计器(未开源)
  301. │─流程模块功能 (未开源)
  302. │ ├─流程设计器
  303. │ ├─表单设计器
  304. ├─大屏设计器
  305. ├─门户设计/仪表盘设计器
  306. │ └─我的任务
  307. │ └─历史流程
  308. │ └─历史流程
  309. │ └─流程实例管理
  310. │ └─流程监听管理
  311. │ └─流程表达式
  312. │ └─我发起的流程
  313. │ └─我的抄送
  314. │ └─流程委派、抄送、跳转
  315. │ └─。。。
  316. │─OA办公组件 (未开源)
  317. │ ├─更多功能
  318. │ └─。。。
  319. └─其他模块
  320. └─更多功能开发中。。
  321. ```
  322. 系统效果
  323. ----
  324. ##### 大屏模板
  325. ![输入图片说明](https://static.oschina.net/uploads/img/201912/25133248_Ag1C.jpg "在这里输入图片标题")
  326. ![输入图片说明](https://static.oschina.net/uploads/img/201912/25133301_k9Kc.jpg "在这里输入图片标题")
  327. ##### PC端
  328. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14155402_AmlV.png "在这里输入图片标题")
  329. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160657_cHwb.png "在这里输入图片标题")
  330. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160813_KmXS.png "在这里输入图片标题")
  331. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160935_Nibs.png "在这里输入图片标题")
  332. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14161004_bxQ4.png "在这里输入图片标题")
  333. ##### 在线接口文档
  334. ![输入图片说明](https://static.oschina.net/uploads/img/201908/27095258_M2Xq.png "在这里输入图片标题")
  335. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160957_hN3X.png "在这里输入图片标题")
  336. ##### 报表
  337. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160828_pkFr.png "在这里输入图片标题")
  338. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160834_Lo23.png "在这里输入图片标题")
  339. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160842_QK7B.png "在这里输入图片标题")
  340. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160849_GBm5.png "在这里输入图片标题")
  341. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160858_6RAM.png "在这里输入图片标题")
  342. ##### 流程
  343. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160623_8fwk.png "在这里输入图片标题")
  344. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160917_9Ftz.png "在这里输入图片标题")
  345. ![输入图片说明](https://static.oschina.net/uploads/img/201904/14160633_u59G.png "在这里输入图片标题")
  346. ![输入图片说明](https://static.oschina.net/uploads/img/201907/05165142_yyQ7.png "在这里输入图片标题")
  347. ##### 手机端
  348. ![](https://oscimg.oschina.net/oscnet/da543c5d0d57baab0cecaa4670c8b68c521.jpg)
  349. ![](https://oscimg.oschina.net/oscnet/fda4bd82cab9d682de1c1fbf2060bf14fa6.jpg)
  350. ##### PAD端
  351. ![](https://oscimg.oschina.net/oscnet/e90fef970a8c33790ab03ffd6c4c7cec225.jpg)
  352. ![](https://oscimg.oschina.net/oscnet/d78218803a9e856a0aa82b45efc49849a0c.jpg)
  353. ![](https://oscimg.oschina.net/oscnet/0404054d9a12647ef6f82cf9cfb80a5ac02.jpg)
  354. ![](https://oscimg.oschina.net/oscnet/59c23b230f52384e588ee16309b44fa20de.jpg)
  355. ## 捐赠
  356. 如果觉得还不错,请作者喝杯咖啡吧 ☺
  357. ![](https://static.oschina.net/uploads/img/201903/08155608_0EFX.png)