(2018-5-16)发布的3.8正式版attachmentPC组件只读的问题

3.8之前的版本data中设置attachmentPC组件bind-ref关联的关系只读时文件名、图标、下载和历史是可以点的 (2018-5-16)发布的3.8正式版中设置只读后这些都是不可点,要恢复到之前版本的控制如下操作: 1.下载文件 attachment 解压后替换文件/UI2/system/components/justep/attachment/css/attachment.less 2.执行model同级的tools\dist\less.bat和dist.bat 注意缓存的问题:http://docs.wex5.com/bex5-deploy-question-list-4013/

attachment(非attachmentSimple)相关的附件组件如何实现物理删除

附件组件的删除默认是逻辑删除只是把附件组件关联的业务字段中的json信息删除了,SA_docNode中的数据和服务器上的文件都没有删除 如果要同时把SA_docNode中的数据和服务器上的文件都删除,需要实现物理删除 attachmentPC组件提供了源码可以直接修改组件源码实现,或者在.w功能页面中实现 attachement没有提供源码只能在.w功能页面中实现 要删除服务器上的文件需要调用action操作 平台默认的/SA/doc/logic/action下定义的有此操作的action,因此需要在业务功能的BIZ层process文件同级的model.config.xml中引用/SA/doc/logic/action .w功能页面中实现参考如下: 1.在model的构造函数中定义一个实例变量用来存储删除的附件的docID var Model = function() { this.callParent(); this.docIDs = []; }; 2.在附件组件的onDelete事件中获取删除的附件的docID存储到实例变量中 Model.prototype.attachmentPC5Delete = function(event) { //保存到文档服务器的文件删除时记录删除的docID var fileID = event.source.$activeDoc.get().fileID.get(); if(fileID){ this.docIDs.push(event.data.docID); } }; [...]

.j中请求action如何获取返回数据

.j中请求action用的是com.justep.biz.client.ActionEngine中提供的invokeAction相关的API API中有一个String类型的accept参数,设置期望返回数据的格式,一般情况下设置为 json格式的:com.justep.biz.client.ActionUtils.JSON_CONTENT_TYPE xml格式的:com.justep.biz.client.ActionUtils.XML_CONTENT_TYPE invokeAction相关的API调用action返回的结果是com.justep.biz.client.ActionResult,下面代码中的ar就是定义的ActionResult类型的变量 如: ActionResult ar = ActionEngine.invokeAction(bytes, accept, contentType, bsessionID, language, null); ActionResult中提供的有getContent()API可以获取整个返回结果,因此获取返回数据可以使用这个API 当设置的accept为ActionUtils.JSON_CONTENT_TYPE是,获取返回数据如下: JSONObject content = (JSONObject)ar.getContent(); 当设置的accept为ActionUtils.XML_CONTENT_TYPE是,获取返回数据如下: Document arDocument = (Document)ar.getContent(); arDocument.asXML();

list的onAfterRender事件中如何获取每行的html组件

list关联的data有多条记录时,list中的组件就会生成多个,简单通过xid获取就会获取到多个 在onAfterRender中可以获取到当前计算行的索引,可以通过索引获取当前行的组件 获取html组件可以用jquery的方式 如下在onAfterRender中获取list中的a标签: Model.prototype.mainListAfterRender = function(event){ var index = event.$object.index();//获取行索引 $("a[xid=a1]")[event.$object.index()];//获取a标签 };

attachmentSimple删除文件时如何实现物理删除

attachmentSimple组件删除上传的文件时,默认只是把业务字段中存储的json传中的信息删除 ,而服务器上存储的文件并没有删除 如果要在删除的时候把服务器的上文件也删除需要通过.j或者BIZ层定义action的方法操作服务器 本例是用.j实现的,.j(名字是attachmentSimpleDelete.j)的代码具体如下: import java.io.File; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.justep.ui.JustepConfig; public class AttachmentSimpleDelete extends com.justep.ui.impl.JProcessorImpl { protected void doGet(HttpServletRequest request, HttpServletResponse response) [...]

orgDialogPC展开某组织时如何过滤其下级数据

orgDialogPC默认是数据是延迟加载的,就是指默认只会加载根节点数据,展开的时候才会加载下级数据 因此要过滤其数据可以在加载(刷新)前(onBeforeRefresh)事件中设置data的filter orgDialogPC是组件里面直接封装好的,要实现刷新前事件可以在orgDialogPC的onLoad事件中获取封装好的data,用on方法绑定事件 参考如下: Model.prototype.orgDialogPC1Load = function(event){ var orgDilaogPC = event.source;//获取orgDialog组件 var innerModel = orgDilaogPC.getInnerModel();//获取orgDialog组件内部model innerModel.comp("orgData").on("onBeforeRefresh",function(event){//获取内部data,并绑定onBeforeRefresh事件 if(event.source.getCurrentRowID() == 'FDC60398457C461DAB7AAE86FA8173D9')//判断是不是要过滤自己数据的组织行数据 innerModel.comp("orgData").setFilter("filter","sOrgKindID = 'psm'"); }); };

gridFilter 设置不选择时,默认多个过滤条件的实现

将gridFilter 关联的data组件 autoLoad 设置为false (表示默认不加载数据) 在onLoad事件中 调用 this.comp('gridFilter').filter(); 接管gridFilter的 onFilter 事件,写代码判断 ,如果勾选就使用勾选的值进行过滤,如果默认都没有勾选,则使用默认规则的条件过滤,代码如下: Model.prototype.gridFilterFilter = function(event){ debugger; var data = this.comp('mainData'); var selectedValue = event.source.selectedValue.get(); if(selectedValue){ var values = selectedValue.split(','); var filter = ''; for(var i=0;i<values.length;i++){ [...]