# JFinal-layui
**Repository Path**: distributed-orm/Jfinal-layui
## Basic Information
- **Project Name**: JFinal-layui
- **Description**: JFinal-layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动项目的目的。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,报表管理、代码生成器、在线表单,通用的附件上传、下载、导入、导出,echart图表统计,缓存,druid的sql监控,基本满足企业应用管理系统的需求,简化了前端代码,后台公用接口都封装完善,你只需要开发业务功能即可。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: pro
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 498
- **Created**: 2021-05-08
- **Last Updated**: 2021-05-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Jfinal-layui-pro 专业版
#### 介绍
JFinal+layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会layui,也能轻松掌握使用。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,报表管理、代码生成器、通用的附件上传、下载、导入、导出,echart图表统计,缓存,druid的sql监控,基本满足企业应用管理系统的需求,简化了前段代码,后台公用接口都封装完善,你只需要开发业务功能即可。从后端架构到前端开发,从开发到部署,这真正的展现了jfinal极速开发的魅力。
### pro和master版本的区别主要是前端界面的不同,在原有的基础上修改css,调整首页布局,打造一款美观、好用、专业的后台管理系统
#### 软件架构
软件架构说明:
核心架构:[jfinal](http://www.jfinal.com),[jfinal-undertow](http://www.jfinal.com/doc/1-4),[layui](https://www.layui.com/),mysql,ehcach,rsa加密算法
系统权限:通过“用户-角色-功能”三者关系来实现系统的权限控制,操作简单明了,代码实现极其简单,完全可以替代shiro,你不用再去折腾shiro那一套了,这都是得益于jfinal架构的巧妙设计。
前端页面:封装了layui常用模块代码,参照使用例子,就能快速上手,无需担心不懂layui。
系统日志:操作日志、数据日志、登录日志,无需注解和手动添加,就能跟踪记录数据
#### 友情链接
**JFinal-layui-pro专业版在线演示系统:** [JFinal极速开发企业应用管理系统](http://www.qinhaisenlin.com:8081/)
**JFinal-layui交流群:970045838**
**[视频教程-入门实战](https://www.qinhaisenlin.com/share/47 )
#### 安装教程
1. 新建数据库,执行doc目录下的jfinal-layui.sql
2. 修改resources下面的config-dev.txt配置文件,修改数据库配置
3. 运行com.qinhailin.common.config.ManiConfig的main方法
4. 访问地址:http://localhost;登录账号:admin/123456
#### 使用说明
jfinal的通用配置如果不是特别需要,不需要修改,直接开发你的功能即可
1. controller控制类:只需继承BaseController就能拥有上传、导入、导出等通用方法。
ControllerBind的path、viewPath默认相同,也可自定义:
```
@Path("/portal/core/sysUser")
public class SysUserController extends BaseController {
@Inject
SysUserService service;
public void index() {
setAttr("orgList", service.queryOrgIdAndNameRecord());
render("index.html");
}
public void list() {
renderJson(service.page(getParaToInt("pageNumber", 1), getParaToInt("pageSize", 10), getAllParamsToRecord()));
}
}
```
2. service服务类:只需要继承BaseService接口,实现getDao()方法,就能拥有对数据库持久层的所有方法接口。
```
public class SysUserService extends BaseService {
private SysUser dao = new SysUser().dao();
@Override
public Model> getDao(){
return dao;
}
public Grid page(int pageNumber, int pageSize, Record record) {
Record rd = new Record();
rd.set("a.user_code like", record.getStr("userCode"));
rd.set("a.user_name like", record.getStr("userName"));
rd.set("a.sex=", record.getStr("sex"));
String sql=Db.getSql("core.getUserList");
String orgId=record.getStr("orgId");
//部门用户列表
String type=record.getStr("type");
if("org".equals(type)){
StringBuffer sbf=new StringBuffer();
sbf.append("'").append(orgId).append("'");
String orgIds=orgService.getIdsByOrgId(orgId,sbf);
sql=Db.getSql("core.getOrgUserList").replace("?", orgIds);
return queryForList(sql,pageNumber, pageSize, rd, null);
}
//用户管理列表
rd.set("a.org_id=", orgId);
return queryForList(sql,pageNumber, pageSize, rd, null);
}
}
```
3. 前端页面,封装了layui常用代码,添加修改页面使用函数#@colStart和#@colEnd即可,#@colStart和#@colEnd必须成对出现
```
#@colStart('用户编号',6)
#@colEnd()
#@colStart('密码',6)
#@colEnd()
```
4、分页列表,页面代码也极其简单明了
```
```
5、业务字典快速引用函数
**#@getSelect(code,name,text)** ; **#@getRadio(code,name,text)** ;**#@getCheckbox(code,name,text)**
code:字典编号,name:元素name属性,text:选项名称,需要选中值,在调用之前设置值即可:#set(value='选中值'),如:系统日志类型引用:
```
#@queryStart('日志类型')
#@getSelect('logType','remark','日志类型')
#@queryEnd()
#@queryStart('日志类型')
#set(value='数据日志')
#@getRadio('logType','remark','日志类型')
#@queryEnd()
#@queryStart('日志类型')
#set(value='操作日志,数据日志,登录日志')
#@getCheckbox('logType','remark','日志类型')
#@queryEnd()
```

#### 系统界面
1、登录界面,第一次不显示验证码,输错一次密码,则需要验证码


2、登录后的管理主页

3、系统管理核心模块

















**4、响应式布局展示:**






感兴趣的攻城狮可以参考,希望能对你有帮助。