项目作者: qinhaisenliin

项目描述 :
JFinal-layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动项目的目的。前端使用layui的响应式布局,让开发更简单高效,即使你不会layui,也能轻松掌握使用。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,在线表单,通用的附件上传、下载、导入、导出,echart图表统计,缓存,druid的sql监控,基本满足企业应用管理系统的需求,简化了前端代码,后台公用接口都封装完善,你只需要开发业务功能即可。
高级语言: Java
项目地址: git://github.com/qinhaisenliin/JFinal-layui.git
创建时间: 2020-06-11T06:15:14Z
项目社区:https://github.com/qinhaisenliin/JFinal-layui

开源协议:Apache License 2.0

下载


Jfinal-layui

介绍

JFinal+layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会layui,也能轻松掌握使用。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,通用的附件上传、下载、导入、导出,echart图表统计,缓存,druid的sql监控,基本满足企业应用管理系统的需求,简化了前段代码,后台公用接口都封装完善,你只需要开发业务功能即可。从后端架构到前端开发,从开发到部署,这真正的展现了jfinal极速开发的魅力。

软件架构

软件架构说明:
核心架构:jfinaljfinal-undertowlayui,mysql,ehcach,rsa加密算法
系统权限:通过“用户-角色-功能”三者关系来实现系统的权限控制,操作简单明了,代码实现极其简单,完全可以替代shiro,你不用再去折腾shiro那一套了,这都是得益于jfinal架构的巧妙设计。
前端页面:封装了layui常用模块代码,参照使用例子,就能快速上手,无需担心不懂layui。
系统日志:操作日志、数据日志、登录日志,无需注解和手动添加,就能跟踪记录数据,不担心数据丢失

友情链接

JFinal-layui在线演示系统: JFinal极速开发企业应用管理系统
系统登录账号:admin/123456

JFinal-layui代码在线生成器: 代码生成器

JFinal-layui交流群:970045838

**视频教程-入门实战

安装教程

  1. 新建数据库,执行doc目录下的jfinal-layui.sql
  2. 修改resources下面的config-dev.txt配置文件,修改数据库配置
  3. 运行com.qinhailin.common.config.ManiConfig的main方法
  4. 访问地址:http://localhost;登录账号:admin/123456

使用说明

jfinal的通用配置如果不是特别需要,不需要修改,直接开发你的功能即可,QQ交流群:970045838

  1. controller控制类:只需继承BaseController就能拥有上传、导入、导出等通用方法。
    ControllerBind的path、viewPath默认相同,也可自定义:
  1. @ControllerBind(path="/portal/core/sysUser")
  2. public class SysUserController extends BaseController {
  3. @Inject
  4. SysUserService service;
  5. public void index() {
  6. setAttr("orgList", service.queryOrgIdAndNameRecord());
  7. render("index.html");
  8. }
  9. public void list() {
  10. //条件查询
  11. Record record = new Record();
  12. record.set("userName", getPara("userName"));
  13. record.set("orgId", getPara("orgId"));
  14. record.set("sex", getPara("sex"));
  15. renderJson(service.page(getParaToInt("pageNumber", 1), getParaToInt("pageSize", 10), record));
  16. }
  17. }
  1. service服务类:只需要继承BaseService接口,实现getDao()方法,就能拥有对数据库持久层的所有方法接口。
  1. public class SysUserService extends BaseService {
  2. private SysUser dao = new SysUser().dao();
  3. @Override
  4. public Model<?> getDao(){
  5. return dao;
  6. }
  7. }
  1. 前端页面,封装了layui常用代码,添加修改页面使用函数#@colStart和#@colEnd即可,#@colStart和#@colEnd必须成对出现
  1. <div class="layui-row layui-col-space1 task-row">
  2. #@colStart('用户编号',6)
  3. <input type="text" class="layui-input" name="sysUser.userCode" value="#(sysUser.user_code??)"
  4. lay-verType='tips'lay-verify="required|" maxlength="50" placeHolder="必填"/>
  5. #@colEnd()
  6. #@colStart('密码',6)
  7. <input type="password" class="layui-input" name="sysUser.passwd" value="#(sysUser.passwd??)"
  8. lay-verType='tips'lay-verify="" maxlength="50" placeHolder="不填则使用默认密码"/>
  9. #@colEnd()
  10. </div>

