About jishuang

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

attachmentPC组件如何设置subPath

attachmentPC组件提供了subPath属性可以设置上传文件到指定的知识中心目录下的子目录 subPath属性支持后端表达式的设置 如下: 获取当人员成员的Name和当前日期拼接生成 当然也可是设置固定的路径,如下创建a、b、c这3层目录 如果要js动态设置subPath的值可以在model的onLoad事件中设置,如下: Model.prototype.modelLoad = function(event) { var attachmentPC = this.comp("attachmentPC1"); attachmentPC.subPath = "concat(toString(currentDate()),'/',currentPersonMemberName())"; //attachmentPC.subPath = "a/b/c"; }; 设置了subPath,如果文档管理——文档中心功能左侧树中没有这样的目录上传文件后要立即保存业务数据,否则再次上传会生成同样的目录 上面的方式如果需要在同一个页面动态设置多次,只有第一次起作用,使用5.3.8.6274以及之后的版本可以通过下面的方式可以设置多次 Model.prototype.mainDataIndexChanged = function(event){ var attachmentPC1 = this.comp("attachmentPC1"); var row [...]

script中的function函数与平台组件或者方法的交互

.w文件中可以直接通过script定义html中的函数格式 如下: <script> function test(event){ alert('test'); } </script> .w中的按钮要调用script中的函数可以直接在onClick事件中调用即可 如下: <a component="$UI/system/components/justep/button/button" class="btn btn-default" label="button" xid="button6" onClick="test"> <i xid="i6"/> <span xid="span6"/> </a> script中的函数如果要调用组件或者model的方法需要先获取到model 具体操作: 1.用jquery的方式获取到.w中某个节点元素(任何元素都可以)的dom 2.用获取的元素获取model var this = justep.Bind.contextFor(获取的元素).$model; 然后就可以用this.comp("组件的xid")或this.XXX()调用组件或者model的方法 [...]

PC3从功能树打开功能时如何实现标题显示目录层级

从功能树上打开功能,标题默认只是显示的功能名称,不会显示一级目录、二级目录等目录层级的名称 如果要显示完整的层级目录的名称可以如下实现 1./UI2/portal/pc3/index.js中修改doCreateFunctionTree函数中点击打开功能的实现 var me = this; $('li>a', $content).click(function() { var el = $(this), pageKey = el.attr('pageKey'); if (pageKey) { $(".func-open", $content).removeClass("func-open"); el.parent().addClass("func-open"); me.showPage(pageKey); } }); 修改为: var me = this; $('li>a', [...]

流程如何回退到首环节

流程回退的时候如果要回退到首环节可以在process中添加回退规则,设置回退范围 平台默认的有一个回退规则,如果不想每个环节设置修改默认的回退规则可以通过下面的方案实现: 在process文件的onBeforeBackQuery事件中设置回退范围,如下: public static void backFlowProcessBeforeBackQuery() { RequestContext rt = ContextHelper.getRequestContext(); rt.put(BackRule.BACK_RANGE, BackRangType.ROOT_BACK_RANGE);//设置回退范围是首环节 } 某个环节需要设置,就在环节的onBeforeAdvance事件中处理;如果是整个流程都需要设置,就在流程的onBeforeAdvance事件中处理 所有的流程都需要设置,可以通过监听onBeforeAdvance事件设置 如果要自己放一个“回退到首环节”的按钮直接回退,可以通过下面的方案实现 定义一个action(本例是backStartAction),action定一个参数task,把要回退的任务传给action的task参数去操作 action的java代码实现如下: public static void backStart(String task){ RequestContext rt = ContextHelper.getRequestContext(); rt.put(BackRule.BACK_RANGE, BackRangType.ROOT_BACK_RANGE);//回退到首环节 ProcessUtils.backProcess(task,null); [...]

accordion怎么关闭折叠功能

accordion手风琴折叠组件默认点击heading区域会折叠或展开下方显示内容区域,如果要取消折叠功能一直处于展开状态参考下面的设置 控制.w中某一个accordion,可以在model的onLoad中如下控制: Model.prototype.modelLoad = function(event) { var accordionID = this.getIDByXID("accordion1");//通过accordion组件的xid获取id var $targets = $("#" + accordionID + " .panel>.panel-heading");//获取这个accordion下的heading元素 //重写heading元素的click $targets.click(function() { $(this).nextAll().eq(0).collapse("show"); }); }; 控制.w中所有的accordion,可以在model的onLoad中如下控制: Model.prototype.modelLoad = function(event) { var windowID [...]

如何控制PC端一个用户只允许登录一次

平台默认的一个用户可以在多个地方登陆多次,并且提供了“在线用户”功能可以查看在线用户 如果要控制一个用户只运行登录一次,可以在登录前获取到输入的用户名与“在线用户”中的数据做对比 本例是判断如果已登录了可以注销之前的用户再登录,或者切换其他的用户登录 /UI2/portal/base/login/login.js的Model.prototype.login = function() {方法修改如下: Model.prototype.login = function() { var remember = this.comp('remember'), name = this.comp('name'), password = this.comp('password'), autoLogin = this.comp('autoLogin'); var urlParams = {}; urlParams.username = name.val() || $("[xid=name]").val();// 为了支持360急速浏览器, [...]

mac系统safari中登录报错“net::ERR_CONTENT_DECODING_FAILED”

mac系统safari中登录报错“网络有问题, 请与管理员联系!” 浏览器的开发人员调试工具的console中报错“net::ERR_CONTENT_DECODING_FAILED” 这个错误是数据源压缩的问题,可以把tomcat配置中的json格式的压缩去掉 具体修改如下: apache-tomcat\conf\server.xml中的 compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript,application/javascript,application/xml,application/json" 改为: compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript,application/javascript,application/xml"

根据行状态控制data只读

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 [...]

修改流程图后启动的流程报错

流程图修改后,对于已经启动的流程,在某些特殊的情况下,会出问题! 首先, 不建议修改流程图,对于某些需求,可以通过流程定制来解决; 其次, 如果业务上一定需要修改流程图, 这时,对于已经启动的流程,很有可能会报以下的错误: 1.错误一: “**process中不存在**place” 这时,需要手工修改系统表来解决. 手工修改系统表: delete from SA_TokenInstance where sProcessInstanceID = (select sFlowID from SA_Task where sid='TaskID') and sPlace='PlaceID' 其中, 'TaskID'是指当前待办任务的ID, 'PlaceID‘是指不存在的Place的标识. 注意: 执行这个操作时,如果被删除的SA_TokenInstance的sActive是true,会有一个负作用,导致这个TokenInstance关联的前序任务与后序任务之间的关系不能正常建立。 2. 错误二, "**process中不存在**Activity" 表示当前待办关联的环节被删除了, 需要结合业务进行处理,比如,可以在流程监控中将这条任务回收后重新处理。 需要删除SA_TokenInstance、SA_Task、SA_ProcessControl、SA_TaskRelation

excelImport导入数据时与数据库中值做校验

本例实现的是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 [...]