# 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的方式加载表单或其他页面。弹窗的【确定】按钮不具备
提交表单的功能,而是采用在表单页面隐藏提交按钮
```
```
然后在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