# jf2eeirdp4thinkis **Repository Path**: youfule/jf2eeirdp4thinkis ## Basic Information - **Project Name**: jf2eeirdp4thinkis - **Description**: 企业级集成化快速开发平台(Enterprise edition integrated rapid development platform) 该框架是基于守望者/thinkis进行调整增强的,而thinkis是在jeesite的基础上,将UI替换为LayUI。本人在thinkis的基础上修复了一些bug,做了些优化。在持续集成thinkis最新提交的基础上,对CMS模块等部分尽量保持着jeesite原有的设计思路。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2018-12-21 - **Last Updated**: 2021-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 企业级集成化快速开发平台 Enterprise edition integrated rapid development platform #### 项目介绍 该框架是基于**守望者**/thinkis进行调整增强的,而thinkis是在jeesite的基础上,将UI替换为LayUI。本人在thinkis的基础上修复了一些bug,做了些优化。 thinkis:https://gitee.com/thinkis/thinkis #### 软件架构 软件架构说明 #### 安装教程 1. 新建数据库,采用UTF-8编码,导入doc/thinkis.sql(该sql中user表缺少一个open_id字段,会导致报错,手动加入即可) 2. 根据实际情况修改thinkis-web下resources/thinkis.properties,filters/*等文件 3. idea配置tomcat运行即可 #### 采坑实录 1. 以role页面为例,先说一下界面各操作间的逻辑,在list页面中通过给新增,修改等按钮绑定事件,使用layui的layer实现弹窗。 弹窗下方的按钮设置为【确定】【取消】两个,通过设置layer的type为2以iframe的方式加载表单或其他页面。弹窗的【确定】按钮不具备 提交表单的功能,而是采用在表单页面隐藏提交按钮 ```
<%if(shiro.hasPermission("sys:role:edit")){%> <%}%> <%}%>
``` 然后在list页面设置【确定】按钮的点击事件,来触发form页面隐藏的提交按钮 ```aidl yes: function(index, layero){ var submit = layero.find('iframe').contents().find('#roleForm'); submit.trigger('click'); //layui.layer.close(index); }, end:function(){ location.reload(); } ``` 最后在form页面通过layui.form.on(submit(*))来监听表单的提交(该事件是在layui的表单验证通过后才执行) ```aidl form.on('submit(roleForm)', function(data){ //data.form.submit(); parent.layui.layer.closeAll(); //return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); ``` 然后再说遇到的坑 - 关于弹窗关闭 list页面直接使用上面var的layer关闭弹窗不起效```layer.close(index)```,使用```layui.layer.close(index)```可以关闭 form页面需使用```parent.layui.layer.closeAll();```才可关闭; 当在list页面的yes方法中执行关闭,不管表单提交成功不成功,或是layui的表单验证没有通过,都将弹窗关闭了,所以必须将关闭操作放在form页面中 - 关于表单提交 form页面的submit回调中,最后return false则表单是不提交的,所以必须去掉return false或return true; 如上所说,form.on('submit(roleForm)')方法最会可以自动提交表单,所以不用```data.form.submit();```来手动提交 - $().click()和onclick() 原来在list页面中,新增按钮采用$().click();的方式绑定事件,而修改按钮是在button标签上通过onclick绑定事件方法,分别遇到以下问题。 采用$().click();的方式绑定事件,form页面的layui验证正常,但list页面yes方法中的layer.close(index)失效,导致点击确定后弹窗没有关闭; 通过onclick给按钮绑定事件,list页面yes方法中的layer.close(index)可以正常使弹窗关闭 2. layui相关 - 没有手动触发表单验证,表单提交的api(可能自己没找到) - checkbox使用required验证不行,需要自定义验证方法来验证 ``` form.verify({ userRole:function (value, item) { if (!$("[name='roleIdList']").is(":checked")) { return "角色必选"; } } }) ``` 3. beetl相关 - 防止页面报空指针,可能出现null的变量输出时使用安全输出 #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request