企业应用管理系统 JFinal-layui

Apache
Java
跨平台
2019-02-14
琴海森林

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

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

安装教程

1. 下载项目代码
2. 新建数据库,执行doc目录下的jfinal-layui.sql
3. 修改resources下面的config-dev.txt配置文件,启动项目即可
4. 登录账号:admin/123456

使用说明
jfinal的通用配置如果不是特别需要,不需要修改,直接开发你的功能即可。

1. controller控制类:只需继承BaseController就能拥有上传、导入、导出等通用方法。
   ControllerBind的path、viewPath默认相同,也可自定义:

@ControllerBind(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() {
            //条件查询
         Record record = new Record();
         record.set("userName", getPara("userName"));
         record.set("orgId", getPara("orgId"));
         record.set("sex", getPara("sex"));
         renderJson(service.page(getParaToInt("pageNumber", 1), getParaToInt("pageSize", 10), record));
    }
 }

2. service服务类:只需要继承BaseService接口,实现getDao()方法,就能拥有对数据库持久层的所有方法接口。

public class SysUserService extends BaseService {

    private SysUser dao = new SysUser().dao();
    
    @Override
    public Model<?> getDao(){
        return dao;
    }
  }

3. 前端页面,封装了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';
    initGrid({id : 'maingrid'
            ,elem : '#maingrid'
            ,cellMinWidth: 80
            ,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:选项名称 ,如:系统日志类型引用:

 #@queryStart('日志类型')                    
    #@getSelect('logType','remark','日志类型')            
   #@queryEnd() 
   #@queryStart('日志类型')                    
    #@getRadio('logType','remark','日志类型')            
   #@queryEnd() 
   #@queryStart('日志类型')                    
    #@getCheckbox('logType','remark','日志类型')            
   #@queryEnd()

业务字典快速引用:



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



密码错误,显示验证码:

2、登录后的管理主页
管理主页:

3、系统管理核心模块
功能管理

角色管理

用户管理

部门管理

业务字典

系统日志

附件上传

附件下载

echart图表


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

的码云指数为
超过 的项目
加载中

评论(6)

大老吴
大老吴
public boolean saveRoleFunc(String roleCode, String[] funcs) { ..... 确定这里的String roleCode, String[] funcs 在下面的匿名内部类new IAtom中调用不用加final吗?为什么我下载下来报错,好多地方都是这个错误。
二进制艺术
二进制艺术

引用来自“hotsmile”的评论

希望能前后端分离
jfinal 用不到前后端分离
简约_阿廖沙
简约_阿廖沙

引用来自“hotsmile”的评论

希望能前后端分离
后台管理系统前后分离 干啥呀 还不是自己做
琴海森林
琴海森林 软件作者

引用来自“hotsmile”的评论

希望能前后端分离
这个先不没考虑😌
hotsmile
hotsmile
希望能前后端分离
hotsmile
hotsmile
不错的脚手架

JFinal-layui v1.2.3 发布,极速开发企业应用系统

JFinal+layui 极速开发企业应用管理系统,是以 JFinal+layui 为核心的企业应用项目架构,利用 JFinal 的特性与 layui 完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会 layu...

04/04 15:03

JFinal-layui v1.2.1 发布,极速开发企业应用系统

JFinal+layui 极速开发企业应用管理系统,是以 JFinal+layui 为核心的企业应用项目架构,利用 JFinal 的特性与 layui 完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会 layu...

03/21 16:53

JFinal-layui v1.1 更新,极速开发企业应用系统

v1.1版本更新: 1、部门管理扩展 增加部门用户列表信息,可以快速查看该部门和所有下级部门的用户,这个功能还是很有用的。 2、BaseService查询优化 优化BaseService条件查询sql,更贱方便快...

03/01 09:22

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

jfinal 整合百度编辑器ueditor

网上找了很多资料,很多需要改百度提供的java类,其实不需要这么麻烦

2018/04/17 11:19
191
1
SoJpt 脚手架 v1.0 发布 (Layui+Jfinal+Mysql/Oracle)

SoJpt 脚手架是一个集用户管理,权限管理,角色管理,审计功能及权限分配,角色分配与一体的后台管理框架,同时借鉴 Jfinal 官方最佳实践 Jfinal-club 会员项目以及作者多年实战经验使该项目...

03/30 11:42
7
0
Jfinal多模块项目整合shiro

需要的shiro相关的jar包 <properties>     <shiro.version>1.3.2</shiro.version>     <!--<jfinal.shiro.version>0.3</jfinal.shiro.version>-->     <javax.servlet.version>4...

2018/04/17 15:49
42
0
Jfinal3.4+layui2.4.3整合

Jfinal3.4+layui2.4.3整合 将后端框架Jfinal和前端框架layui整合,形成一个完整开发框架 还在开发中。。。 项目地址: http://120.79.92.71/ww1234/login......

2018/09/04 16:29
57
0
开发技术团队

1、精通Java语言; 2、熟练使用jfinal、mysql、layui、html/css、jQuery快速开发; 3、熟悉微信接口开发; 4、熟悉git操作;

2018/05/03 14:05
21
0
jfinal-lesscss使用java实现lesscss的动态编译

jfinal-coffeescript使用java实现coffeescript的动态编译,带有jfinal plugin

2014/09/12 12:21
59
0
jfinal-coffeescript使用java实现coffeescript的动态编译

jfinal-coffeescript使用java实现coffeescript的动态编译,带有jfinal plugin

2014/09/12 12:16
70
0
jfinal-shiro-freemarker实现shiro在freemarker页面的标签过滤

jfinal-shiro-freemarker实现shiro在freemarker页面的标签过滤,用于动态屏蔽页面的部分内容

2014/09/12 11:59
608
1
jfinal-sqlinxml 类似ibatis的sql语句存在xml文件里

jfinal-sqlinxml 类似ibatis的sql语句存在xml文件里

2014/09/12 13:47
227
0
jfinal-quartz 使用jfinal启动quartz执行定时任务

jfinal-quartz 使用jfinal启动quartz执行定时任务,大家尽可能关注(Follow)我的github(https://github.com/Dreampie),好及时得到插件的更新信息...

2014/09/12 13:26
1K
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部