# JFinal-layui **Repository Path**: ch252934/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**: 2022-12-14 - **Last Updated**: 2022-12-14 ## 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极速开发企业应用管理系统](https://demo.qinhaisenlin.com/) **JFinal-layui交流群:970045838** **[视频教程-从入门到精通](https://www.qinhaisenlin.com/video )** JFinal-layui-pro和JFinal-RunApi是绝佳搭档,整合到一起会有奇效,不信你就来挑战: [JFinal-RunApi-接口文档开发神器](https://www.qinhaisenlin.com/project/21) #### 安装教程 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必须成对出现 ```