About jishuang

该作者尚未填入任何详情
So far jishuang has created 559 blog entries.

如何通过ajax调用action

在UI2层调用action,可以用平台提供的Request中的API,当然也可以直接用ajax调用 用ajax调用需要通过/x5/UI2/system/service/common/bizAction.j调用,具体实现如下: var valuejson = {"id":"1","fSendName":"快递","fCost":"免邮","fState":"1"}; $.ajax({ async : false, type : 'GET', dataType : 'json', url : "/x5/UI2/system/service/common/bizAction.j", data : { process : '/appdemo/test/process/date/dateProcess', activity : 'mainActivity', action : 'jsonParamAction', jsonParam : JSON.stringify(valuejson)// [...]

dataTables中通过按钮显示更多操作按钮

dataTables中显示按钮可以参考onCellRender中设置 要显示更多操作的按钮可以用popMenu组件 dataTables中通过按钮显示更多操作按钮具体实现如下: 在.w中放一个popMenu,在dataTables的onCellRender中控制列显示按钮,按钮的click事件中打开popMenu 如果要在操作按钮的事件中操作数据可以在model的构造函数中定义实例变量,在onCellRender事件中的按钮的click事件中获取到row和rowID赋值给实例变量 popMenu中按钮事件中通过实例变量去操作,代码如下: 1.popMenu的定义: <div component="$UI/system/components/justep/popMenu/popMenu" class="x-popMenu" direction="auto" xid="popMenu1" opacity="0"> <div class="x-popMenu-overlay" xid="div8"/> <ul component="$UI/system/components/justep/menu/menu" class="x-menu dropdown-menu x-popMenu-content" xid="menu1"> <li class="x-menu-item" xid="item1"> <a component="$UI/system/components/justep/button/button" class="btn btn-link" label="获取数据" xid="button7" onClick="button7Click"> <i xid="i10"/> [...]

grid组件多选时如何控制只有一行是选中状态

grid组件的multiSelect设置为true,显示多选框进行多选 如果要控制只允许一行是选中状态,可以在grid的onRowCheck事件中如下控制: Model.prototype.grid1RowCheck = function(event){ var checkRowIDs = event.source.getCheckeds();//获取多选选中状态行的rowID //判断当前操作的是行的选中状态,遍历选中状态行的rowID,设置rowID跟当前操作行的rowID不一致的行为不选的状态 if (event.checked === true) { for(var i= 0;i<checkRowIDs.length;i++){ if(checkRowIDs[i] != event.rowID){ event.source.setRowChecked(checkRowIDs[i],false); } } } };

dataTables组件多选时如何控制只有一行是选中状态

dataTables组件的multiSelect设置为true,显示多选框进行多选 如果要控制只允许一行是选中状态,可以在dataTables的onRowCheck事件中如下控制: Model.prototype.listDataRowCheck = function(event) { var checkRows = event.source.getCheckeds(); //获取多选选中状态的行 //判断当前操作的是行的选中状态,遍历选中状态的行,设置rowID跟当前操作行的rowID不一致的行为不选的状态 if (event.checked === true) { for(var i= 0;i<checkRows.length;i++){ if(checkRows[i].getID() != event.rowID){ event.source.setRowChecked(checkRows[i],false); } } } };

第三方组织机构数据如何导入到X5中

第三方的组织机构数据导入到X5中有如下两种方案 方案一:在x5中定义action,调用X5提供的API把数据插入到SA_OPOrg和SA_OPPerson中(推荐此方案) action对应的java中可以调用下面的API进行组织和人员的添加 com.justep.system.opm.api.OrgHelper中提供了appendOrg 添加除人员成员外的各级组织节点和appendOrgs添加多个组织节点 com.justep.system.opm.api.PersonHelper中提供了appendPerson添加一个人员和appendPersons添加多个人员 函数的具体参数说明参考API中的讲解 第三方调用x5的action需要先模拟登陆 前端调用可以参考http://docs.wex5.com/bex5-ui-question-list-10271/中register.j的实现,然后通过ajax调用.j 后端调用可以用java接口或者封装为WebService可以参考/BIZ/demo/actions/process/integration下提供的案例 系统集成中也有说明 方案二:直接写sql向SA_OPOrg和SA_OPPerson中插入数据 通过sql向数据库中插入数据需要注意有些字段是必须给值的,可以参考组织机构初始化导入中的说明 注意SA_OPOrg中根节点的sParent的值要设置为null 导入成功后在/UI2/SA/OPM/repairTools/mainActivity.w中调用一下repairOrgAction这个action,然后配置一下这个功能的功能菜单和权限,运行功能,执行action的调用进行组织机构数据的修复 在添加人员(向SA_OPPerson中插入数据)是需要注意密码的格式 调用API插入人员时,直接传登录的时候输入的密码,java中OrgUtils.encryptPassword(String password)平台会自动对密码加密,把加密后的密码做参数给插入人员的API 使用sql插入数据时需要注意平台的密码是否用了加密增强的特性,可以根据/BIZ/system/config/sys.config.m中是否有下面的配置判断 <config name="passwordSalt" value="http://www.justep.com"/> 如果没有就是直接用的MD5加密的方式,可以自己对登录时输入的密码进行MD5加密插入到数据库中 如果有就是用了平台的密码加密增强特性,在MD5加密后还需要通过调用API:OrgUtils.saltPassword("MD5之后的值")生成的密码插入到数据库中

启动规则中流程模版的设置如何通过代码实现

在流程模版管理中给相关组织设置了流程模版后要在process的启动规则中设置流程模版选择流程模版函数才可以 如果不在启动规则中设置,可以在process的onBeforeStart事件中代码控制,如下: public static void andProcessBeforeStart() { String temp = TemplateHelper.findTemplateByCurrentPerson(ContextHelper.getActionContext().getProcess().getFullName());//获取当前人的流程模板 if (Utils.isNotEmptyString(temp)) { Map<String, Object> map = (Map<String, Object>) ContextHelper.getActionContext().getParameter("attributes"); if (map == null) { map = new HashMap<String, Object>(); ContextHelper.getActionContext().setParameter("attributes", map); } [...]

grid如何判断某一列是否隐藏了

grid中的列隐藏后,最终生成的这列的dom节点td上的style为display:none; 因此可以通过获取style的值判断,如下: var grid = this.comp("grid2"); var rowid = this.comp("mainData").getCurrentRowID();//获取data的当前行rowid $td = $(grid.getCell(rowid, "fDate"));//获取rowid和列获取cell的jquery对象(td) var style = $td.attr("style");//获取td的style属性 if(style == "display:none;"){ alert("列被隐藏"); }

如何实现注册用户

平台默认没有提供注册用户,是需要登录后到组织管理功能中添加的,如果要提供注册用户的功能参考如下: 本例是通过扩展空间修改的portal实现的,可以下载资源直接复制到model下使用 model 1.在登录页添加注册按钮和页面 /UI2/portal_X/base/login/login.w放了contents组件,添加两个content,并把contents组件上的下面属性都设置为false wrap="false" swipe="false" slidable="false" routable="false" 把平台默认的登录块放到第一个content中,把在登录按钮旁边添加注册按钮 <div class="form-group"> <div component="$UI/system/components/justep/row/row" class="x-row" xid="row2"> <div class="x-col" xid="col3"> <a component="$UI/system/components/justep/button/button" class="btn btn-default btn-block" label="登录" xid="login" onClick="loginClick"> <i xid="i1"/> <span xid="span1">登录</span> </a> [...]

importExcel组件如何修改“导入参数设置”弹出对话框的大小

importExcel组件导入的时候会弹出"导入参数设置"弹出框,其实就是windowDialog,是importExcel组件实现是内部创建了windowDialog 如果是单个功能中要修改这个弹出框的大小,可以如下操作: 在importExcel的onBeforeImport事件中通过importExcel组件提供的方法获取到windowDialog,调用set方法设置即可 Model.prototype.importExcel1BeforeImport = function(event){ var cfgDialog = event.source.getConfigDlg();//获取windowDialog // cfgDialog.set({"status":"maximize"});//设置windowDialog的status对话框显示状态 cfgDialog.set({"width":"50%","height":"50%"});//设置windowDialog的宽和高 }; 如果是所有功能中的都要修改,可以直接修改组件的js实现: /UI2/system/components/justep/excel/importExcel.js中如下的方法中new WindowDialog时修改status的值,或者增加width和height的设置 getConfigDlg : function() { // 不存在就创建一个 if (!this.configDlg) { this.configDlg = new WindowDialog({ showTitle : [...]