4、分页列表,页面代码也极其简单明了

  1. <script>
  2. //自定义弹窗
  3. function userRole(obj){
  4. var data=obj.data;
  5. var userCode=data.user_code;
  6. var userName=data.user_name;
  7. var url="#(path)/portal/core/sysUser/userRole?userCode="+userCode+"&userName="+userName;
  8. openDialog("配置用户角色",url,false,null,null);
  9. }
  10. //分页表格参数
  11. gridArgs.title='功能';
  12. gridArgs.dataId='id';
  13. gridArgs.deleteUrl='#(path)/portal/core/sysUser/delete';
  14. gridArgs.updateUrl='#(path)/portal/core/sysUser/edit/';
  15. gridArgs.addUrl='#(path)/portal/core/sysUser/add';
  16. gridArgs.resetUrl='#(path)/portal/core/sysUser/resetPassword';
  17. gridArgs.gridDivId ='maingrid';
  18. initGrid({id : 'maingrid'
  19. ,elem : '#maingrid'
  20. ,cellMinWidth: 80
  21. ,cols : [ [
  22. {title: '主键',field : 'id',width : 35,checkbox : true},
  23. {title:'序号',type:'numbers',width:35},
  24. {title: '用户名', field: 'user_code' },
  25. {title: '姓名', field: 'user_name'},
  26. {title: '所属部门', field: 'org_name'},
  27. {title: '性别', field: 'sex',templet:'#sexStr'},
  28. {title: '电话', field: 'tel'},
  29. {title: '手机号码', field: 'mobile'},
  30. {title: '邮箱', field: 'email'},
  31. {title: '允许登录', field: 'allow_login',templet:'#numToStr' },
  32. {fixed:'right',width : 180,align : 'left',toolbar : '#bar_maingrid'} // 这里的toolbar值是模板元素的选择器
  33. ] ]
  34. ,url:"#(path)/portal/core/sysUser/list"
  35. ,searchForm : 'searchForm'
  36. },{role:userRole});
  37. </script>
  38. <script type="text/html" id="sexStr">
  39. {{ d.sex == 1 ? '男' : '女' }}
  40. </script>
  41. <script type="text/html" id="numToStr">
  42. <input type="checkbox" name="isStop" {{(d.id=='admin'||d.id=='superadmin')?'disabled':''}} value="{{d.id}}"
  43. lay-skin="switch" lay-text="是|否" lay-filter="allowLoginFilter" {{ d.allow_login == 0 ? 'checked' : '' }}>
  44. </script>

5、业务字典快速引用函数
#@getSelect(code,name,text)#@getRadio(code,name,text)#@getCheckbox(code,name,text)
code:字典编号,name:元素name属性,text:选项名称,需要选中值,在调用之前设置值即可:#set(value=’选中值’),如:系统日志类型引用:

  1. #@queryStart('日志类型')
  2. #@getSelect('logType','remark','日志类型')
  3. #@queryEnd()
  4. #@queryStart('日志类型')
  5. #set(value='数据日志')
  6. #@getRadio('logType','remark','日志类型')
  7. #@queryEnd()
  8. #@queryStart('日志类型')
  9. #set(value='操作日志,数据日志,登录日志')
  10. #@getCheckbox('logType','remark','日志类型')
  11. #@queryEnd()

业务字典快速引用

系统界面

1、登录界面,第一次不显示验证码,输错一次密码,则需要验证码
第一次登录界面
密码错误,显示验证码
2、登录后的管理主页
管理主页
3、系统管理核心模块
功能管理
角色管理
用户管理
部门管理
业务字典
系统日志
附件上传
附件下载
echart图表

4、响应式布局展示:

移动端主菜单
功能管理菜单树

功能管理列表
弹窗展示

用户管理列表
删除提示

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