1 Star 0 Fork 477

讠讠讠讠 / JFinal-layui

forked from 琴海森林 / JFinal-layui 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 11.08 KB
一键复制 编辑 原始数据 按行查看 历史
琴海森林 提交于 2021-05-21 08:30 . update README.md.

Jfinal-layui-pro 专业版

介绍

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

pro和master版本的区别主要是前端界面的不同,在原有的基础上修改css,调整首页布局,打造一款美观、好用、专业的后台管理系统

软件架构

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

友情链接

JFinal-layui-pro专业版在线演示系统: JFinal极速开发企业应用管理系统

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的通用配置如果不是特别需要,不需要修改,直接开发你的功能即可

  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()));
	}
 }
  1. 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);
	}
  }
  1. 前端页面,封装了layui常用代码,添加修改页面使用函数#@colStart和#@colEnd即可,#@colStart和#@colEnd必须成对出现
   <div class="layui-row layui-col-space1 task-row">
	#@colStart('用户编号',6)		
	   <input type="text" class="layui-input" name="sysUser.userCode" value="#(sysUser.user_code??)" 
		lay-verType='tips'lay-verify="required|" maxlength="50" placeHolder="必填"/>
	#@colEnd()
		
	#@colStart('密码',6)
	    <input type="password" class="layui-input" name="sysUser.passwd" value="#(sysUser.passwd??)"
		lay-verType='tips'lay-verify=""  maxlength="50" placeHolder="不填则使用默认密码"/>
	#@colEnd()
    </div>

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

<script>
    //自定义弹窗
	 function userRole(obj){
		 var data=obj.data;
		var userCode=data.user_code;
		var userName=data.user_name;
		var url="#(path)/portal/core/sysUser/userRole?userCode="+userCode+"&userName="+userName;
		openDialog("配置用户角色",url,false,null,null);
	 }
	//分页表格参数
	gridArgs.title='功能';
	gridArgs.dataId='id';
	gridArgs.deleteUrl='#(path)/portal/core/sysUser/delete';
	gridArgs.updateUrl='#(path)/portal/core/sysUser/edit/';
	gridArgs.addUrl='#(path)/portal/core/sysUser/add';
	gridArgs.resetUrl='#(path)/portal/core/sysUser/resetPassword';
	gridArgs.gridDivId ='maingrid';
  gridArgs.heightDiff=82;//调整表格高度
	initGrid({id : 'maingrid'
			,elem : '#maingrid'
			,cellMinWidth: 80
             ,toolbar:'#table_toolbar'//自定义工具栏		
			,cols : [ [
					{title: '主键',field : 'id',width : 35,checkbox : true},						
					{title:'序号',type:'numbers',width:35},
					{title: '用户名', field: 'user_code' },
        			{title: '姓名', field: 'user_name'},
	        		{title: '所属部门', field: 'org_name'},
	        		{title: '性别', field: 'sex',templet:'#sexStr'},
        			{title: '电话', field: 'tel'},
        			{title: '手机号码', field: 'mobile'},
        			{title: '邮箱', field: 'email'},
        			{title: '允许登录', field: 'allow_login',templet:'#numToStr' },																		
					{fixed:'right',width : 180,align : 'left',toolbar : '#bar_maingrid'} // 这里的toolbar值是模板元素的选择器
			] ]
			,url:"#(path)/portal/core/sysUser/list"
			,searchForm : 'searchForm'
		},{role:userRole});
	
</script>

<script type="text/html" id="sexStr">
    {{ d.sex == 1 ? '男' : '女' }}             
</script>
<script type="text/html" id="numToStr">
    <input type="checkbox" name="isStop" {{(d.id=='admin'||d.id=='superadmin')?'disabled':''}} value="{{d.id}}" 
		lay-skin="switch" lay-text="是|否" lay-filter="allowLoginFilter" {{ d.allow_login == 0 ? 'checked' : '' }}>               
</script>

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、系统管理核心模块 功能管理 角色管理 用户管理 部门管理 业务字典 系统日志 自定义SQL 附件上传 附件列表 echart图表 单表代码生成器 主从表代码生成器 主从表示例 报表设计器 报表预览 可编辑表格 联级多选 4、响应式布局展示:

移动端主菜单 功能管理菜单树 功能管理列表 功能管理添加弹窗

用户管理列表 删除提示

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

Java
1
https://gitee.com/LGH1997/Jfinal-layui.git
git@gitee.com:LGH1997/Jfinal-layui.git
LGH1997
Jfinal-layui
JFinal-layui
pro

搜索帮助