QuickAdmin是基于Spring Boot和React.js实现的管理系统开发框架

网友投稿 1797 2022-11-01

QuickAdmin是基于Spring Boot和React.js实现的管理系统开发框架

QuickAdmin

QuickAdmin是基于Spring Boot和React.js实现的管理系统开发框架。用于开发网站的后台管理系统。

本框架提供了如下功能:

完整的基于Bootstrap的响应式UI界面实现。基于React的常用的管理系统显示组件。前后台间的通信封装。常用的数据库基础操作封装。最小化的用户管理功能常用的简单工具类

本框架中富文本编辑器采用WangEditor实现。是一个国人开源的优秀的轻量级富文本编辑器,希望多多支持。

框架概述

本框架主要实现前端页面的组件化,通过组合组件实现常见管理系统的大部分功能。同时也充分利用React.js的丰富资源和强大能力。用户可以充分扩展自己的功能。

本框架依赖于以下环境:

JDKGradleNode.jsWebpack

开发环境以Intellij Idea为例,

以Gradle项目引入项目,并执行sync以解决依赖配置Application及application.properties,配置数据源及监听端口等参数。application.properties是Spring boot的配置文件,具体配置可以参考Spring Boot文档。使用本项目提供的demo.sql文件初始化数据库。通过Application.main()方法或执行run任务启动服务即可访问。默认用户为admin,密码为admin不建议通过其它方式为本管理系统添加页面。

开发时推荐按照以下方式进行:

在com.xinou.quickadmin.controller.api包下为前端提供json接口。应当继承BaseController类,并调用响应render方法提供返回。通过修改com.xinou.quickadmin.controller.AuthIntercepto类构造方法中传入接口实现不同的用户校验逻辑。通过添加@IngeroCheck注解可以简单地跳过特定请求的登录验证。在resource/comp下创建React组件,在application.js中配置路由。并使用webpack进行打包,生成的文件为resources//jsx/main.js页面中导航组件位于resources/comp/framework/navbar.js,通过在application.js中配置json,最多提供两层导航支持。开发组件建议参考现有demo,在resources/comp/framework/adminUIComponents.js中提供了常用的数据展示组件。

开发指南

后端开发

Controller

本项目中Controller主要任务是为前端提供json接口。应当继承com.xinou.quickadmin.controller.BaseController方法,并调用响应render方法提供返回。

Service

本项目中service主要为controller提供业务支持。在com.xinou.quickadmin.service.BaseService中提供了常见的数据库操作。

登录验证及跳过

本项目通过-实现登录验证,-为com.xinou.quickadmin.auth.AuthInterceptor。

通过Application.addInterceptors()方法添加AuthInterceptor的实例,即可实现登录验证。

默认用户校验很简单,可以通过实现com.xinou.quickadmin.auth.UserAuth接口来实现更丰富的校验功能。

在Controller中提供的接口上添加@IngoreCheck可以跳过此接口的登录验证。

工具类

IDUtil:用于生成ID,验证码,邀请码等字符串

MD5Util:用于计算MD5值

TextUtil:用于将文本输入中的回车换为
换行。

前端开发

导航设置

导航配置位于/resources/comp/application.js中IndexWrapper.state.navtree参数

主页面左侧导航栏通过一个json数组配置,每个导航包括一个name属性和component属性,分别为导航名称和对应组件的路由。

导航通过React-router的Link组件实现路由跳转。

通过配置subnav可以支持最多双层导航。

案例json如下所示:

