About jishuang

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

action返回如123.00这样的BigDecimal类型数据,js中获取小数会丢失

java中直接返回BigDecimal类型的数据,如果小数位都是0时,返回的数据小数会丢失,如下: public static BigDecimal simple() { BigDecimal i = new BigDecimal(12.00).setScale(2); return i; } 在js中接收到的数据会变成12,如果js中接收到的数据必须有小数,需要在java中把BigDecimal转换为String类型的,返回String类型,因此上面的代码需要修改为如下: public static String simple() { String i = new BigDecimal(12.00).setScale(2).toString(); return i; } 这样js中接收到的数据就是12.00

流转对话框中如何控制只允许选择一个人

平台默认的流转对话框中执行者是可以显示多个的,并且选择执行者对话框中也是多选的,如果需要控制只允许选择一人需要对流转对话框进行修改 某个具体流程功能的流转对话框可以参考http://docs.wex5.com/bex5-process-question-list-10008/ 由于平台默认的/UI2/system/service/process/dialog/processDialog.w是继承/UI2/system/service/process/dialog/processDialog.m.w实现的,所以processDialog.w中调用的某些js方法是在/UI2/system/service/process/dialog/processDialog.m.js中定义的,因此在自己扩展流转对话框中如果有需要修改平台原始的js方法的,需要自己把/UI2/system/service/process/dialog/processDialog.m.js中的函数定义复制到自己的js中然后进行修改 设置流转对话框只运行选择一个需要如下两个地方控制 1.控制选择执行者对话框中为单选 修改Model.prototype.createExecutorDialog = function() {中的multiSelection的值为false;具体如下: Model.prototype.createExecutorDialog = function(){ return new OrgDialog({ cacheKind: cacheKind, title: new justep.Message(justep.Message.JUSTEP230055).getMessage(), showTitle: true, multiSelection: true, parentNode: this.getElementByXid("dialogs") }); }; V3.7之前的版本这个修改需要替换下面的文件/UI2/system/components/justep/org/dialog/singleOrgDialogPC.js 2.选择执行者对话框返回数据后,执行者只允许显示最后选择的人 修改Model.prototype.getExecutorDialog = function(){中对executorData的 [...]

流转对话框选择执行者如何控制只能选择指定的组织类型

