迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:JFinal-layui开源软件地址:https://gitee.com/QinHaiSenLin/Jfinal-layui开源软件介绍:Jfinal-layui-pro 专业版介绍JFinal+layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会layui,也能轻松掌握使用。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,报表管理、代码生成器、通用的附件上传、下载、导入、导出,echart图表统计,缓存,druid的sql监控,基本满足企业应用管理系统的需求,简化了前段代码,后台公用接口都封装完善,你只需要开发业务功能即可。从后端架构到前端开发,从开发到部署,这真正的展现了jfinal极速开发的魅力。 pro和master版本的区别主要是前端界面的不同,在原有的基础上修改css,调整首页布局,打造一款美观、好用、专业的后台管理系统软件架构软件架构说明:核心架构:jfinal,jfinal-undertow,layui,mysql,ehcach,rsa加密算法系统权限:通过“用户-角色-功能”三者关系来实现系统的权限控制,操作简单明了,代码实现极其简单,完全可以替代shiro,你不用再去折腾shiro那一套了,这都是得益于jfinal架构的巧妙设计。前端页面:封装了layui常用模块代码,参照使用例子,就能快速上手,无需担心不懂layui。系统日志:操作日志、数据日志、登录日志,无需注解和手动添加,就能跟踪记录数据 友情链接JFinal-layui-pro专业版在线演示系统: JFinal极速开发企业应用管理系统 JFinal-layui交流群:970045838 安装教程
使用说明jfinal的通用配置如果不是特别需要,不需要修改,直接开发你的功能即可
@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())); } }
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); } }
<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、登录界面,第一次不显示验证码,输错一次密码,则需要验证码
感兴趣的攻城狮可以参考,希望能对你有帮助。 ![]() |
2022-08-15
2022-08-17
2023-10-27
2022-09-23
2022-08-13
请发表评论