[ { name:"用户管理",//导航名称 component:"/user/admin"//对应组件路由 },{ name:"新闻管理", subnav:[//子导航列表 { name:"新闻列表", component:"/news/list" } ] }]

在组件中需要跳转,可以使用Link组件,或者通过hashHistory实现跳转。

hashHistory.push("/news/update/"+item.id);

路由设置

组件路由通过React-route实现。配置位于application.js中。是标准的React-router用法。

添加一个路由仅需要一行代码:

path指定访问路径,component指定加载的组件。

组件应用

在项目中包含了user.comp.js和news.comp.js两个案例。用户可以自行仿照添加组件。

user.comp.js中的 AdminUserList 组件是一个标准的列表视图组件。已经添加了详尽的注释,代码就不再重复粘贴。

网络请求

在/resources/comp/framework/commonUtil.js中,提供了两个基本的网络请求:xget和xpost方法。

在xget和xpost方法中封装了对标准返回数据的基本处理,对于报错会直接处理。所以回调方法的参数仅为data对象。

组件列表

所有预设的组件源码均位于/resources/comp/framework/adminUIComponents.js文件中。部分组件可能依赖于commonUtils.js中的工具类。

SmartBox

基本的外包裹框,包括标题栏,面包屑导航和功能按钮。

用法如下:

Title参数为一个字符串,显示为标题。

Index参数为面包屑导航,为一个字符串数组,可以有任意多级。

Option为限选项,根据需要自行选择添加。未指定的则不会显示在右上角。reload为刷新按钮,add为加号按钮。

###DataTable

基本的数据表格。

用法如下:

Index:列名与数据字段的映射。表头由列名组成,根据对应的字段名在数据中查找数据填充表格。col参数可以对应字段名,也可以对应一个方法,将方法的返回值用来填充表格。

比如用于显示一个图片:

{name:"image",col:function(item){return }

Data:数据列表。一般是通过Ajax从服务端请求得来的列表。

Buttons:最后一列的功能按钮,传入参数item为对应此列的数据对象。可以做任何操作。

Pager

分页按钮

用法如下:

Pagecount:总计页数。

Last:当前页数。

以上两个参数在标准的页面接口返回信息中可以找到。一般存储在state中以供使用。

ImageUpdate

一个可以预览的图片上传组件。通过formData实现异步上传,需要提供文件上传接口。也可自行改写此组件,使用OSS等第三方文件上传组件。

用法如下:

Title:此行输入的标题

Action:上传图片的接口URL,此接口上传文件字段为file,返回值应为图片URL,可以根据自己的参数自行改写。

Url:显示图片的URL。

onChange:当选中图片后的回调方法,在回调方法中必须重新指定URL参数以实现显示图片的效果。

SingleButtonImageUploader

类似于ImageUpdate的组件,不提供预览,仅有一个按钮。

用法如下:

Title:此行输入的标题

Action:上传图片的接口URL,此接口上传文件字段为file,返回值应为图片URL,可以根据自己的参数自行改写。

Url:显示图片的URL。

onChange:当选中图片后的回调方法。

auto:是否支持重复上传,设为auto后,当上传成功后文字仍为title,否则为上传成功。

Modal

基于Bootstrap模态框的弹出框。可以作为容器与其它组件配合使用。

用法如下:

里面随便写

弹出框带有一个标题和底部按钮栏。自带有关闭按钮。

可以通过Bootstrap的调用方式:$("#id").modal("show")和$("#id").modal("hidden")来控制模态框的开关。

title: 标题

id:唯一的id,用于控制此模态框

btns:在按钮列表中可以添加其余按钮。

SelectableInput

基于html5的datalist实现的输入搜索选框,类似于12306的地址选择功能。

用法如下:

pkey:唯一key,用于对应datalist于input

title:标题

data:数据数据,也可以使用另一种方式:dataurl,输入一个url,然后会向此url请求参数。此url也应当使用标准接口。

onChange: 输入数据后的回调方法

inputable:是否接受用户自定义输入。为true时接受。否则不接受在data之外的输入。

SearchLabel

支持选择条件的搜索框,仅允许同时一个条件进行搜索。

用法如下:

searchKeys:用于搜索的条件列表,key表示实际上传的字段,name是用于显示的名称

loadPage:用于加载数据的回调函数。queryString是可以直接拼接在url后的参数列表。包括searchType和searchData两个参数。分别为搜索的key和数据。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:web开发的前端(前端和web开发)
下一篇:app跳转微信小程序开发版本(小程序 跳转 app)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~