BeX5添加角色,分配功能权限慢的问题
点击下载放在UI2扩展空间 点击下载上边的资源!放在UI2 目录即可,它是一个扩展空间 主要原因就是一次性加载树形数据,grid渲染慢的问题! 优化的内容是:grid树形显示,先延迟data加载数据!! data组件中优先加载父的数据!点击下拉子的时候,才去加载子的数据!网络请求还是一次性加载的!只是渲染数据一次性加载到data组件中,从而延迟了grid渲染子数据!
点击下载放在UI2扩展空间 点击下载上边的资源!放在UI2 目录即可,它是一个扩展空间 主要原因就是一次性加载树形数据,grid渲染慢的问题! 优化的内容是:grid树形显示,先延迟data加载数据!! data组件中优先加载父的数据!点击下拉子的时候,才去加载子的数据!网络请求还是一次性加载的!只是渲染数据一次性加载到data组件中,从而延迟了grid渲染子数据!
data的行有NEW、DELETE、EDIT、NONE 本例判断行状态为new(新增)时,data不只读,否则data只读,具体实现如下: 1.在model勾选函数中定义一个observable变量 var Model = function() { this.callParent(); this.rowReadonly = justep.Bind.observable(true); }; 2.data的onIndexChanged事件中判断行状态给变量赋值 Model.prototype.mainDataIndexChanged = function(event) { var row = event.row;//获取行 var data = event.source; var state = data.getRowState(row);//获取行状态 if (state [...]
本例实现的是excelImport导入时根据某列的值判断数据库中是否存在,如果存在就修改数据库中的记录,如果不存在就新增记录 excelImport导入的excel可以在导入excel前action(importExcelBeforeAction)的执行后事件中获取 然后遍历excel获取校验列的值进行对比处理 做法如下 1、在构建路径中添加/SA/excel/logic/code下的jar包 2、在process中引用/SA/excel/logic/action和/SA/excel/logic/code目录 3、在动作设置中添加importExcelBeforeAction的执行后事件,代码如下 4、在w文件的excel导入组件的action属性中选择/SA/excel/logic/action/importExcel importExcelBeforeAction执行后事件代码如下: import java.math.BigDecimal; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import com.justep.system.util.*; import com.justep.system.process.*; import com.justep.system.context.*; import com.justep.system.opm.*; import com.justep.system.data.*; import com.justep.system.action.*; import com.justep.model.*; public [...]
BIZ层的java中平台提供的API可以获取到当前人的角色ID,如下: Map<String,String> sysParams = (Map<String, String>) ContextHelper.getSysParams(); System.out.println(sysParams.get("allRoles")); UI2层的js中平台提供的API可以获取到当前人的角色code、name、ID,如下: //当前人的角色code this.getContext().getAllRoleCodes(); //当前人的角色name this.getContext().getAllRoleNames(); //当前人的角色ID this.getContext().getAllRoles();
listTable组件在创建时“默认展开”的设置是勾选上的,就是默认展开所有的子数据 控制每次只显示一个从表的数据可以把“默认展开”勾选去掉,点击哪个主数据再显示对应的子数据 具体设置如下: 1.在主data上定义一个计算关系,如名字是rowVisible 2.在listTable生成的节点中找有hide样式的tr,bind-visible上设置val("rowVisible")=='true' 并且自定义一个属性bind-attr-title值设置为主data的主键值(bizData中的概念别名就是主键) 3.定义一个空的class .rowVisible{} 4.在listTable生成的节点中找有info样式的tr,重写bind-click事件,如下: Model.prototype.tr2Click = function(event) { var $oldRow = $(this.getElementByXid("listTable1")).find(".rowVisible");//获取有自定义rowVisible样式tr var $e = $(event.currentTarget); //获取当前点击的tr //判断展开主没有点击收缩直接切换到其他行时设置为收缩状态 if($oldRow.length>0){ for(var i = 0;i<$oldRow.length;i++){ if($oldRow[i].title !=$e.next()[0].title && !$oldRow.hasClass("hide")){ [...]
在导入excel前action(importExcelBeforeAction)的执行后事件中,可以获得导入的excel文件,但默认是Workbook 类型的需要自己转换为File 具体实现如下: 1、在BIZ层构建路径中添加/SA/excel/logic/code下的jar包 2、在导入功能的process中引用/SA/excel/logic/action和/SA/excel/logic/code目录 3、在动作设置中添加importExcelBeforeAction的执行后事件,代码如下 4、在w文件的excel导入组件的action属性中选择/SA/excel/logic/action/importExcel public static void totalProcessAfterImportExcelBeforeAction() { ImportConfig config = (ImportConfig) ModelUtils.getRequestContext().getActionContext().getParameter("config"); String fileName = config.getFileName();//获取导入的excel的文件名 //获取excel文件 Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel"); File file = new File(System.getProperty("java.io.tmpdir") + "/" + [...]
平台默认的打开首页的时候会从Cookie中获取bsessionid 第三方集成登录时不在跳转的首页地址后加username和password或者bsessionid参数就直接打开登录后的首页,可以在登录后把bsessionid放到Cookie中 实现登录的.j如下: import java.io.IOException; import java.sql.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.justep.biz.client.ActionEngine; import com.justep.biz.client.ActionResult; import com.justep.biz.client.ActionUtils; public class Login extends com.justep.ui.impl.JProcessorImpl { public void execute(HttpServletRequest request, HttpServletResponse [...]
rowAttr属性可以设置行高样式等 中有说明 链接中的动态控制只有一个条件判断,如果有多个条件判断直接设置属性可能不太好写,可以定义js函数,调用函数控制 如下通过fName列的值判断显示不同的背景颜色: js函数定义: Model.prototype.rowCss = function(fName) { var rowAttr = ""; if (fName == 'noticeTest') { rowAttr = { style : 'background:pink;' }; } else if (fName == 'test') { rowAttr = [...]
pc3门户左侧的功能树默认的展开菜单时其他已展开的会收起来 如果不需要其他已展开的收起来可以修改/UI2/portal/pc3/AdminLTE/js/app.js中的实现 如下:把$.AdminLTE.tree = function (menu) {方法实现中的 下面两条语句注释掉 var ul = parent.find('ul:visible').slideUp(animationSpeed); ul.removeClass('menu-open');
pc3门户登录后首页右侧默认有一个如下图的黑色区域 这个区域块是上方的设置按钮点击后会展开,默认收缩的时候就是这个效果 如果收缩时默认不显示可以通过下面的样式控制: .control-sidebar-bg, .control-sidebar{ right:-240px; }