流转对话框选择执行者时平台用的是orgDialogPC(orgDialog)打开的,默认是有环节权限的组织类型都可以选择,控制只能选择指定的组织类型,可以通过orgDialogPC(orgDialog)的selectFilter特性 选择执行者对话框是通过new orgDialogPC(orgDialog)组件创建的,因此可以在创建的时候设置selectFilter 如下控制PC只能选择具体的人员成员: /UI2/system/service/process/dialog/processDialog.js的Model.prototype.createExecutorDialog = function(){方法中控制 Model.prototype.createExecutorDialog = function(){ return new OrgDialog({ cacheKind: cacheKind, title: new justep.Message(justep.Message.JUSTEP230055).getMessage(), showTitle: true, multiSelection: true, parentNode: this.getElementByXid("dialogs"), selectFilter : 'val("sOrgKindID") =="psm"' }); }; 平台默认的sOrgKindID的值如下: ogn:机构 dpt:部门 [...]

待办任务中如何显示附言信息

平台默认的附言信息是存到上一个完成的任务上的,而不是在当前未处理的任务上,因此不能直接显示当前任务上sContent字段值,可以通过下面的方案实现 在流转前(onBeforeAdvance)事件获取到填写的附言信息,然后把附言信息填充给生成任务的扩展字段中,在待办任务中直接显示扩展字段的内容 事件中实现如下: public static void flowProcessBeforeAdvance() { ProcessControl flowControl = (ProcessControl) ProcessUtils.getProcessContext().getProcessControl(); String sContent = flowControl.getPostscript();// 获取附言信息 for (ProcessControlItem to : flowControl.getFlowTos()) {// 获取环节相应的流转信息 to.getTask().setRelationValue("sESField01", sContent); // 获取附言信息,并把附言信息保存到任务的扩展字段sESField01中 } } 待办任务页面/UI2/SA/task/taskView/waitActivity.w在taskData的columns中添加扩展字段sESField01,然后在list中添加组件bind-ref设置为这个关系就可以显示了 如果是某个环节需要设置,就在环节的onBeforeAdvance事件中处理;如果是整个流程都需要设置,就在流程的onBeforeAdvance事件中处理 [...]

attachmentPC组件点击文件名调用自己的js方法

平台默认的attachmenPC组件文件名的click调用的是$model.previewOrRemoveItem.bind($model,$model.$activeDoc.get())打开附件查看,如下 <a class="btn btn-link" data-bind="enable:($model.$activeDoc.get().fileID.get() &amp;&amp; $model.$access.get() % 4 &gt;= 2),click:$model.previewOrRemoveItem.bind($model,$model.$activeDoc.get()),text:$model.$activeDoc.get().docName.get()" xid="a4"/> 如果要调用自己当前.w对应的js中的方法,可以如下修改 $model.getModel().attachmentClick.bind($model.getModel(),$model.$activeDoc.get()) 其中attachmentClick是js中的函数名 js文件中定义如下: Model.prototype.attachmentClick = function(event) { var docPath = event.docPath.get(); var fileID = event.fileID.get(); var url = DocUtils.InnerUtils.getdocServerAction({ [...]

attachmentPC组件上传的office文件实现在当前页打开在线查看

附件组件在线查看平台默认的是用浏览器的另一个页签打开的,如果需要在当前页面中显示可以如下操作 1.js定义的define中引用 var officeViewer = require('$UI/system/components/justep/docCommon/officeViewer'); var $OV = officeViewer.$OV; var OV = officeViewer.OV; 2.在.w中定义一个div <div xid="officeViewer" /> 3.在div中创建ocx并打开文件 var data = this.comp("mainData"); var fFJ = data.getValue("fFJ"); var jsonList = [...]

gridselect修改下拉区域鼠标悬停时列的提示信息

gridSelect组件下拉区域里面其实是grid,所以修改鼠标悬停时列的提示信息,可以通过获取到里面的grid在grid的onCellRender中处理,如下: Model.prototype.gridSelect3ShowOption = function(event) { var gridselect = event.source;//获取gridselect组件 var grid = gridselect.grid;//获取gridSelect组件内部的grid grid.on('onCellRender', function(event) {//使用on方法添加onCellRender事件 if (event.colName == "fName") { var title = event.colVal + 'bbbb';//设置鼠标悬停时显示的内容 event.html = "<div title='" + title + [...]

实施部署时不发布源文件怎么部署

部署时java、w两种文件可以不用发布源文件的 java文件:可以直接发布class文件。java文件都是在dsrc和src下的,编辑java文件后会会生成dclasses和classes目录,把生成的dclasses和classes目录拷贝到服务器对应的位置就可以 .w文件:如果是3.4以及之后的版本发布的时候可以不要.w,只发布.w文件编译后所在目录同级的.release文件夹就可以 3.4之前的版本(不包括5.2版本)除了.release,还需要一个空的.w文件,即.w文件也需要拷贝到服务器上,可以把.w中的内容情况 .js文件默认必须要的,但是可以对.js文件进行合并,发布合并的js文件,原文件不需要 对于跟.w同名的js文件不需要在.w中引用,非同名的需要引用,引用时写js文件的原始路径不要写合并后生成的合并文件的路径 js文件的合并可以参考http://docs.wex5.com/bex5-ui-question-list-10188/

自己的js文件如何生成类似于comp.min.js这样的文件

平台版本某些组件或者公用的js文件,没有提供原始的js文件也可以运行是因为平台默认的把这些文件合并到类似于comp.min.js这样的,运行的时候直接找的合并后文件 如果自己定义的js文件也需要这样,可以如下操作: 1.参考/UI2/system/common.min.js.xml的文件,自己定义一个xml文件,文件名的命名格式为XXX.min.js.xml 在xml配置要合并的js文件路径以及合并后的生成的js文件名字 配置要合并的js文件路径用file节点如下: <file>components/justep/shell/shellImpl.config.js</file> 配置合并后的生成的js文件名字用output节点如下: <output name="common.min.js"/> 2.执行tools\dist\dist.bat 需要注意的是xml文件的位置:如果你要合并的是x5demo/baseDemo下js文件的,你需要把XXX.min.js.xml放到x5demo/baseDemo下,这样运行时平台默认就会找合并后的js文件 如下: 如果自己的js文件中有引用系统的文件,并且系统的文件也被合并了,需要在xml中用depend配置合并文件的路径,注意配置文件路径时要用相对路径,如下xml文件的内容